使用 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,您需要在 /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 (本地环回)
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 (已退出) 自 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 (正在运行) 自 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.