背景
在本地部署linux环境,用于开发测试相关工作,选择使用vmware虚拟机安装CentOS7操作系统镜像。安装完成后就需要打通宿主机和虚拟机的网络,使它们能够互相访问。
本篇主要用于记录虚拟机网络配置的步骤与相关问题的解决方法。
具体步骤
配置虚拟机静态IP
1、虚拟机虚拟网卡选择vmware8

2、查看vmware8虚拟网卡网段和网关IP


3、修改ifconfig-ens33配置
# 切换到网络配置地址
cd /etc/sysconfig/network-scripts/
# 编辑配置文件
vi ifcfg-ens33
# 编辑模式
i
按如下参考修改,中文提示不要保留:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
# 改成静态模式,dhcp是每次启动获取动态ip
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=78d10694-2a5e-4d84-86ec-82166c15ab1e
DEVICE=ens33
ONBOOT=yes
# 按照前面查看的网段自选地址
IPADDR=192.168.5.31
# 固定掩码
NETMASK=255.255.255.0
# 域名服务器,按默认即可
DNS1=114.114.114.114
DNS2=8.8.8.8
# 按前面查看的网关IP
GATEWAY=192.168.5.2
# 退出编辑
按 ESC
# 保存并退出
:wq
# 重启network服务
service network restart
正常到这里静态IP就配置好了,可以从宿主机进行连接测试了。
才怪!!
network重启报错
修改完配置想重启network服务可能发现会报错,无法成功。
原因:一般是因为服务器还启动了NetworkManager服务,它和network都是网络管理器,当它们同时启用时却会导致冲突。
解决:禁用NetworkManager服务
# 关闭服务
systemctl stop NetworkManager
# 禁用服务
systemctl disable NetworkManager
再尝试重启network就能成功了!
network重启成功但配置没生效
好不容易network重启成功了,你可能会发现怎么还是没生效,设置的静态IP仍然连接不了?
排查方法:通过重启网卡查看具体报错
# 关闭网卡
ifdown ens33
# 启动网卡
ifup ens33
报错举例:

这里报错是说子网掩码配置错误,应该是255.255.255.0,而我写成了225,真是粗心呀!修改后重启就正常了!
配置生效了但ping不通

# 查看网卡ip
ip addr
明明网卡生效了,为什么宿主机无法ping通呢?
原因:被防火墙拦住了
解决:关闭防火墙。生产环境建议用iptables做白名单限制。
# 关闭防火墙
systemctl stop firewalld
# 禁用防火墙
systemctl disable firewalld
ping的通,但无法进行远程连接
防火墙关掉后,ip能够ping的通了,但使用连接工具却无法连接,使用telnet测试发现,用于ssh远程连接的22端口竟然无法访问?
原因:selinux的安全策略太严格了
解决:降低安全策略等级或者关闭安全策略。因为是虚拟机可以直接关闭,生产环境不建议。
# 查看安全策略状态
getenforce
● Enforcing模式:在这种模式下,SELinux会严格遵守安全策略,如果违反策略则阻止操作。
● Permissive模式:在这种模式下,SELinux同样会检查安全策略,但即使违反策略也不会阻止操作,只是记录下来。
● Disabled模式:在这种模式下,SELinux完全不启用,不会对系统进行任何安全策略的检查或控制。
# 临时关闭
sudo setenforce 0
# 永久关闭
sudo vi /etc/selinux/config
# 修改配置
SELINUX=disabled
# 保存并退出
:wq
# 重启系统
reboot
到这里,终于能够顺利连上虚拟机了!可喜可贺!!!