DNAT方面的配置可以參考命令:
iptables -t nat -I PREROUTING -d 172.31.66.212 -p tcp --dport 65530 -j DNAT --to 172.31.129.86:8440
這個是實現把有公網的服務器的65530端口映射到無公網的8440端口上。
iptables -t nat -I POSTROUTING -p tcp --dport 8440 -j MASQUERADE
這個是爲了,轉發到後面服務器的8440端口的返回數據包可以再通過有公網的服務器出去
路由命令查詢廣播地址:
route -n
這個172.31.128.0就是這個無公網服務器的廣播地址
SNAT方面的配置可以參考命令:
iptables -t nat -I POSTROUTING -s 172.31.128.0/20 -j SNAT --to-source 172.31.66.212
dnat配置在有公網的服務器上即可,snat配置一次就好了; 172.31.128.0/20 這個是無公網服務器的交換機網段,172.31.66.212是有EIP服務器的內網ip
iptables-save > /etc/sysconfig/iptables
這個是將規則鏈永久保存
下面是一些簡單的操作案例:
問題:1個阿里雲彈性公網ip,2臺同內網段雲服務器,公網ip綁定在其中一臺上,使其內網服務器能使用外網
阿里雲VPC配置SNAT
1.將EIP綁定到某臺ECS上,然後測試通過eip登陸ssh,測試成功
2.開啓ip轉發功能,並使之生效
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
或者:
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
生效路由轉發:
sysctl –p
3.iptables添加SNAT轉換
172.31.129.86是內網網段,172.31.66.212是綁定了EIP的這臺機器的內網IP
iptables -t nat -I POSTROUTING -s 172.31.129.86/20 -j SNAT --to-source 172.31.66.212
4.添加VPC路由
5.測試是否可以訪問了
這個是沒綁公網ip的那臺服務器
問題二:現在沒公網服務器已經運行了服務,但是外網訪問不了內網服務器上的服務,這邊需要對內網服務器進行端口映射
阿里雲VPC配置DNAT
1. 將EIP綁定到某臺ECS上,然後測試通過eip登陸ssh,測試成功
2.開啓ip轉發功能,並使之生效
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
或者:
echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
生效路由轉發:
sysctl –p
3.iptables 添加DNAT轉換
47.52.229.239 是我這邊的彈性公網ip
我將綁定了公網IP服務器 的8335 端口都映射到了內網IP的80端口:
iptables -t nat -A PREROUTING -d 47.52.229.239 -p tcp --dport 8335 -j DNAT --to-destination 172.31.129.86:80
4.測試是否可以訪問了
win + R 打開windows 的運行界面輸入cmd進入管理員界面
tnlnet 47.52.229.239 8335
會顯示連接成功
下面的命令可以進行查看你配置的規則鏈:
iptables -t nat -L -n