先生们!我遇到了一个严重的问题,我写下这篇文章是因为我在互联网上找不到解决办法。
我有时需要使用 tor,虽然官方尚未禁止,但在我居住的地区使用 tor 相当危险。所以我想用 OpenWrt 设置路由器,并配置连接,以便某些流量(来自不同的机器)通过 tor 网络传输,但(原文如此!)使用我提供的网桥。
据我所知,为了使用桥接器建立功能齐全的 tor 连接,我要做的第一件事就是下载这两个软件包,因此我执行以下操作:
opkg install tor
opkg install obfsproxy
我必须提到,obfsproxy 及其所有依赖项(如 python 等)占用了相当多的闪存,而我只有 32 MB。因此,为了把所有东西都放进去,我不得不连接一个 USB 闪存驱动器并扩展文件系统使用本指南来自 OpenWrt 网站。我认为这一点很重要,因为它可能对接下来发生的事情产生影响。
后来我觉得我需要编辑托尔克我找不到它(尽管我知道有时它可能不存在),所以我在/var/lib/torOpenWrt 默认将 tor 及其配置放在这里(至少我能找到这个)。因此我在这个文件中放置了以下几行:
UseBridges 1
TransPort 9040
Exitpolicy reject *:*
ExtORPort auto
ClientTransportPlugin obfs4 exec /usr/bin/obfsproxy managed
#I placed my bridges here
bridge obfs4 ----------------
bridge obfs4 ----------------
bridge obfs4 ----------------
#I excluded the exit nodes which could be potentially run by the authorities of this area
ExcludeExitNodes {XX}
之后我开始使用
/etc/init.d/tor start
尽管尝试了几次之后它启动了,但是却没有起作用。
我无法使用
torify curl -s https://check.torproject.org/ | grep -m 1
所以我不得不查看路由器的日志。我还观察到,tor 使用默认配置加载,并且没有关于它应该使用网桥的信息。我真的不想冒险,因为我不能 100% 确定这个东西是否适用于网桥。
因此,我尝试创建控制端口以检查电路并获取有关桥梁的信息,因此我将其添加到 torrc
ControlPort 9051
CookieAuthentication 1
并且使用这python 脚本检查电路。但脚本无法正常工作,而且导致系统故障,与路由器的 ssh 连接中断,我唯一能做的就是将路由器设置为救援模式并重新安装操作系统。
我哪里做错了?我应该如何在 OpenWrt 中正确设置 Tor 桥?
更新1似乎我找到了某种线索。我尝试重复所有步骤,看看第一次出现问题的地方。我一直在尝试寻找解决方案,检查了不同的配置文件,但什么也没找到。
似乎我安装时出现了第一个冲突代理服务器。当我只安装了 tor 和 obfsproxy 并在 torrc 中配置了网桥(位于我最终使用评论中 Tomek 的建议找到的位置)时,我尝试运行
tor
开场的第一句台词是:
failed to parce/validate config: 'unknown option usr/lib/python2.7/site-packages/obfsproxy/transport/scramblesuit/__init__.pyc' failing
对此有什么想法吗?
顺便说一句,我随后尝试删除 obfsproxy 包,并使用以下命令删除其依赖项
opkg remove --autoremove '*'
这导致系统崩溃,所以我不得不重新安装 OpenWrt再次。
答案1
OpenWRT 的 obfsproxy 包不支持obfs4
,仅支持obfs2
、obfs3
和scramblesuit
Tor 桥。
如果要使用obfs4
,则必须使用 obfs4proxy 包,它支持obfs4
和提到的其他桥接类型。据我所知,obfs4proxy 目前在官方 OpenWRT 包数据库中不可用。
作为一种解决方法,您可以使用 obfs3 或 scramblesuit 桥。
还有一件事,确保您已经安装了 OpenWRT 网站中提到的所有 Tor 和 obfsproxy 依赖项:
https://openwrt.org/packages/pkgdata/tor
https://openwrt.org/packages/pkgdata/obfsproxy
这是我针对 OpenWRT v18.06.4 使用的 Tor 配置/etc/tor/torrc
:
Log notice syslog
DataDirectory /var/lib/tor
User tor
AvoidDiskWrites 1
RunAsDaemon 0
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
AutomapHostsSuffixes .onion,.exit
TransPort 0.0.0.0:9040
DNSPort 0.0.0.0:9053
SocksPort 0.0.0.0:9050
UseBridges 1
ClientTransportPlugin obfs2,obfs3,scramblesuit exec /usr/bin/obfsproxy managed
#Place your bridges here:
bridge obfs3 -----------
bridge scramblesuit ----------