使用 Raspberry Pi 设置 Tor 代理以控制互联网流量

通过这些简单的步骤和一些经济实惠的硬件,创建一个匿名服务器和浏览器。
170 位读者喜欢这个。
Coding the Raspberry Pi in a web emulator

Opensource.com

首先:什么是代理服务器,为什么要使用它们?

维基百科提供了以下描述和图表:代理服务器是一种服务器(计算机系统或应用程序),充当客户端请求来自其他服务器的资源的中间人。客户端连接到代理服务器,请求某些服务,例如文件、连接、网页或其他来自不同服务器的可用资源,代理服务器评估该请求,以此来简化和控制其复杂性。

Proxy server diagram

代理服务器在许多情况下都很有用

  • 在办公室:通过阻止某些网站或某些关键字来控制互联网流量,从单个点管理与外部互联网的联系,或通过在代理级别缓存页面来优化互联网带宽使用。
  • 在家中:控制家庭互联网访问,以阻止对儿童有害的网站。
  • 对于个人使用:使用匿名连接或绕过网络 ISP 阻止。

这些只是一些例子!

Tor 项目

来自 Tor (匿名网络) 维基百科页面

Tor 是免费和开源软件,用于实现匿名通信。该名称源于原始软件项目名称“The Onion Router”(洋葱路由器)的首字母缩写。Tor 将互联网流量通过一个由 7000 多个中继组成的免费、全球志愿者覆盖网络进行引导,以对任何进行网络监视或流量分析的人员隐藏用户的位置和使用情况。使用 Tor 使互联网活动更难追溯到用户;这包括“访问网站、在线帖子、即时消息和其他通信形式”。Tor 的预期用途是保护用户的个人隐私,以及他们的自由和进行保密通信的能力,防止他们的互联网活动被监控。

Tor 项目是目前开发软件以促进 Tor 网络使用的非营利组织。

我需要 Tor 代理还是使用 Tor 网络的替代方法?

你可以通过一些检查找到这个问题的简单答案

  • 如果你可以在单个计算机中使用不同的浏览器,那么你可以评估 Tor 浏览器。Tor 浏览器可以安装在你的 PC 中,并允许你使用 Tor 网络浏览网络。我们的朋友 ProPrivacy 提供了一个很好的安装指南
  • 如果你需要一种方法在当前浏览器中使用 Tor 网络,或者你需要连接多台计算机并保持其当前浏览器,那么你应该选择 Tor 代理。请继续阅读以了解在廉价的 Raspberry Pi 中安装 Tor 代理的说明。

分步程序

所需硬件

  • 带有电源的 Raspberry Pi Zero W(或更高型号)(通过 WiFi 连接)
  • micro SD 卡

在本指南中,我们将使用默认的 Raspbian Buster Lite 作为操作系统。然后我们将从 Raspbian 存储库安装 Tor,并应用一个非常简单的配置,将其用作 Socks 代理。

我将配置 Tor 代理来管理 192.168.1.0/24 私有网络上所有客户端对互联网的访问。你需要根据你的需求和网络配置修改此网络。

1. 安装操作系统和 Tor

从全新的 Raspbian Buster Lite 安装开始。确保你的操作系统已更新

sudo apt-get update
sudo apt-get upgrade

使用 Raspbian 存储库安装 Tor

sudo apt-get install tor

安装结束时,你将有两个服务作为 Tor 运行:“tor.service” 和 “tor@default.service”。

第一个是虚拟服务,它对用户显示为活动状态,但处于退出状态。事实上,一个简单的检查

sudo systemctl status tor.service

将给出以下结果

