为了使本地运行的非代理感知应用程序能够通过我的代理(在 localhost:8081 上运行),我一直在尝试各种 iptables 规则组合,但都失败了。
看起来它应该完全按照我的要求执行。离开计算机前重定向到另一个端口:
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 443 -j REDIRECT --to-port 8081
这个只是根本没有重定向任何东西。
接下来,应用程序成功地将所有内容重定向到我的代理,但出现了其他问题。查看代理日志,代理收到了答案,但一直请求相同的文件。我的假设是它没有将响应转发回原始应用程序。
iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 127.0.0.1:8081
除了上述两种方法,我还尝试了其他各种组合,阅读了 serverfault 和 stackoverflow 上的各种教程和答案,并刷新了中间的链,以确保它实际上是从头开始的。既然所有这些都失败了,我希望有人能告诉我答案。
答案1
好的,最简单的方法是将应用程序尝试连接的服务器的 DNS 条目设置为代理。监听端口 80/tcp 和 443/tcp。启用隐形代理即可完成。