我有一个 RaspberryPi,它连接到具有静态 IP 的 eth0 上的互联网,我安装了 Squid,并且我还在我的 Mikrotik 路由器上启用了 1694 端口转发到我的树莓上的 3128 端口,所以我可以使用我的树莓作为代理服务器。例如,当我从另一个互联网上的另一个设备上测试它时,它可以工作:
$ curl -x MY.STAT.IC.IP:1694 https://wtfismyip.com/text
MY.STAT.IC.IP
现在我已经为我的树莓添加了一个 3g 屏蔽,我能够连接到 3g 网络,现在我在 ppp0 接口上有了互联网,它有一个动态 IP。现在我想将所有传入的请求转发到 eth0 以通过 ppp0 路由,所以当我在 curl 上执行时,我得到了我的 3g 网络 IP。
我不想tcp_outgoing_address
在 squid 上使用,因为它有很多问题,我想做端口转发,我已经完成了以下操作,但它仍然返回我的静态 IP。
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT
我已经尝试了很多其他的 iptables 转发,但都没有奏效。我已经尝试过这个 bash 脚本(当然编辑过),但它也没有工作,我也尝试了 ipt.sh 从这个链接,我确信它会工作,但仍然没有成功,那么,我错过了什么?