环境说明:
有一台A服务器不能上网,和B服务器通过内网来连接,B服务器可以上网有公网IP,要实现A服务器也可以上网。
内网主机: A:eth2: 192.168.205.160
外网主机:B:外网IP em1: 218.25.116.165 、内网IP:em4:192.168.205.200
1.在可以上网那台服务器B上,开启内核路由转发功能
临时
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p
#永久
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p
2.在需要通过代理上网服务器A上添加默认网关。route add default gw 172.16.1.6或者vim /etc/sysconfig/network-scripts/ifcfg-eth2修改GATEWAY
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth2
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth2
UUID=cd60df1b-8257-4b7e-bc9e-12849da6b1bc
DEVICE=eth2
ONBOOT=yes
IPADDR=192.168.205.160
NETMASK=255.255.255.0
GATEWAY=192.168.205.200 #外网主机的内网IP
DNS1=8.8.8.8
3.可以上网那台服务器B上添加NAT规则(如果没有iptables请安装)
[root@localhost ~]# iptables -t nat -A POSTROUTING -o em1 -s 192.168.205.160 -j SNAT --to 218.25.116.165
4.保存iptables规则
[root@localhost ~]# service iptables save
#重启iptables服务
[root@localhost ~]# /etc/init.d/iptables restart
5.验证是否可以正常上网。
Centos6
chkconfig iptables on
将iptables设置为开机自启动
[root@ localhost ~]# chkconfig |grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Centos7
[root@localhost ~]# systemctl enabled iptables
[root@localhost ~]# systemctl list-unit-files | grep iptables
iptables.service enabled
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=54 time=19.7 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=54 time=19.6 ms