iptables 如何将远程端口转发到本地

iptables 如何将远程端口转发到本地

场景如下:

我有一个编码文件,我无法更改 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 文件条目)

相关内容