Linux虚拟机固定IP超详细教程
Linux 虚拟机固定 IP 地址详细教程(超详细小白版)
在使用 Linux 虚拟机时,你可能会遇到这样一个问题:
每次重启虚拟机,IP 地址都会变!导致远程连接的时候,你还要重新去查 IP 地址,非常麻烦。本文将手把手教你如何固定虚拟机的 IP 地址,让它永远不变。
为什么 IP 会变?
默认情况下,Linux 虚拟机的 IP 地址是通过 DHCP(动态主机配置协议) 自动分配的。
DHCP 就像一个小区物业,每次你开机就去物业那边领一个临时车位号。
- 如果车位号(IP 地址)是临时的,下次来可能会换。
- 所以我们每次重启,就可能得到一个不同的 IP。
但是我们需要远程连接虚拟机(例如用 Xshell、VSCode、SSH 登录),这时就希望IP 地址固定下来,不然每次都得改,非常麻烦。
固定 IP 的思路
要让 IP 地址固定,核心就是手动配置网络:
- 告诉虚拟机不要再去 DHCP 那里随便领号了。
- 直接在虚拟机里写死一个 IP 地址。
换句话说,就是我们自己规定“我的虚拟机就是用这个 IP,不许改”。
查看当前网络信息
在配置之前,我们需要知道当前网络的基本信息(子网掩码、网关、DNS)。
-
打开终端,输入:
ip addr
或者:
ifconfig
你会看到类似这样的输出:
ens33: <BROADCAST,MULTICAST,UP,LOWER_UP>inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
ens33
:网卡名称(不同虚拟机可能不同,比如eth0
、ens160
)inet 192.168.1.100/24
:IP 地址是192.168.1.100
,掩码是/24
(即 255.255.255.0)brd 192.168.1.255
:广播地址scope global dynamic
:说明这是动态分配的
-
查看网关:
ip route
输出示例:
default via 192.168.1.1 dev ens33
- 网关是
192.168.1.1
- 网关是
-
查看 DNS:
cat /etc/resolv.conf
示例:
nameserver 8.8.8.8 nameserver 114.114.114.114
- DNS 就是域名解析服务器,一般用
8.8.8.8
(Google)或者114.114.114.114
(国内)。
- DNS 就是域名解析服务器,一般用
修改配置文件
接下来就是核心操作:编辑网络配置文件。
这里有两种常见情况,取决于你用的 Linux 发行版。
方法一:基于 Netplan
的系统(Ubuntu 18.04+)
-
编辑配置文件:
sudo nano /etc/netplan/01-netcfg.yaml
-
修改内容,示例:
network:version: 2ethernets:ens33: # 网卡名称,前面查到的dhcp4: noaddresses:- 192.168.1.200/24 # 固定的 IPgateway4: 192.168.1.1 # 网关nameservers:addresses: [8.8.8.8, 114.114.114.114]
注意:YAML 文件缩进要对齐,空格非常严格!
-
应用配置:
sudo netplan apply
-
验证:
ip addr ping www.baidu.com
方法二:基于 ifcfg
文件的系统(CentOS、RHEL)
-
找到网卡配置文件:
cd /etc/sysconfig/network-scripts/ ls ifcfg-*
例如:
ifcfg-ens33
-
编辑:
sudo nano ifcfg-ens33
-
修改内容:
TYPE=Ethernet BOOTPROTO=static NAME=ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.1.200 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=114.114.114.114
-
重启网络:
sudo systemctl restart network
或者:
nmcli connection reload
-
验证:
ip addr ping www.baidu.com
虚拟机软件的设置(重点)
如果你用的是 VMware 或 VirtualBox,除了虚拟机内部配置,还需要检查网络模式。
- NAT 模式:虚拟机通过宿主机上网,IP 是
192.168.xxx.xxx
,适合上网用。 - 桥接模式:虚拟机和宿主机在同一个局域网,可以直接被其他电脑访问。
- 仅主机模式:虚拟机只能和宿主机通信,不能上网。
一般我们要远程 SSH 连接,推荐用 桥接模式,这样虚拟机就像家里的另一台电脑。
常见问题与解决办法
-
配置完后连不上网?
- 检查网关和 IP 是否在同一网段。
- 检查是否输错子网掩码。
-
配置文件报错?
- 如果用的是
netplan
,要小心 YAML 文件缩进。 - 如果用的是
ifcfg
,注意不要多余空格。
- 如果用的是
-
虚拟机能上网,但外部连不上?
-
检查虚拟机的防火墙:
sudo systemctl stop firewalld
-
检查虚拟机网络模式是不是 NAT。换成桥接。
-
总结
- Linux 默认用 DHCP 分配 IP,所以 IP 会变。
- 固定 IP 的方法:手动写入 IP、子网掩码、网关和 DNS。
- Ubuntu 用 Netplan,CentOS 用 ifcfg 文件。
- 配置时要注意虚拟机网络模式,推荐桥接。
- 常见问题一般是 网段不匹配 或 文件写错。
这样配置好之后,你的虚拟机 IP 就固定了,再也不用重启后到处找 IP 地址啦!🎉