加载中...

加入Tor网络节点


1、必需品

如果你准备搭建非出口节点(non-exit relay),即入口节点(guard relay)和中继节点(middle relay),那么你需要一台服务器(废话)

一台具有至少 512MB 内存的服务器,基本当下还能用的 PC 都可以达到要求,推荐使用 VPS 或主机托管;
稳定的 Internet 接入,至少具备 10Mbps 网络带宽,以及一个至少可保持数小时不变的公共 IPv4 地址(建议使用固定 IP 地址),此外,如果你有提供了 IPv6 地址,别忘了在配置时加上它,Tor 非常需要 IPv6 节点(目前暂不支持纯 IPv6);

每天至少2小时的运行时间,推荐24小时运行;

初级的系统维护与文本编辑器(如 vi)使用技巧(不是电脑白痴就行)。

如果你打算架设出口节点,那么情况就变得复杂多了,因为出口节点需要对来自 Tor 用户的流量负责(服务端会认为是出口节点 IP 的使用者在访问自己)。由于 Tor 的高匿名性,通过 Tor 发起的盗版 P2P 下载、网络攻击、spam 数量非常之多,你无法完全阻止它们通过你的出口节点。因此,架设出口节点有一些额外要求:

一台专用于出口节点的服务器、VPS或云主机,其上不应运行其它网络服务(因为你可能因为架设Tor被封IP);
云服务器厂商必须允许架设出口节点,一般为数据中心、大学等非营利机构,千万不要在自己家或公司中架设出口节点;
一个专用于出口节点的固定公共 IPv4 地址,其上不应运行其它网络服务(同样,如果有提供了 IPv6 地址,别忘了在配置时加上它);
还需要献出一些精力来处理各种投诉信,如 DMCA 投诉等,否则可能被 服务器厂商关停服务或面临法律问题。
大多数 Tor 节点基于 Linux(主要是 Debian)操作系统,但 Tor提倡多元化,因此也欢迎使用 BSD 系操作系统搭建 Tor。

二、安装

此处以 Debian 为例,其它操作系统下的配置方法请参考这里。

在终端中执行以下命令安装 Tor 服务端(需要 sudo 或在 root 用户下操作,使用sudo -i切换root):

apt update && apt install tor

三、配置
Tor 的配置文件名为「torrc」,位于根目录/etc/tor,使用VI文本编辑器打开它:

vi /etc/tor/torrc
你会发现,配置文件中已经存在了大量被注释掉(文本前有「#」)的内容,可以将需要的参数取消注释使其生效,或在文件末尾直接添加所需参数。

一个典型的配置文件须具备下列基本参数:

Nickname name #节点的昵称(限用字母和数字)
ORPort 9001 #节点服务侦听端口(小于65535的数字,默认为9001,请确保端口空闲,并配置好防火墙及端口映射规则)
ORPort [IPv6-address]:9001 #节点若支持 IPv6 需特意写出地址
ExitRelay 0 #出口节点开关(0为否,1为是)
IPv6Exit 0 #IPv6 出口节点开关(0为否,1为是)
SocksPort 0 #代理服务侦听端口(0为关闭,建议不要改动)
ControlSocket 0 #同上,但使用 Unix 域套接字而非 TCP 端口
ContactInfo name@domain #管理员的公开联系方式(如邮箱或比特币收款地址等)
VPS 或租用的服务器常常有流量限制,可以通过控制带宽与 Tor 运行时长的方式,来避免过早用尽流量:

AccountingMax N bytes|KBytes|MBytes|GBytes|TBytes|KBits|MBits|GBits|TBits

在一个计时周期内允许的最大流量,只能选用一种单位

AccountingStart day|week|month [day] HH:MM

规定一个计时周期为一天、一周亦或一月,以及何时重置

当计时周期单位为天时,参数 [day] 应省略

当计时周期单位为周时,[day] 应填写 1-7

当计时周期单位为月时,[day] 应填写 1-28

HH:MM 为时间,采用24小时制,时区依主机而定

请注意,高速而限时运行的节点,在实用性上要强于低速而一直运行的节点。此外,Tor 网络也会自动通过寻路权重(优先选用值)来调整指派给节点的工作量,以适当延长节点的工作时间。

如果这是一个出口节点,建议进行出站规则的配置,这决定了该出口节点可以访问互联网上其它主机的哪些端口。精心配置出站规则,可以避免节点被骇客滥用,如禁止 3389 端口,可避免节点被用来实行远程桌面暴力破解。当然,如果想最大程度地减少 abuse 来信,可以只开放80和443端口,只为 Tor 浏览器用户提供最基本的网页浏览服务。

出站规则配置参数如下(地址和端口都可以使用通配符):

exitpolicy accept *:port #允许访问某个目标端口
exitpolicy reject *:port #拒绝访问某个目标端口
exitpolicy accept : #表示全部允许,使用端口黑名单制时需加上
exitpolicy reject : #表示全部拒绝,使用端口白名单制时需加上
如果不进行出站规则的配置,而只是打开了出口节点开关,则 Tor 会使用如下默认规则:

reject 0.0.0.0/8:*
reject 169.254.0.0/16:*
reject 127.0.0.0/8:*
reject 192.168.0.0/16:*
reject 10.0.0.0/8:*
reject 172.16.0.0/12:*
reject self-ip:*
reject *:25 #自行配置规则时,也请至少要屏蔽25端口,否则会带来很多麻烦
reject *:119
reject *:135-139
reject *:445
reject *:563
reject *:1214
reject *:4661-4666
reject *:6346-6429
reject *:6699
reject *:6881-6999
accept :
编辑完成后,保存并退出文本编辑器,执行以下命令重启 Tor:

systemctl restart tor@default
四、检查与维护
节点搭建完毕后,可通过「netstat -an」命令来查看自己的节点服务侦听端口是否已经建立了 TCP 连接。另外,建议在 Tor Metrics 中以 IP 地址或昵称作为关键词来搜索自己的节点,查看其运行状态,其中「Fingerprint」为节点的唯一身份标识,「Consensus Weight」为节点的寻路权重(与带宽和运行时长有关,在相同流量中,速度快的寻路权重更大,数字越大,越容易被选用)。


文章作者: Ethaniel
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ethaniel !
  目录