将传出流量转发到不同的端口

将传出流量转发到不同的端口

我的 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;
}

相关内容