内网服务器通过单台外网服务器实现外网访问,iptables NAT

内网服务器通过单台外网服务器实现外网访问,iptables NAT

环境:

​ servera: 外网服务器

​ serverb: 内网服务器

servera内网网关(GATEWAY)要设置为外网IP,其IP地址作为其它内网服务器的网关

servera 内网网卡配置
[root@localhost network-scripts]# cat ifcfg-team0 
TEAM_CONFIG="{ \"runner\": { \"name\": \"activebackup\" } }"
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=6d3ea3f4-4302-458b-9284-b2ea83f6285b
DEVICE=team0
ONBOOT=yes
DEVICETYPE=Team
IPADDR=192.168.109.110 # 内网网卡IP,作为其它内网服务器网关
PREFIX=24
GATEWAY=10.10.133.147 # 外网网卡IP,如果还需要配置其它内网网卡,网关都要设置为此IP
DNS1=114.114.114.114

servera 外网网卡配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens160
UUID=b58dbc36-1daa-43e9-9425-6b4d702cc41d
DEVICE=ens160
ONBOOT=yes
IPADDR=10.10.133.147  # 外网网卡IP
PREFIX=24
GATEWAY=10.10.133.1 # 外网网关
DNS1=114.114.114.114

serverb 网关(GATEWAY)为servera内网IP地址,配置网卡后需重启网卡生效

serverb 内网网卡配置
[root@192-168-109-115 network-scripts]# cat ifcfg-team0 
TEAM_CONFIG="{ \"runner\": { \"name\": \"activebackup\" } }"
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=team0
UUID=3af1f9c7-ad26-4680-8245-29dee0ddcda0
DEVICE=team0
ONBOOT=yes
DEVICETYPE=Team
IPADDR=192.168.109.115 
PREFIX=24
GATEWAY=192.168.109.110 # 服务器servera内网IP地址
DNS1=114.114.114.114

配置ipv4转发

修改servera配置文件/etc/sysctl.conf ,修改参数为1

net.ipv4.ip_forward = 1

配置生效: sysctl -p

配置servera使得serverb及其他内网服务器能访问外网

配置servera的iptables规则
[root@localhost network-scripts]# iptables -t nat -A POSTROUTING -s 192.168.109.0/255.255.255.0 -j SNAT --to-source 10.10.133.147
192.168.109.0/255.255.255.0 : 指整个网段都生效,也可单独指定serverb
以上配置后,通过IP能访问外网,使用域名则不行,即使配置了DNS解析服务器,还需要在servera执行
[root@localhost network-scripts]# iptables -I FORWARD 1 -s 192.168.109.0/24 -j ACCEPT
# 允许所有源地址在192.168.109.0/24的IP经过本机
保存规则,使得下次开机启动也生效
[root@localhost network-scripts]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
# 如果有提示:Unit iptables.service could not be found. 则需安装iptables-services

上一篇:CentOS 8中Smaba服务的匿名访问以及权限控制


下一篇:Python 空值与非空值