centOS 用NAT模式无法上网

今天在centOS 7下更改完静态ip后发现network服务重启不了,翻遍了网络,尝试了各种方法,终于解决了。

     现把各种解决方法归纳整理,希望能让后面的同学少走点歪路。。。

首先看问题:执行service network restart命令后出现下面的错误:

[java] view plain copy

1.                  Restarting network (via systemctl):  Job for network.service failed because the control process exited with error code.   

2.                  See "systemctl status network.service" and "journalctl -xe" for details.                                                           [失败]  

根据提示输入systemctl statusnetwork.service命令后出现如下错误信息:

[java] view plain copy

1.                  ● network.service - LSB: Bring up/down networking  

2.                     Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)  

3.                     Active: failed (Result: exit-code) since  2017-07-14 19:01:47 CST; 1min 16s ago  

4.                       Docs: man:systemd-sysv-generator(8)  

5.                    Process: 4681 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)  

6.                     CGroup: /system.slice/network.service  

7.                             └─1192 /sbin/dhclient -H mini1 -1 -q -lf /var/lib/dhclient/dhclient--ens33.lease -pf /v...  

8.                    

9.                  7 14 19:01:47 mini1 network[4681]: RTNETLINK answers: File exists  

10.                7 14 19:01:47 mini1 network[4681]: RTNETLINK answers: File exists  

11.                7 14 19:01:47 mini1 network[4681]: RTNETLINK answers: File exists  

12.                7 14 19:01:47 mini1 network[4681]: RTNETLINK answers: File exists  

13.                7 14 19:01:47 mini1 network[4681]: RTNETLINK answers: File exists  

14.                7 14 19:01:47 mini1 network[4681]: RTNETLINK answers: File exists  

15.                7 14 19:01:47 mini1 systemd[1]: network.service: control process exited, code=exited status=1  

16.                7 14 19:01:47 mini1 systemd[1]: Failed to start LSB: Bring up/down networking.  

17.                7 14 19:01:47 mini1 systemd[1]: Unit network.service entered failed state.  

18.                7 14 19:01:47 mini1 systemd[1]: network.service failed.  

network服务启动不了首先保证/etc/sysconfig/network-scripts目录下的ifcfg-xxx(每台机器不一定相同)没有错误(如果你改动过的话),这里的错误指的在更改过程中因为手误敲错字母之类的。

网上最常见的几种做法如下:

1.和 NetworkManager 服务有冲突,这个好解决,直接关闭 NetworkManger 服务就好了, service NetworkManagerstop,并且禁止开机启动 chkconfig NetworkManager off 。之后重启就好了。

 

2和配置文件的MAC地址不匹配,这个也好解决,使用ip addr(或ifconfig)查看mac地址

[java] view plain copy

1.                  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1  

2.                      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  

3.                      inet 127.0.0.1/8 scope host lo  

4.                         valid_lft forever preferred_lft forever  

5.                      inet6 ::1/128 scope host   

6.                         valid_lft forever preferred_lft forever  

7.                  2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000  

8.                      link/ether 00:0c:29:b8:e7:21 brd ff:ff:ff:ff:ff:ff  

9.                      inet 192.168.65.141/24 brd 192.168.65.255 scope global dynamic ens33  

10.                       valid_lft 1193sec preferred_lft 1193sec  

11.                    inet6 fe80::cca2:d835:f93:e637/64 scope link   

12.                       valid_lft forever preferred_lft forever  

00:0c:29:b8:e7:21这个就是MAC地址了,将/etc/sysconfig/network-scripts/ifcfg-xxx中的HWADDR(如果没有就添加上)改成这个MAC地址

 

3.设定开机启动一个名为NetworkManager-wait-online服务,命令为:
systemctl enable NetworkManager-wait-online.service

=========================================================================================================

上面两个是我看到最多的解决方法,但是很遗憾,我的并没有解决。

有查看资料,发现了以下一些方法:

4.查看/etc/sysconfig/network-scripts下,将其余无关的网卡位置文件全删掉,避免不必要的影响,即只留一个以ifcfg开头的文件,

留的那一个应和使用ip addr命令查看ip第二条开头的名称一致(我的是ens33,参见上面我贴出的ip addr命令执行结果),所以我只留了一个ifcfg-ens33。(我的其中两台机器就是这么弄好的,因为我在修改前留了备份,把备份删掉就好了。。。)

 

5.将ifcfg-xxx文件中的DEVICE一行注释掉。

 

6.将ifcfg-xxx中的NAME改为和文件名一致。

 

7.在VMWare的编辑-虚拟网络编辑器中将网络模式改为桥接。

 

8.看VMWare右下角的网络适配器是否连接,如果没有连接则连接上。

(补充:点击网络适配器-设置,将NAT模式改为桥接试试,我的改为桥接后可以重启network服务了但是上不了网,可以重启后

再将桥接模式改为NAT模式,发现既可以上网又可以重启network服务了)

 

9.查看下你电脑有没有禁用了VMware DHCP service和VMware NAT service 这几个vm服务,如果禁用则开启。

 

10 .如果你改成了静态ip别忘了将BOOTPROTO改为static。

 

11.如果以上都没有解决,还有最后一招-- 重启 看一看有没有奇迹发生!!(我的另外一台重启后莫名就好了)

上面这些方法,我基本都试过了,对我的机器有的有用有的没用,但是有人也用这些方法解决了,所以一并记录下来。希望能给予你一点帮助

InCentos7.0 disabling NetworkManager will leave a dhcp client running configuredfor NetworkManager. This causes the error message RTNETLINK answers: File exists whenthe network service isstarted.

Thestale dhclient process has theadditional "benefit" that when the lease expires your dhclientwill choke, since it cannot reachNetWorkManager, thus removing your IP address.

Ifyou grep for it, you willsee that it points to a NetWorkManager configuration file.

[root@host ~]# ps -ef | grep dhc
root      1865   792  0 Apr28 ?        00:00:00 /sbin/dhclient -d -sf \
 /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eno1.pid -lf\
 /var/lib/NetworkManager/dhclient-c96e56d3-a4c9-4a87-85ca-93dc0ca268f2-eno1.lease\
 -cf /var/lib/NetworkManager/dhclient-eno1.conf eno1

Sowhat you can do is kill the dhclient andonly then start your network service.

 

 

YPE="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"

NAME="eno16777736"

UUID="9b3c3f62-687e-4cd2-878e-1fa71aab061h"

ONBOOT="yes"

IPADDR="192.168.45.135"

NETMASK="255.255.255.0"

GATEWAY="192.168.45.2"

HWADDR="00:0c:29:64:ba:fd"

 

 

这两个网关地址要相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值