实现本地---中转---落地
配置步骤
中转机必须允许转发流量。可以通过以下命令启用:
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]
MASQUERADE和SNAT 二选一即可,都适用
验证流程
确认新的规则是否生效时,可以使用以下步骤:
检查 NAT 规则是否被正常添加:
iptables -t nat -L -n -v
持久化规则
将规则持久化,以便中转机重启时不会丢失配置规则
对于基于 iptables-persistent
的系统:
安装:
apt-get install iptables-persistent
保存规则:
iptables-save > /etc/iptables/rules.v4
Comments NOTHING