Iptables 重新路由至 shadowsocks
我有一台 ubuntu 20.04 vps,上面有 shadow-socks 服务器。
我的电脑上也有 ubuntu 20.04,上面运行着 shadow-socks 客户端。目前正在使用影子袜子-libev版本。
目标是将所有请求重定向到代理客户端正在运行的 127.0.0.1:1080。
然而,没有什么能帮我实现这一点。
我采取的步骤
我、我创建了管理员用户仅用于运行 shadow socks 客户端。
II. 我制作了 systemd 单元以从单独用户启动客户端,文件内容如下:
[Unit]
Description=SahdowSocks
After=network.target
After=network-online.target
[Service]
ExecStart=ss-local -c /etc/shadowsocks-client/config.json
Restart=on-failure
User=socks_user
Group=socks_user
[Install]
WantedBy=multi-user.target
此时,如果我在浏览器(firefox)中将 127.0.0.1:1080 设置为 socks5 代理 - 它可以正常工作。
III.然后我根据上面的链接制定了 iptables 规则。
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner socks_user --dport 80 -j REDIRECT --to-port 1080
sudo iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner socks_user --dport 443 -j REDIRECT --to-port 1080
之后,如果通过设置直接连接到代理,我仍然可以使用该浏览器,但切换到无代理/系统代理后,请求超时。所有其他应用程序也都无法连接。
*顺便提一下,如果我 ping 1.1.1.1,它会返回正常
*如果我执行 wget http://someurl,则不会有任何结果。
因此我认为我遇到了重新路由循环(?),但不明白为什么。