使用 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/ 下设置一个正确的 conf 文件。

回复 ,作者 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 (以太网)
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 (以太网)
RX 数据包 247724 字节 24231954 (23.1 MiB)
RX 错误 0 丢弃 0 溢出 0 帧 0
TX 数据包 392175 字节 507092369 (483.6 MiB)
TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0

torrc 文件
日志通知文件 /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) 自 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) 自 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.