我不会在 Ubuntu 22.04.2 LTS 上使用 .onion 域在 Tor 网络中设置自己的站点。
我正在安装 tor、nginx 并配置 nginx 和 /etc/tor/torrc 文件以使用 unix 套接字。
添加了 /etc/tor/torrc 配置行:
HiddenServiceDir /var/lib/tor/mm-onion/
HiddenServicePort 80 unix:/var/run/tor/mm-onion.sock
并用 nginx 来听:
listen unix:/var/run/tor/mm-onion.sock;
但是,如果我通过
service tor start
启动 Tor 服务,则会成功启动,但 Tor 无法与 unix 套接字一起工作。创建 Unix 套接字文件。
现在我正在使用 socat 测试 unix 套接字 - 并且 nginx 给出了成功响应。我认为问题是在这种情况下不要写入unix套接字(tor由systemd启动)。
然后我通过
service tor stop
停止 tor 并检查 /lib/systemd/system/[email protected] 文件并查看行 ExecStart=/usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0
。
好吧,我直接在终端中运行命令
/usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0
,并且tor成功与unix套接字一起工作。
[email protected] 默认配置:
[Unit] Description=Anonymizing overlay network for TCP
After=network.target nss-lookup.target PartOf=tor.service
ReloadPropagatedFrom=tor.service
[Service]
Type=notify
NotifyAccess=all
PIDFile=/run/tor/tor.pid
PermissionsStartOnly=yes
ExecStartPre=/usr/bin/install -Z -m 02755 -o debian-tor -g debian-tor -d /run/tor
ExecStartPre=/usr/bin/tor
--defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0 --verify-config
ExecStart=/usr/bin/tor
--defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0
ExecReload=/bin/kill -HUP ${MAINPID}
KillSignal=SIGINT
TimeoutStartSec=300
TimeoutStopSec=60
Restart=on-failure
LimitNOFILE=65536
# Hardening
AppArmorProfile=-system_tor
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
ReadWriteDirectories=-/proc ReadWriteDirectories=-/var/lib/tor
ReadWriteDirectories=-/var/log/tor ReadWriteDirectories=-/run
CapabilityBoundingSet=CAP_SETUID CAP_SETGID CAP_NET_BIND_SERVICE CAP_DAC_READ_SEARCH
我的问题是 - 如果我通过
service tor start
启动它,为什么 Tor 不能正确使用 unix 套接字,但如果我直接在终端中通过 /usr/bin/tor --defaults-torrc /usr/share/tor/tor-service-defaults-torrc -f /etc/tor/torrc --RunAsDaemon 0
启动它,它就可以正常工作?
我不明白发生了什么......
谢谢。
尝试通过 systemd 运行 tor - 不适用于 unix 套接字。
尝试直接在终端中运行 tor - 它可以与 unix 套接字一起使用。
我不知道发生了什么,但在 Ubuntu 20.04 上它也不起作用。 我尝试在 CentOS 9 上运行相同的配置,第一次就OK了。
解决方案:使用CentOS而不是Ubuntu。