使用iptables进行端口流量转发

domo 发布于 2025-02-15 64 次阅读


实现本地---中转---落地

配置步骤

中转机必须允许转发流量。可以通过以下命令启用:

1. 在中转机启用IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

永久生效,可以修改配置文件 /etc/sysctl.conf,添加或确认以下行:

net.ipv4.ip_forward = 1

然后执行:

sysctl -p

2. 配置中转机的 iptables 规则

使用 iptables 在中转机上实现端口转发,将访问中转机 9999 端口的流量转发到落地机 8.8.8.8:8388

# 将进入中转机9999端口的流量转发到落地机8.8.8.8的8388端口
iptables -t nat -A PREROUTING -p tcp --dport 9999 -j DNAT --to-destination 8.8.8.8:8388
iptables -t nat -A PREROUTING -p udp --dport 9999 -j DNAT --to-destination 8.8.8.8:8388

确保中转机会伪装发出流量,防止落地机拒绝直接回复客户端MASQUERADE为动态获取中转机IP,适用于中转机的公网IP是动态的场景

# 确保中转机会伪装发出流量,防止落地机拒绝直接回复客户端
iptables -t nat -A POSTROUTING -p tcp -d 8.8.8.8 --dport 8388 -j MASQUERADE
iptables -t nat -A POSTROUTING -p udp -d 8.8.8.8 --dport 8388 -j MASQUERADE

如果想使用静态IP的方法可以这样设置:

iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

验证流程

确认新的规则是否生效时,可以使用以下步骤:

检查 NAT 规则是否被正常添加:

iptables -t nat -L -n -v

持久化规则

将规则持久化,以便中转机重启时不会丢失配置规则

对于基于 iptables-persistent 的系统:

安装:

apt-get install iptables-persistent

保存规则:

iptables-save > /etc/iptables/rules.v4

此作者没有提供个人介绍
最后更新于 2025-02-15