在虚拟机中安装完CentOS7之后,本来网络配置是不麻烦的,可是偏偏出现了问题,所以把这次虐心的过程记录下来。
环境
虚拟机: VMware Workstation 14
镜像: CentOS-7-x86_64-DVD-1611.iso
网络适配器: 桥接模式(自动)
网络配置
1.使用NetworkManager配置
# nmtui
以上根据自己实际情况配置,点击确定,然后返回到终端
没有该工具使用下面语句安装:
# yum -y install NetworkManager-tui
2.修改ifcfg-ens33配置文件
# cd /etc/sysconfig/network-scripts/
# vi ifcfg-ens33
配置如下:
YPE=Ethernet
BOOTPROTO=static # 静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c0d6a6b8-de69-45ff-86ae-1b4865250a27
DEVICE=ens33
ONBOOT=yes # 系统启动激活
DNS1=114.114.114.114
IPADDR=10.203.87.148
NETMASK=255.255.255.0
PREFIX=32
GATEWAY=10.203.87.254
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
主要改BOOTPROTO=static和ONBOOT=yes
3.修改DNS配置
# vi /etc/resolv.conf
内容:
nameserver 114.114.114.114
nameserver 8.8.8.8
4.重启网络服务
# /etc/init.d/network restart
或者
# systemctl restart network.service
然后ping不通外部网络
问题及解决办法
发现的现象
1).使用命令ifconfig ifcfg-ens33查看
ifcfg-ens33:error fetching interface information: Device not found
2).ifcfg-ens33配置内容
重启网络后,BOOTPROTO=static 变成了 BOOTPROTO=none
3).ping网关 不通
4).ip addr
ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:ff:bd:0c brd ff:ff:ff:ff:ff:ff
inet 10.203.87.148/32 brd 10.203.87.148 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::d8c2:956:a6a8:4b57/64 scope link
valid_lft forever preferred_lft forever
解决过程
1.执行命令cat /proc/net/dev查看网口状况,发现是存在ens33的
2.查看arp缓冲区
执行命令arp -nv查看arp缓冲区条目
Address:主机的IP地址
Hwtype:主机的硬件类型
Hwaddress:主机的硬件地址
发现没有mac地址,arp表记录了ip地址与真实主机mac地址的对应关系,于是本机给网关发送的网络数据包实际上并没有发给真实的网关,这就是ping不通的原因了
3.删除arp 条目
将10.03.87.254的ARP缓存删除
# arp -d 10.203.87.254
4.添加arp 条目
在能上网的主机上找到网关的mac地址,添加一个arp条目
# arp -s 10.203.87.254 00:1a:a9:15:4e:bd
# apr -f //刷新
flags mask 的值是C代表这个绑定是保存在缓冲里的
flags mask 的值是CM表示静态网关,可以防止ARP欺骗
打开或建立/etc/ethers,添加内容:
10.203.87.254 00:1a:a9:15:4e:bd
这样就可以实现静态网关了
如果不和局域网通信,可以把arp解析关掉
# ifconfig ens33 -arp
然后发现当我ping一次网关,网关的mac地址就又没了,看来这也不是问题所在,最后在VMware上解决了问题
5.解决方法
1).在VMare上打开编辑->虚拟网络编辑器->更改设置,将桥接模式的”桥接到:自动”改成指定网卡
应用,确定
2).回到CentOS7里,编辑”/etc/sysconfig/network-scripts/ifcfg-ens33”,将BOOTPROTO的”none”改成”static”
3).重启网络
# systemctl restart network.service
到此解决了网络不通的问题
6.配置ssh
1).安装ssh
# yum -y install ssh
2).启动ssh服务
# systemctl start sshd
# systemctl enable sshd
3).使用Xshell连接,连接成功