● tor.service - Anonymizing overlay network for TCP (multi-instance-master)
   Loaded: loaded (/lib/systemd/system/tor.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2019-10-01 20:25:18 BST; 35s ago
 Main PID: 5546 (code=exited, status=0/SUCCESS)
   Memory: 0B
   CGroup: /system.slice/tor.service

这是正常的。检查 Tor 是否正在运行的最可靠服务是第二个服务。命令

sudo systemctl status tor@default.service

应该提供更熟悉的结果

● tor@default.service - Anonymizing overlay network for TCP
Loaded: loaded (/lib/systemd/system/tor@default.service; enabled-runtime; vendor preset: enabled)
Active: active (running) since Tue 2019-10-01 20:25:30 BST; 1min 36s ago
Main PID: 5552 (tor)
Memory: 23.5M
CGroup: /system.slice/system-tor.slice/tor@default.service
└─5552 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0

2. 配置 Tor

Tor 主配置文件名为 torrc。在编辑之前,创建一个备份副本

sudo cp /etc/tor/torrc /etc/tor/torrc.backup

一个非常简单的配置将在 Tor 默认端口 (9050) 上公开 Tor Socks 代理服务,并且只接受来自本地 LAN (192.168.1.0/24) 的连接。它将作为守护程序运行,这样我们就不需要在每次使用它时都调用它。最后,它将数据存储在默认目录 (/var/lib/tor/) 中。

编辑配置文件

sudo nano /etc/tor/torrc

仅包含以下行(假设 192.168.1.100 是你的 Raspberry Pi IP 地址)

SocksPort 192.168.1.100:9050
SocksPolicy accept 192.168.1.0/24
RunAsDaemon 1
DataDirectory /var/lib/tor

关闭并保存文件,然后重启 Tor 服务

sudo systemctl restart tor@default.service

3. 配置你的客户端以使用代理服务器

现在你需要配置你的客户端以使用 Socks 代理服务器进行互联网连接。你必须检查这一点,具体取决于你的客户端浏览器。Mozilla Firefox 可以使用 Socks 代理,可以通过选择“选项”,然后选择“网络设置”,再选择“设置”进行配置。选择“手动代理配置”,在“Socks 主机”字段中插入 Raspberry Pi IP 地址,在相关端口中插入 9050,并确保 SOCKS v5 标志处于活动状态。你应该有一个如下图所示的配置

Firefox proxy settings

关闭然后重启你的浏览器。现在你正在浏览器中使用你的 Tor 网络。你可以通过浏览 URL https://check.torproject.org/?lang=en 来验证它。

Tor proxy check

尽情享用!

 

本文最初发布于 peppe8o.com,并已获得作者许可发布。

下一步阅读
标签
User profile image.
幸运的丈夫,开源爱好者。天生好奇。为我的根感到骄傲,乐于混合和学习不同的根

14 条评论

这个可以安装在运行 pihole 的 dietpi 上吗?

好的好的...但是公共 IP 暴露了!使用 https://browserleaks.com/ip 检查,IP 会与 DNS 服务器一起暴露

公共 IP 始终会显示,但是使用 TOR 代理时,这个 IP 不是你的 IP。你可以通过在不使用代理的情况下查看你的 IP,然后在启用 TOR 代理后再次验证来检查这一点。关于 DNS 查询,使用 Firefox 你还可以启用选项“使用 SOCKS v5 时代理 DNS”

回复 作者 Shensueru (未验证)

我以前用过 tor-browser,不知道我们可以从中创建一个服务器。非常有信息量的文章,感谢撰写。

谢谢你 Abhinav。在我看来,最酷的事情是这可以用非常廉价的硬件(Raspberry PI Zero W 的成本非常实惠)和非常低的功耗(RPI Zero W 用户 5V 和大约 0.5A)来完成

回复 作者 Abhinav Ramesh

我不知道,这可以做到,简直太棒了!

感谢这个。非常有趣,而且效果很好。我正在用一个旧的 Rasp 3B 设置几个服务,包括这个 ver tor 代理,我想知道 raspi 本身是否默认会通过 Tor 路由所有流量?由于 raspberry 本身会生成流量,我是否还需要设置其他东西?提前非常感谢!

感谢你的反馈!
要使 RPI 成为其内置 TOR 服务的客户端,你需要在其代理配置中将 127.0.0.1:9050 设置为 socks 代理 url。例如,要在 apt 上使用 tor,你需要设置一个正确的 conf 文件,位于 /etc/apt/apt.conf.d/ 下。

回复 作者 ExMM (未验证)

互联网会像 tor 浏览器一样慢吗?

你好,

我有一个 raspberry pi 4,我想安装 TOR。
我知道我可以简单地安装,所以我需要使用 Chromium。
我按照你的步骤操作了,但是在到达浏览器配置时,我收到了这条消息
//当在受支持的桌面环境下运行 Chromium 时,将使用系统代理设置。但是,要么你的系统不受支持,要么启动你的系统配置时出现问题。//

你能帮我提供命令行吗?

另外,我想提一下我已经在使用付费 VPN 和 ufw,添加这个会搞乱我的设置吗?

谢谢

尝试从终端命令
chromium-browser --proxy-server="proxy_ipaddress:port"
如果你将端口保留为 9050,那么命令应该是
chromium-browser --proxy-server="127.0.0.1:9050"。

回复 作者 Kraker (未验证)

嘿!感谢你的教程!我遇到了以下问题:我已经设置了一个 AP 并安装了 tor,但是我的 IP 没有改变。这是我的日志

eth0: flags=4163 mtu 1500
inet 192.168.0.150 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 2a02:8070:4df:5d00:d399:bdb2:7fda:14f3 prefixlen 64 scopeid 0x0
inet6 fe80::a4de:b9d0:f66:54aa prefixlen 64 scopeid 0x20
ether dc:a6:32:3f:22:7a txqueuelen 1000 (Ethernet)
RX 数据包 414505 字节 501022352 (477.8 MiB)
RX 错误 0 丢弃 0 过载 0 帧 0
TX 数据包 260123 字节 29306573 (27.9 MiB)
TX 错误 0 丢弃 0 过载 0 载波 0 冲突 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Lokale Schleife)
RX 数据包 68 字节 6216 (6.0 KiB)
RX 错误 0 丢弃 0 过载 0 帧 0
TX 数据包 68 字节 6216 (6.0 KiB)
TX 错误 0 丢弃 0 过载 0 载波 0 冲突 0

