如何通过EIP实现VPC下的SNAT以及DNAT

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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值