在CentOS 7服务器上安装TOR

4
我尝试按照这篇文章下载TOR,但是出现了503错误。那么没有其他下载TOR的方法吗?请有人帮助我,因为我必须在上面进行研究项目。
我正在使用CentOS服务器:CentOS Linux发行版7.3.1611(核心),但是出现以下错误:
[sam@xx etc]$ sudo yum install tor
[sudo] password for sam:
Loaded plugins: fastestmirror, langpacks
base                                                     | 3.6 kB     00:00
extras                                                   | 3.4 kB     00:00
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.
http://deb.torproject.org/torproject.org/rpm/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 503 - Service Unavailable
Trying other mirror.

临时服务中断?现在似乎正常工作了。您可以尝试手动获取RPM并使用“rpm -Uvh tor...rpm”进行安装。 - drew010
@drew010,我如何手动获取RPM?您能详细解释一下吗?谢谢。 - saf1
我忘记了他们不再推荐在CentOS中使用他们的repo(请参见我的答案)。最简单的方法是使用epel,但我也展示了如何从源代码构建,以供有兴趣的人参考。 - drew010
1个回答

12

Tor不再建议使用其CentOS仓库,而是使用epel仓库。否则,你将只会得到一个非常旧的版本。

请改用:

yum install epel-release
yum install tor

这将为您提供由仓库管理的Tor当前版本。 这是完全可以接受的。
对于CentOS,我已经自己编译了一段时间。我有一个hacky shell脚本,我还不想在这里发布;)但实际上它只是编译Tor和OpenSSL。我仍然建议使用epel-release,因为它更经过测试。
要尝试构建静态链接到OpenSSL的Tor,请获取最新版本的OpenSSL(例如1.1.1x),然后获取要构建的Tor版本(例如0.4.1.6)。
首先,您需要安装一些先决条件:
yum install -y \
gcc gcc-c++ \
zlib-devel \
perl-Module-Load-Conditional perl-Test-Harness \
libevent-devel \
libzstd-devel xz-devel \
libscrypt-devel libseccomp-devel

从 OpenSSL 源目录:

./config --prefix=/opt/openssl --openssldir=/opt/openssl \
-fPIC zlib-dynamic no-shared enable-ec_nistp_64_gcc_128
make
make test
make install

OpenSSL 1.1.1提示:在构建OpenSSL时删除“no-shared”选项,否则Tor配置将失败,并出现错误,即无法找到可链接的OpenSSL,即使静态构建了它。 Tor仍将链接静态的OpenSSL,但似乎需要共享库才能正常工作。这似乎已在1.1.1c及更高版本中得到修复。
然后,构建Tor:
此将OpenSSL安装到“/opt/openssl”,因此不会干扰或替换系统的OpenSSL。
./configure --prefix=/opt/tor-VERSION --sysconfdir=/etc --localstatedir=/var \
--enable-static-openssl --with-openssl-dir=/opt/openssl \
--with-tor-user=tor --with-tor-group=tor \
--enable-lzma --enable-zstd

make
make test
make install
unlink /usr/bin/tor && ln -s /opt/tor-VERSION/bin/tor /usr/bin/tor

我使用的systemd服务文件是:
[Unit]
Description=Anonymizing overlay network for TCP
After=syslog.target network.target nss-lookup.target

[Service]
Type=forking
PidFile=/var/run/tor/tor.pid
NotifyAccess=all
ExecStartPre=/usr/bin/tor -f /etc/tor/torrc --verify-config
ExecStart=/usr/bin/tor -f /etc/tor/torrc --RunAsDaemon 1
ExecReload=/bin/kill -HUP ${MAINPID}
KillSignal=SIGINT
TimeoutStartSec=120
TimeoutStopSec=60
Restart=on-failure
LimitNOFILE=65536

# Hardening
PrivateTmp=yes
PrivateDevices=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
ReadWriteDirectories=-/var/lib/tor
ReadWriteDirectories=-/var/log/tor
NoNewPrivileges=yes
CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE CAP_DAC_OVERRIDE CAP_CHOWN CAP_FOWNER

[Install]
WantedBy=multi-user.target

我按照你说的尝试使用epel仓库,但一直收到503错误。你认为这与我使用uni服务器下载有关吗? - saf1
2
是的,它可能仍在尝试使用Tor。我会从您的yum配置中删除它,或尝试yum install tor --enablerepo epel-release以强制其使用正确的版本。 - drew010
对于任何尝试使用openssl 1.1.1编译此代码的人 - 我没有成功。我切换到了1.0.2o版本,效果非常好。我的tor版本是0.3.4.8。 - michnovka
@michnovka,你在使用openssl 1.1.1时遇到了哪些错误?我已经在CentOS 7和Debian 8上使用静态1.1.1构建了可工作的Tor版本。你可能需要删除no-shared标志,因为我发现没有它就不能正常工作。出于某种原因,Tor似乎无法找到它。这是在1.1.x意味着“0”的时候编写的。 - drew010
问题是.configure无法找到“可链接”的openssl,它总是默认为(系统)(只要我安装了openssl-devel)。不过我没有尝试不使用no-shared标志。 - michnovka
是的,这就是我使用以上配置命令在Tor和OpenSSL 1.1.1上遇到的相同错误。去除no-shared选项即可解决问题,尽管使用了--enable-static-openssl编译选项,但我可以确认它确实静态链接了OpenSSL。不确定这是否是Tor编译选项的错误,但构建OpenSSL共享库非常容易,因此我没有提交任何错误报告或进一步调查。@michnovka - drew010

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接