WSL2环境下给Docker部署的Splash配置Tor代理出现错误99求解
问题原因及解决步骤
核心原因
错误99为无法分配请求地址,本质是Splash容器无法访问你配置的Tor代理:你脚本中填写的127.0.0.1是Splash容器自身的环回地址,而Tor服务运行在WSL宿主环境中,默认桥接网络模式下容器无法通过环回地址访问宿主端口。
解决步骤
方案一:使用host网络模式(操作最简单)
启动Splash容器时添加--net=host参数,让容器和WSL共享网络栈,此时容器内的127.0.0.1就指向WSL宿主,直接可以访问Tor服务:
sudo docker run --net=host -p 8050:8050 -p 5023:5023 scrapinghub/splash --disable-browser-caches
修改后无需调整Splash代理脚本,直接测试即可。
方案二:修改配置适配桥接网络
如果不想使用host网络模式,按以下步骤操作:
- 修改Tor监听配置:编辑WSL内的
/etc/tor/torrc文件,新增/修改以下两行:
# 允许所有地址访问Tor代理端口 SocksListenAddress 0.0.0.0:9050 # 放行Docker默认网段的访问请求 SocksPolicy accept 172.17.0.0/16
修改完成后重启Tor服务:sudo service tor restart
2. 查看WSL宿主的网桥IP:在WSL内执行ip addr show eth0,记下inet字段对应的IP地址(格式通常为172.x.x.x)
3. 修改Splash脚本中的代理配置,将host参数的值替换为上一步查到的WSL IP即可。
可选验证步骤
配置完成后可以先进入Splash容器执行curl --socks5 <WSL_IP>:9050 https://check.torproject.org验证代理连通性,确认正常后再用Splash脚本测试。
内容的提问来源于stack exchange,提问作者felalex
相关产品推荐
相关产品推荐

