You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下Tor服务通过systemd启动后Unix Socket异常

问题原因与解决方案

核心原因:AppArmor安全规则限制

通过systemd启动Tor时,会加载默认的system_tor AppArmor规则,该规则严格限制了Tor进程可访问的文件路径。你自定义的Unix Socket路径/var/run/tor/mm-onion.sock不在默认允许列表内,导致Tor无法正常读写该Socket。

而直接在终端运行Tor命令时,AppArmor规则通常不会对交互式会话中的进程生效,因此Tor能不受限制地访问该Socket,进而正常协作。

解决方案

方案1:修改AppArmor规则,允许Tor访问自定义Socket

  1. 打开Tor的AppArmor配置文件:
    sudo nano /etc/apparmor.d/system_tor
    
  2. 在文件中找到/run/tor/相关规则区域,添加一行允许访问目标Socket的配置:
    /var/run/tor/mm-onion.sock rw,
    
  3. 重新加载AppArmor规则使修改生效:
    sudo apparmor_parser -r /etc/apparmor.d/system_tor
    
  4. 重启Tor服务:
    sudo service tor restart
    

方案2:将Socket移至Tor默认有权限的目录

Tor对HiddenServiceDir(即/var/lib/tor/mm-onion/)拥有完全读写权限,将Socket路径调整到该目录下可直接规避AppArmor限制:

  1. 修改/etc/tor/torrc中的配置:
    HiddenServicePort 80 unix:/var/lib/tor/mm-onion/mm-onion.sock
    
  2. 修改Nginx配置中的监听路径,与上述修改对应:
    listen unix:/var/lib/tor/mm-onion/mm-onion.sock;
    
  3. 重启Tor和Nginx服务:
    sudo service tor restart
    sudo service nginx restart
    

验证步骤

可通过查看Tor服务日志确认权限问题是否解决:

sudo journalctl -u tor@default.service -f

若日志中存在Permission denied类错误,即可确认是权限限制导致的问题。

内容的提问来源于stack exchange,提问作者Nikita Iakubenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:55:32