LINUX下网关地址配置

当时的问题是因为公司服务器搬迁的问题,要给服务器重新配置IP和网关。和一个老同事一块去处理组内的服务器。

最初用的是route命令
route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]

route add default gw 192.192.xxx.xxx dev eth0 这样就可以配置默认网关。使用在root账户下service network restart命令重启网络服务,就可以使服务器成功ping通。

但是问题在于,这样配置后,一段时间后这个网关就失效了。ping不通这台服务器。原因是直接执行route命令来添加路由不会永久保存,当网卡重启或者机器重启之后,该路由就失效了。

为了使在下次启动计算机时仍然有效,需要修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0

添加GATEWAY=192.192.xxx.xxx在该配置文件中,然后再在root账户下用命令service network restart 重启网络服务,这样就可以永久生效。

类似地可以去配置IP、DNS。

其实还可以在/etc/rc.local脚本中写命令来完成相同的功能。

time is over
参考:
linux 路由表设置 之 route 指令详解
http://blog.csdn.net/vevenlcf/article/details/48026965

linux_下IP、网关、DNS地址配置
http://www.cnblogs.com/xuzhiwei/p/3560553.html

理解Linux系统/etc/init.d目录和/etc/rc.local脚本
http://blog.csdn.net/acs713/article/details/7322082

—————update time: 2017年10月11日8:58:37——————-
昨晚快下班的时候,组长突然告诉我xxx服务器挂了,连不上。让我去看看。

用route命令查看当前路由表信息,看到最后一条默认网关是:
default gw-ip 0.0.0.0 UG 0 0 0 eth0

然后我插拔了一下网线,用ethtool ethx查看这网线是插在哪个网口的,惊奇地发现这是eth2口。怀疑是因为国庆断电回来后,网口发生了变化。据说这是小概率事件= =但是也有人遇到过。不过我遇到过加了新的网卡的时候,网口发生变化的。

于是开始用前面的方法加默认网关,先是试着用route add 命令临时添加默认网关,然后发现能ping通楼上的机器。然后往配置文件/etc/sysconfig/network-scripts/ifcfg-eth2加网关。以为万事大吉,结果发现别的这台服务器ping不通别的服务器。于是分析可能是当前路由表上有两条默认网关,其中eth0的在前,eth2的在后,按路由表的规则,应该由从前面eth0转发(但是这个eth0根本没接网线)。

发现这个现象后,我想到的解决方案有三个。

方法1:找到eth0网口,把插在eth2网口上的网线插回eth0上(但是,因为在楼上和组长商量的时候,直接把/etc/sysconfig/network-scripts/ifcfg-eth0 这个配置文件直接干掉了,所以此方法失败)

方法2 找到为eth0添加默认网关的方法,然后从源头干掉它。(此方法失败),查看了/etc/sysconfig/network-scripts/ifcfg-eth0,/etc/sysconfig/network 以及/etc/rc.local 均没有找到。

方法3 最后我先试了route del命令把原先的eth0默认网关给删除,再route add添加新的eth2的默认网关。发现这样就可以同时ping通别的服务器,和楼上的主机。所以在/etc/rc.local 里添加命令:route del和route add,这样就可以保证重启和service network restart后路由表中都仅有eth2的默认网关。

最后算是临时解决了这个问题吧,其实现在回过头来看,是不是当时网线换个插口就好了呢?(从eth2换到eth0)

—————update time: 2017年10月16日16:31:22——————-
今天又去装了一次机,装机完成后要配置ip,打开/etc/sysconfig/network-scripts目录,找到对应的网口,编辑,修改
BOOTPROTO=static (dhcp的话不用设ip)
IPADDR=(ip地址)
NETWORK=(子网掩码)
GATEWAY=(默认网关)
但是在这种情况下service network restart之后并没有在路由表中增加新的默认网关,小伙伴百度了一下,原来是ONBOOT这个no没改成yes。
ONBOOT=yes (引导时是否激活设备,yes就是激活这个设备)

其实 也可以在/etc/rc.local里加两个命令
ifconfig ethx 192.192.xxx.xxx netmask 255.255.255.0 up
route add default gw 192.192.xxx.xxx dev ethx
也可以实现相同的功能,给指定网口设置ip,加默认网关

猜你喜欢

转载自blog.csdn.net/kgdysg/article/details/78102439