为了尝试配置nginx,于是在本地的虚拟机下安装了centos来进行一些试验。但安装好后,过程并不顺利。于是记录下来,方便往日回顾问题。
输入ip addr 指令,并没有显示ip地址
通过查询,这是因为网卡未启动的原因。
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33
进入到network文件夹,然后对ens33进行配置。
ONBOOT=YES
systemctl restart network
配置好退出,并重启网络
这时候,输入 ip addr
可以发现已经可以获取到ip地址
inet 192.168.xxx.xxx
通过 ping
指令也能测试网络是否正常。但还没有结束,因为这个IP地址是动态分配的,还需要回到ens33的配置文件,把ip设置为静态,这样才能稳定通过IP来连接。
把BOOTPROTO=dhcp
设置为BOOTPROTO=static
,然后添加IPADDR=192.168.xxx.xxx
,这里的IP地址,可以通过虚拟机的虚拟网络编辑器 NAT模式下的网关知道。例如我的是192.168.231.2
,那我这里的就是IPADDR=192.168.231.3
。
然后添加子网掩码PREFIX=24
,相当于NETMASK=255.255.255.0
。
配置网关的IP地址 GATEWAY=192.168.231.2
。
然后指定一个DNS服务器,DNS1=114.114.114.114
,这个是由国内公共DNS服务提供商CNNIC运营的。
保存退出,再次重启网络服务,可以发现IP地址已经变成配置好的静态地址。通过PING
指令测试网络也没有问题。
正当以为一切顺利的时候,用xShell进行连接,发现连接不上。
检查是否没安装ssh服务
因为xShell是通过ssh连接,所以我先检测了虚拟机是否没有安装ssh服务,可以通过ssh -V
指令来查看
如果没有则安装
yum install openssh-server
systemctl start sshd
systemctl enable sshd
systemctl status sshd
通过指令可以知道ssh已经处于运行状态。
于是我再次使用xShell进行连接,但发现还是不行。
检查防火墙是否没有放行 22 端口
因为ssh默认通过22端口连接,于是查看是否防火墙问题。
先通过systemctl status firewalld
命令查看防火墙运行状态,如果运行,则firewall-cmd --list-all
查看是否已经放行22端口。(firewall-cmd --zone=public --list-ports
也可以)
如果没有,则添加22端口。
firewall-cmd --zone=public --add-port=22/tcp --permanent
然后重启防火墙firewall-cmd --reload
。
这时候再通过firewall-cmd --zone=public --list-ports
可以看到,已经有22端口。
但但是!当我再次连接的时候,还是失败了。
于是通过百度,发现了可能是网络适配器的问题。
检查网络适配器

因为虚拟机是通过nat连接网络,对应的VMnet8是处于关闭状态的,于是连忙启动,然后再次连接,但是连接上了吗?并没有。通过检索知道,主机想要连接到虚拟机,需要保证同处一个局域网下,于是我又开始检查起了IP地址。
然后发现这个适配器的IP地址与虚拟机linux系统配置的静态IP地址并不处于同一个局域网下,也就是前3段不同,于是修改适配器的地址,从动态分配改为静态IP。

双击选中项

把IP地址写定,前三段与虚拟机配置一致,保存退出,然后重启适配器。
再次连接虚拟机下的linux系统。大功告成。