其实在Linux下配置网关服务器很简单,若是配置好以后出现没法访问外网的状况,那么能够排查如下状况:服务器
一、防火墙和iptables的服务关掉(firewalld、iptables)spa
二、清空iptables的规则(iptables -F、iptables -X、iptables -F -t nat、iptables -X -t nat)code
三、转发开启(/etc/sysctl.conf-> net.ipv4.ip_forward=1)blog
经过以上的配置通常能够配置成功。ip
下面是实验环境:table
说明一下,网关能够两个网卡,一样也不必定须要两个网卡,一张网卡也是能够的。class
PC1:配置
eth0:192.168.104.12/255.255.255.0/192.168.104.1,DNS:8.8.8.8iptables
PC2:network
eth0:192.168.104.13/255.255.255.0/192.168.104.12,DNS:8.8.8.8
下面是实际配置:
PC1:
# 开启转发 echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf # 生效 sysctl -p # 配置iptables作SNAT,下面有两种方式,推荐用第二种,比较清晰 # 1、使用MASQUERADE iptables -t nat -I POSTROUTING -j MASQUERADE # (不须要设置)能够指定哪一个网卡 iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE # (不须要设置)也能够指定具体的网段作SNAT iptables -t nat -I POSTROUTING -s 192.168.104.0/24 -j MASQUERADE # 2、(推荐这种)指明SNAT的具体IP iptables -t nat -I POSTROUTING -j SNAT --to-source 192.168.104.12 # (不须要设置)能够指定哪一个网卡 iptables -t nat -I POSTROUTING -o eth0 -j SNAT --to-source 192.168.104.12 # (不须要设置)也能够指定具体的网段作SNAT iptables -t nat -I POSTROUTING -s 192.168.104.0/24 -j SNAT --to-source 192.168.104.12
PC2:
此时只须要在/etc/sysconfig/network-script/ifcfg-eth0修改GATEWAY=192.168.104.12,也就是修改网关地址。
总结:
一、其实若是你时间过一张网卡的状况时,那么你会发现只要开启了内核转发功能以后不须要配置iptables也是能够行的。
二、当两张网卡是状况,实体机,一张链接外网,一张内网链接交换机,再链接多个子PC,此时iptables就是必须的,且SNAT也必须为外网网卡IP。