我一直不明白静态ip在VMware虚拟机中有什么用,因为VMware下的DHCP服务分配的的ip地址真的很少变动过,直到有一天我的电脑突然休眠后,开机发现我的一台虚拟机一直SSH连不上,我起初以为是防火墙的问题,因为有时候电脑异常关机或者休眠之后,再打开之后,虚拟机中的Linux防火墙有时会自己开启(我平时都没开过),但是这次我开放22端口,关闭防火墙之后依然不能SSH远程登录,虚拟机中的一些Web服务也连不上。
这就很奇怪,我一直是以为是防火墙的问题,甚至以为没关彻底(好蠢),但是依旧是不行。我习惯性的查看了一下本机ip,甚至我在VMware下查看ip都有点麻烦,因为我的Linux中有多个网卡,最上面那个ens33网卡的ip根本看不到,因为Vmware中那个纯命令行界面不能翻页,就像这样:
我又用了ifconfig ens33
这个命令来查看这块网卡的ip信息,有点惊讶的发现ip地址居然变了,变成了192.168.154.137,之前一直是136,这就很奇怪,我还是第一次遇到这种情况,之前从来没变过的。
于是我就想着把ip设为静态ip,防止下次再变
打开终端。
使用文本编辑器(如
vim
或nano
)打开网络接口的配置文件。例如,如果你的网络接口的名称是eth0
,你可以使用以下命令:
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
- 在配置文件中,找到以下行,然后修改它们的值:
BOOTPROTO=static
ONBOOT=yes
IPADDR=your_static_ip
NETMASK=your_netmask
GATEWAY=your_gateway
在这些行中,your_static_ip
、your_netmask
和 your_gateway
是你的静态 IP 地址、子网掩码和默认网关。你应该使用你的网络环境的实际值替换它们。
注意如果原来的配置文件=右边带””,新配置也要带,统一格式就行
子网掩码一般设为255.255.255.0,默认网关在虚拟网络编辑器中查看:
这里为192.168.154.2
,注意你设置的静态ip要和网关在同一网段。
保存并关闭配置文件。
重启网络服务,使更改生效:
sudo systemctl restart network
这时候应该没问题了,连接没问题,但是ping www.baidu.com ping不通,可能是DNS的问题,添加Google的公共DNS,一般设置这个:
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
或者在刚才的ifcfg-eth0
配置文件中加一个DNS = 8.8.8.8
,都可以这两种方式。
重启网络sudo systemctl restart network
,已经能ping通baidu。