Linux服务器搭建Tor中继与退出节点教程
本教程旨在帮助有一定Linux服务器运维经验的用户搭建Tor网络的中继(Middle Relay)或退出节点(Exit Node)。在开始之前,请确保您已了解运行Tor节点的意义和相关责任。
目录
- 前置准备
- 安装Tor
- 核心配置 (
/etc/tor/torrc
) - 配置为中级服务器 (Middle Relay)
- 配置为退出节点 (Exit Node)
- 高级配置(推荐)
- 启动并验证Tor服务
- 【高危警告】运行退出节点的责任与风险
- 在Tor网络上找到你的节点
1. 前置准备
- 一台拥有公网IP地址的Linux服务器。
root
用户访问权限。- 稳定的网络连接和充足的带宽(建议至少100 Mbps)。
- 明确的认知:运行一个Tor节点,特别是退出节点,会消耗大量带宽,并可能使您的服务器IP收到网络滥用投诉。请务必获得服务器提供商(IDC/ISP)的许可。
2. 安装Tor
为了获取最新、最安全的Tor版本,我们强烈建议使用Tor Project官方的软件源,而不是发行版自带的旧版本。
Debian / Ubuntu
安装必要的工具:
apt updateapt install apt-transport-https gpg
创建Tor软件源的配置文件:
# 获取你的发行版代号,例如 bullseye, focal 等DEBIAN_CODENAME=$(lsb_release -sc)# 写入源信息echo "deb [signed-by=/usr/share/keyrings/tor-archive-keyring.gpg] https://deb.torproject.org/torproject.org ${DEBIAN_CODENAME} main" > /etc/apt/sources.list.d/tor.list
添加GPG密钥:
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
安装Tor和密钥环:
apt updateapt install tor deb.torproject.org-keyring nyx -y
nyx
是一个非常强大的Tor命令行监控工具,推荐安装。
CentOS / RHEL / Fedora
创建Tor软件源的配置文件:
在/etc/yum.repos.d/Tor.repo
创建文件并写入以下内容。请注意将__OS_MAJOR_VERSION__
替换为你的系统主版本号 (例如 RHEL/CentOS 8, Fedora 36)。[tor]name=Tor Project Repobaseurl=https://rpm.torproject.org/centos/__OS_MAJOR_VERSION__/enabled=1gpgcheck=1gpgkey=https://rpm.torproject.org/centos/__OS_MAJOR_VERSION__/GPG-KEY-torproject.org.asc
示例 (CentOS 8):
[tor]name=Tor Project Repobaseurl=https://rpm.torproject.org/centos/8/enabled=1gpgcheck=1gpgkey=https://rpm.torproject.org/centos/8/GPG-KEY-torproject.org.asc
安装Tor:
- 对于使用
dnf
的系统 (CentOS 8+, Fedora):dnf install tor nyx -y
- 对于使用
yum
的系统 (CentOS 7):yum install tor nyx -y
- 对于使用
3. 核心配置 (/etc/tor/torrc
)
Tor的主要配置文件是 /etc/tor/torrc
。在修改前,建议先备份一份。
cp /etc/tor/torrc /etc/tor/torrc.bak
使用你喜欢的文本编辑器(如vim
或nano
)打开它:
nano /etc/tor/torrc
以下是一些所有类型节点都应该配置的基础信息。找到并取消注释(删除行首的#
)或添加以下行:
# 给你的节点起一个独一无二的昵称Nickname <你的节点昵称># 提供一个联系方式,强烈建议提供。当出现问题时,Tor官方或其他人可以联系到你。# 这不是为了暴露你的身份,而是为了网络健康。请替换邮件地址中的 "@" 和 "."。ContactInfo <你的邮箱地址,例如 user at example dot com># 日志记录。建议记录notice级别以上的日志到文件。Log notice file /var/log/tor/notices.log
4. 配置为中级服务器 (Middle Relay)
中继节点只在Tor网络内部转发流量,不直接访问公共互联网,因此风险较低。这是贡献Tor网络最安全的方式。
在 torrc
文件中,确保以下配置生效:
# 监听来自其他Tor节点的连接端口。9001是标准端口。ORPort 9001# 这是关键:设置退出策略为全部拒绝。# 这明确告诉Tor网络,你的节点不是一个出口。ExitPolicy reject *:*
ORPort
: 其他Tor节点将通过此端口连接到你的中继。ExitPolicy reject *:*
: 拒绝将任何流量转发到任何地址和端口,从而使你的节点成为一个非退出节点。
5. 配置为退出节点 (Exit Node)
警告: 运行退出节点意味着你的服务器IP将是Tor用户访问互联网的最终出口。你将承担所有相关的法律和滥用风险。**请务_务_必阅读本教程末尾的【高危警告】部分。
在 torrc
文件中,进行如下配置:
# 监听来自其他Tor节点的连接端口。ORPort 9001# 监听一个目录端口,帮助你的节点更快地被网络发现和使用。DirPort 9030# 这是关键:设置一个开放的退出策略。# 这条策略允许出口到所有IP的80和443端口(HTTP/HTTPS)。ExitPolicy accept *:80ExitPolicy accept *:443ExitPolicy reject *:*
DirPort
: 你的节点会提供一份Tor网络目录的副本,有助于提升网络的鲁棒性。ExitPolicy accept/reject
: 这是一个简单的退出策略示例,仅允许常见的网页浏览流量。强烈建议使用后面章节提供的“缩减版”策略来降低风险。
6. 高级配置(推荐)
设置带宽限制
为了不让Tor耗尽你服务器的所有带宽,影响其他服务,设置带宽限制是明智的。
在 torrc
文件中添加:
# 每秒平均带宽限制 (例如 500 KBytes/s 或 10 MBytes/s)RelayBandwidthRate 10 MB# 突发带宽限制 (峰值)RelayBandwidthBurst 20 MB
- 单位可以是
KB
,MB
,GB
。
设置MyFamily
如果你运行了多个Tor节点,将它们声明为同一家族(MyFamily)是一个好习惯。这可以帮助Tor客户端避免在同一条线路中同时使用你的多个节点,从而提高用户的匿名性。
在你的所有节点的 torrc
文件中,添加相同的MyFamily
行,内容是每个节点的身份指纹(Fingerprint),用逗号隔开。
你可以在Tor启动后,在日志文件 /var/log/tor/notices.log
或 nyx
中找到每个节点的指纹。
# 格式:MyFamily <指纹1>,<指纹2>,...MyFamily <你的第一个节点的指纹>,<你的第二个节点的指纹>
7. 启动并验证Tor服务
启动与自启动
# 启动Tor服务systemctl start tor# 设置为开机自启动systemctl enable tor# 查看服务状态systemctl status tor
如果状态显示为 active (running)
,则表示Tor已成功启动。
查看日志
Tor启动后,需要几分钟到半小时不等的时间来完成自检并发布其描述符到网络。你可以通过查看日志来确认进度。
# 查看实时日志journalctl -e -u tor.service -f# 或者查看我们之前配置的日志文件tail -f /var/log/tor/notices.log
当你看到类似下面这行的日志时,说明你的节点已经成功连接到Tor网络并且端口是可访问的:
[notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.
使用nyx
监控
nyx
是一个功能强大的Tor实时监控工具。直接在终端运行:
nyx
它会显示你的节点的实时带宽、连接数、日志摘要、配置信息和指纹。按 h
可以查看帮助。
8. 【高危警告】运行退出节点的责任与风险
在将你的服务器作为退出节点之前,请务必仔细阅读并理解以下内容!
法律与滥用投诉风险
- 所有经由你节点的Tor流量,其源头IP都是你的服务器IP。 这意味着如果有人使用Tor通过你的节点进行非法活动(如网络攻击、发布垃圾邮件、发表非法言论等),网络服务提供商、网站管理员或执法机构看到的都是你的IP地址。
- 你 极有可能 会收到来自你的主机提供商(IDC/ISP)的滥用投诉(Abuse Complaint)。你必须准备好如何专业地回应这些投诉,解释你正在运行一个Tor退出节点。
- 在某些国家或地区,运行退出节点可能会带来法律风险。请确保你了解并遵守当地的法律法规。
使用“缩减版”退出策略
为了最大限度地减少滥用投诉,不要使用 ExitPolicy accept *:*
这样的完全开放策略。Tor项目官方提供了一个经过深思熟虑的“缩减版”策略,它阻止了最常被滥用的端口(如邮件、SSH、一些P2P文件共享端口等),同时保留了大部分正常的网页浏览功能。
强烈建议你在 torrc
文件中使用以下策略替换掉之前的 ExitPolicy
设置:
# 推荐的缩减版退出策略ExitPolicy accept *:20-21 # FTPExitPolicy accept *:43 # WHOISExitPolicy accept *:53 # DNSExitPolicy accept *:80-81 # HTTPExitPolicy accept *:110 # POP3ExitPolicy accept *:143 # IMAPExitPolicy accept *:194 # IRCExitPolicy accept *:443 # HTTPSExitPolicy accept *:464-465 # SMTPSExitPolicy accept *:531 # IRC/SExitPolicy accept *:563 # NNTPSExitPolicy accept *:587 # SMTP SubmissionExitPolicy accept *:706 # SILCExitPolicy accept *:873 # rsyncExitPolicy accept *:902-904 # VMWareExitPolicy accept *:981 # Remote AUTHExitPolicy accept *:989-995 # FTPS, POP3S, IMAPS, etc.ExitPolicy accept *:1194 # OpenVPNExitPolicy accept *:1220 # QT ServerExitPolicy accept *:1293 # PKT-KRB-IPSecExitPolicy accept *:1500 # ISP fasttrackExitPolicy accept *:1533 # SametimeExitPolicy accept *:1677 # GroupwiseExitPolicy accept *:1723 # PPTPExitPolicy accept *:1755 # RTSPExitPolicy accept *:1863 # MSNExitPolicy accept *:2082-2083 # cPanelExitPolicy accept *:2086-2087 # cPanelExitPolicy accept *:2095-2096 # cPanelExitPolicy accept *:2102-2104 # ZephyrExitPolicy accept *:3128 # SquidExitPolicy accept *:3389 # RDPExitPolicy accept *:3690 # SubversionExitPolicy accept *:4321 # rwhoisExitPolicy accept *:4643 # Virt-ManagerExitPolicy accept *:5050 # Yahoo! MessengerExitPolicy accept *:5190 # AOLExitPolicy accept *:5222-5223 # XMPP, JabberExitPolicy accept *:5228 # Android PushExitPolicy accept *:5900 # VNCExitPolicy accept *:6660-6669 # IRCExitPolicy accept *:6679 # IRC SSLExitPolicy accept *:6697 # IRC SSLExitPolicy accept *:8000 # IcecastExitPolicy accept *:8008 # HTTP alternateExitPolicy accept *:8080 # HTTP alternateExitPolicy accept *:8082 # HTTPS alternateExitPolicy accept *:8087-8088 # Second LifeExitPolicy accept *:8443 # HTTPS alternateExitPolicy accept *:8888 # HTTP alternateExitPolicy accept *:9418 # gitExitPolicy accept *:9999 # ShoutcastExitPolicy accept *:10000 # WebminExitPolicy accept *:11371 # OpenPGPExitPolicy accept *:19294 # Google TalkExitPolicy accept *:19638 # EnsimExitPolicy reject *:*
再次强调,ContactInfo
在退出节点上至关重要,它能帮助你处理可能出现的各种问题。
9. 在Tor网络上找到你的节点
一旦你的节点稳定运行2-3小时后,它应该会出现在Tor网络的公共列表中。你可以通过Tor Project的官方查询页面来搜索你的节点:
- Tor Relay Search: https://metrics.torproject.org/rs.html
在搜索框中输入你的节点昵称(Nickname),IP 或指纹(Fingerprint),就可以看到它的状态、带宽、在线时长等详细信息。
至此,你已经成功搭建并运行了一个Tor中继或退出节点。感谢你为互联网自由和隐私保护做出的贡献!请持续关注节点的运行状态和可能的滥用投诉。