我的 Linux 机器中的应用程序正在连接到“ip.example.com”。
“ip.example.com” 的 IP 地址在 /etc/hosts 中定义为
10.23.22.1 ip.example.com
在目标 IP 上,端口 8080 上运行着一个服务。但是,应用程序尝试连接10.23.22.1:80
但失败了。无法修改目标 IP 或本地运行的应用程序。
我想将本地箱中的传出流量从10.23.11.1:80
转发到。10.23.22.1:8080
这可以在 IP 表中实现吗?
答案1
是的,可以使用如下规则:
iptables -t nat -A OUTPUT -p tcp --dport 80 -d 10.23.11.1 -j DNAT --to-destination :8080
答案2
如果这不是使用 iptables 的原则,我建议使用 nginx(或其他 Web 服务器)和代理路径模块:
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 9999h;
proxy_send_timeout 240;
proxy_read_timeout 9999h;
proxy_pass http://10.23.22.1:8080;
}