server1:公網IP:10.10.10.1;私網IP:192.168.1.1(局域網無需配置網關)
server2:公網IP:20.20.20.1;私網IP:192.168.1.2(局域網無需配置網關)
linux下使用iptables配置流量轉發必須開啓路由轉發功能(轉發服務器配置即可,此例爲server1)
編輯/etc/sysctl.conf文件,添加net.ipv4.ip_forward=1
echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
sysctl -p使配置生效
使用iptables配置端口流量轉發(轉發服務器配置即可,此例爲server1)
如將10.10.10.1的1000-10000端口的流量映射到20.20.20.1的1000-10000端口上
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 1000:10000 -j DNAT --to-destination 20.20.20.1:1000-10000
iptables -t nat -A PREROUTING -p udp -m udp --dport 1000:10000 -j DNAT --to-destination 20.20.20.1:1000-10000
iptables -t nat -A POSTROUTING -d 20.20.20.1 -p tcp -m tcp --dport 1000:10000 -j SNAT --to-source 10.10.10.1
iptables -t nat -A POSTROUTING -d 20.20.20.1 -p udp -m udp --dport 1000:10000 -j SNAT --to-source 10.10.10.1
iptables-save保存配置
iptables -t nat -L查看配置
配置靜態路由,使流量通過局域網傳輸
server1:ip route add 20.20.20.1/32 via 192.168.1.2
server2:ip route add 10.10.10.1/32 via 192.168.1.1
配置後查看server1到server2的公網IP延遲與局域網延遲相同,證明配置完成
檢查流量轉發是否成功,可以通過在server2上啓動1001端口的服務,通過10.10.10.1:1001訪問,訪問成功及表明流量轉發成功
參考文章:https://www.huiyingwu.com/378/
-----------日常記錄---------------