掘金 后端 ( ) • 2024-04-22 11:15

为了尝试配置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端口。

但但是!当我再次连接的时候,还是失败了。

于是通过百度,发现了可能是网络适配器的问题。

检查网络适配器

image.png

因为虚拟机是通过nat连接网络,对应的VMnet8是处于关闭状态的,于是连忙启动,然后再次连接,但是连接上了吗?并没有。通过检索知道,主机想要连接到虚拟机,需要保证同处一个局域网下,于是我又开始检查起了IP地址。

然后发现这个适配器的IP地址与虚拟机linux系统配置的静态IP地址并不处于同一个局域网下,也就是前3段不同,于是修改适配器的地址,从动态分配改为静态IP。

image.png

双击选中项

image.png

把IP地址写定,前三段与虚拟机配置一致,保存退出,然后重启适配器。

再次连接虚拟机下的linux系统。大功告成。