Network

Linux中使用iptables配置NAT网络地址转换

2021-04-28  本文已影响0人  刘小白DOER

    最近笔者在使用腾讯云服务器时,发现运行ip addr或者ifconfig命令时,只有一个网络适配器配置了私网IP地址,而没有公网IP地址。但是笔者是通过公网IP地址远程ssh到腾讯云服务器,那么公网IP地址是在哪里设置的呢?

    查看腾讯云文档中心的说明:转换,公有 IP 地址通过网络地址转换( NAT )映射到实例的内网IP地址。腾讯云的所有公网接口统一由 Tencent Gateway(TGW)进行处理。腾讯云云服务器实例的公网网卡在统一接口层 TGW 上配置,云服务器无感知。所以,用户在云服务器中通过 ifconfig (Linux) 命令查看网络接口信息时,只能查看到内网的信息。

    既然有公网IP地址来通信,那么直接取消 NAT转换,将腾讯云服务器配置为公网IP地址可以吗?腾讯云文档也有说明的,“腾讯云机房均由底层万兆/千兆互联,提供带宽高、时延低的内网通信服务,且同地域下内网通信完全免费,帮助您灵活构建网络架构。”在应用服务器构建了服务后,与数据库服务器可以使用内网来通信,更加灵活部署,同时内部网络通信快速,也保障了数据库的安全。

    现在笔者也来测试搭建一个NAT服务器。实验环境:

centos8:外网enp0s3 IP地址192.168.31.167,内部 enp0s8 IP地址192.168.56.103

ubuntu20:内部enp0s4  IP地址192.168.56.107

整个配置过程概括如下:

1、开启网关主机的路由转发功能

2、添加使用SNAT策略的防火墙规则

centos8服务器设置:

1、修改/etc/sysctl.conf配置文件,添加net.ipv4.ip_forward = 1 ,打开路由转发功能。

2、将配置文件保存之后,用sysctl -p 使其参数生效。

3、SNAT是源地址转换,其作用是将ip数据包的源地址转换成外网IP地址。

iptables -t nat -A POSTROUTING -j SNAT --to- source 172.18.72.183

ubuntu20客户端配置:

1、配置IP地址,重要的是 broadcast要设置为centos8服务器的内网IP地址。

sudo ifconfig enp0s4 192.168.56.107  broadcast 192.168.56.103 netmask 255.255.255.0 up

2、测试效果,ping www.baidu.com 。

上一篇下一篇

猜你喜欢

热点阅读