You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下如何仅用iptables实现80/443端口流量转发至另一服务器

用iptables实现Linux端口转发(80/443)

先开启内核IP转发,Linux默认关闭这个功能,必须打开才能实现转发:

  • 临时生效(重启后失效):
    echo 1 > /proc/sys/net/ipv4/ip_forward
  • 永久生效(重启后依然有效):
    编辑/etc/sysctl.conf,找到net.ipv4.ip_forward = 0这一行,改成net.ipv4.ip_forward = 1,然后执行sysctl -p让配置立即生效。

接下来配置iptables转发规则,把Server-A的80/443流量转到Server-B(把下面的192.168.1.100替换成你的Server-B实际IP):

80端口转发配置

# 将Server-A上的入站80端口流量转发到Server-B的80端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
# 让Server-B的响应能正确回传给客户端
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.100 --dport 80 -j MASQUERADE

443端口转发配置

和80端口逻辑完全一致,直接替换端口即可:

iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.1.100:443
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.100 --dport 443 -j MASQUERADE

保存规则避免重启丢失

不同Linux发行版保存命令不一样:

  • Debian/Ubuntu系列:iptables-save > /etc/iptables/rules.v4
  • RHEL/CentOS系列:service iptables save 或者 iptables-save > /etc/sysconfig/iptables

这个配置完全符合你的需求:客户端只和Server-A交互,所有请求/响应都通过Server-A中转,Server-B不需要做任何HTTP/HTTPS配置改动,全程用iptables实现端口转发。

内容的提问来源于stack exchange,提问作者Dmitry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 02:12:08