现在有服务器A通过PPPOE联网,而服务器B直接和服务器A使用网线连接。若需要使B能正常上网,则需要将A的网络共享给B。此外,服务器A和B都具有多网口,并都是CentOS系统。将服务器A的网络共享给B,其对两台服务器的设置如下:
1. 服务器A的设置
1.1 服务器A的第一个网口进行pppoe连接
将网线插入到服务器A的第一个网口eth0,然后设置服务器A的PPPOE连接:
安装pppoe软件 # yum install rp-pppoe 配置pppoe设置,填写上网账号和密码,该pppoe配置名称为ppp0,保证对应的网口为eth0,设置。 # pppoe-setup 关闭ppp0的连接 # ifdown ppp0 开启ppp0的连接 # ifup ppp0 若发现ppp0连接不上,输入下面命令后再连接 # pppoe-stop
1.2 服务器A的第二个网口的IP设置
再将服务器A的eth1口和服务器B的eth1口进行连接。对服务器A的eth1口进行设置:
# setup 通过setup命令配置eth1的IP,设置其: IP地址:192.168.1.1 子网掩码:255.255.255.0 网关:192.168.1.1 DNS1:211.69.143.1 DNS2:8.8.8.8 其中DNS1是我们学校提供的DNS服务器网址,DNS2是google提供的DNS网址。可能在不同的地方其DNS网址不一样。 然后,修改 eth0 和 eth1 的配置文件,设置这两个网口开机启动: # vi /etc/sysconfig/network-scripts/ifcfg-eth0 # vi /etc/sysconfig/network-scripts/ifcfg-eth1 ONBOOT=yes
1.3 将服务器A的ppp0网络进行NAT共享
首先,修改配置文件/etc/sysctl.conf的一个参数来开启使用NAT进行IP转发。
$ perl -p -i -e 's/net.ipv4.ip_forward =.*/net.ipv4.ip_forward = 1/' /etc/sysctl.conf
再使用iptables命令来对ppp0进行网络共享。
生成文件 /usr/local/bin/ishare 并使其可执行,执行该命令,即可共享 ppp0 网络。 # echo '#!/bin/bash ## Internet connection shating script sysctl -w net.ipv4.ip_forward=1 sysctl -p iptables -X iptables -F iptables -t nat -X iptables -t nat -F iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE' > /usr/local/bin/ishare # chmod 755 /usr/local/bin/ishare # /usr/local/bin/ishare 若需要开机则启动该命令: # echo '/usr/local/bin/ishare' >> /etc/rc.d/rc.local
1.4 重启服务器A的网络设置
服务器A的配置修改完毕,然后重启服务器A的网络,使配置生效:
# /etc/init.d/network restart 保证看到pppoe和eth1网络的正常启动。
2. 服务器B的设置
配置服务器B的 eth1 网口:
# setup 通过setup命令配置eth1的IP,设置其: IP地址:192.168.1.2 子网掩码:255.255.255.0 网关:192.168.1.1 DNS1:211.69.143.1 DNS2:8.8.8.8 修改 eth1 的配置文件,设置这该网口开机启动: # vi /etc/sysconfig/network-scripts/ifcfg-eth1 ONBOOT=yes 再重启重启服务器B的网络设置 # /etc/init.d/network restart 保证看到eth1网络的正常启动。
3. 会出现的问题
以上设置完毕后,通过 ping 命令来检测服务器B是否能联网。若服务器ping不通192.168.1.1,则表示服务器B和服务器A连接不通;若能ping通192.168.1.1而不能联外网,则表示服务器A没有开启共享或服务器A没有联网。需要按照上述教程逐步排查。