wlan0: flags=4163 mtu 1500
inet 192.168.4.1 netmask 255.255.255.0 broadcast 192.168.4.255
inet6 fe80::fba:3c94:dc4f:36fc prefixlen 64 scopeid 0x20
ether dc:a6:32:3f:22:7b txqueuelen 1000 (Ethernet)
RX 数据包 247724 字节 24231954 (23.1 MiB)
RX 错误 0 丢弃 0 过载 0 帧 0
TX 数据包 392175 字节 507092369 (483.6 MiB)
TX 错误 0 丢弃 0 过载 0 载波 0 冲突 0

torrc 文件
Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.4.1
DNSPort 53
DNSListenAddress 192.168.4.1

● tor.service - 用于 TCP 的匿名覆盖网络 (多实例主)
已加载: loaded (/lib/systemd/system/tor.service; enabled; vendor preset: enab
活动: active (exited) since Tue 2020-06-09 22:06:37 CEST; 1 天 13 小时前
主 PID: 321 (code=exited, status=0/SUCCESS)
任务: 0 (限制: 4915)
内存: 0B
CGroup: /system.slice/tor.service

Jun 09 22:06:37 access systemd[1]: 正在启动用于 TCP 的匿名覆盖网络
Jun 09 22:06:37 access systemd[1]: 已启动用于 TCP 的匿名覆盖网络 (
Jun 11 00:00:20 access systemd[1]: 正在重新加载用于 TCP 的匿名覆盖网络
Jun 11 00:00:20 access systemd[1]: 已重新加载用于 TCP 的匿名覆盖网络

tor@default.service - 用于 TCP 的匿名覆盖网络
已加载: loaded (/lib/systemd/system/tor@default.service; enabled-runtime; ven
活动: active (running) since Thu 2020-06-11 11:40:57 CEST; 16 分钟前
主 PID: 31206 (tor)
任务: 1 (限制: 4915)
内存: 32.7M
CGroup: /system.slice/system-tor.slice/tor@default.service
└─31206 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defa

Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.923 [notice] 读取配置
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.931 [warn] 跳过过时的
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.931 [warn] 跳过过时的
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.932 [notice] 打开 Socks 监听
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.933 [notice] 已打开 Socks 监听
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.933 [notice] 打开 DNS 监听
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.933 [notice] 已打开 DNS 监听
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.933 [notice] 打开透明
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.933 [notice] 已打开透明
Jun 11 11:40:57 access systemd[1]: 已启动用于 TCP 的匿名覆盖网络。

我偶然发现了

Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.931 [warn] 跳过过时的
Jun 11 11:40:54 access tor[31206]: Jun 11 11:40:54.931 [warn] 跳过过时的

有什么想法吗?提前感谢!
问候

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.