使用iptebles实现服务器之间流量转发

相信有很多人使用过流量转发,比如用商家转发到落地机的,那么怎么实现这种转发呢?其实很简单,几行命令搞定,这次俺们用 iptables 来演示一下。 流量走向: 客户端 --> GFW --> A服务器 --> B服务器(落地) --> YouTube --> 返回客户端 A服务器IP:2.2.2.2 端口:20000 B服务器IP:6.6.6.6 端口:60000 实现目的:把本机A服务器IP 2.2.2.2 上的 20000 端口流量转发到B服务器IP 6.6.6.6 的 60000 端口上 A服务器 以下都在A服务器上操作,也就是转发服务器,白话就是线路好的服务器 首先在服务器上开启 tcp 转发: echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 使其生效: sysctl -p 好像Debian11以上就弃用了iptables,来安装一下: apt install iptables -y 把A服务器 20000 端口流量转发到B服务器的 60000 端口上 在PREROUTING上修改目的地址: iptables -t nat -A PREROUTING -p tcp --dport 20000 -j DNAT --to-destination 6.6.6.6:60000 在POSTROUTING上修改源地址: # 2.2.2.2 是A服务器IP,也就是转发服务器IP iptables -t nat -A POSTROUTING -d 6.6.6.6 -p tcp --dport 60000 -j SNAT --to 2.2.2.2 # 或者直接用MASQUERADE自动获取源IP,两条命令二选一 iptables -t nat -A POSTROUTING -d 6.6.6.6 -p tcp --dport 60000 -j MASQUERADE 其实上面两条命令就可以用了,为了防止在FORWARD上面被丢弃,添加两条规则允许通过: ...

September 15, 2023 · YanceyAn