场景如下:
我有一个编码文件,我无法更改 API URL,但我知道它是什么。假设它是https://my.api.site.com/v1
。
当我运行时php myfile.php
,它会连接到 API URL,但问题是由于我所在地区的一些网络问题,它最近无法连接。
所以我必须运行 socks 代理,然后通过 socks 连接。
这是我在本地服务器中所做的:ssh -L 0.0.0.0:9999:my.api.site.com:443 root@remote
,然后将其添加到/etc/hosts
:
127.0.0.1 my.api.site.com
我想做这个:
每当我跑步时
curl -L https://my.api.site.com/v1
,它都应该经过https://my.api.site.com:9999/v1
。
由于文件已编码,我无法更改 URL。
我如何通过防火墙(如iptables
或)来做到这一点csf
。
操作系统是 Ubuntu 20。
答案1
尝试这个:
iptables -I OUTPUT -o lo -t nat -p tcp --dport 443 -j DNAT --to 127.0.0.1:9999
这将拦截发往 locahost 端口 443 的流量并将其 NAT 到端口 9999。您不需要使用 SOX 代理 - 您需要做的就是拦截本地计算机上发往端口 443 的流量并重写它,使其转至端口 9999。(域仍然需要解析为 localhost,因此您可能仍然需要 hosts 文件条目)