千家信息网

VM虚拟机中的Ubuntu如何设置固定IP上网

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关VM虚拟机中的Ubuntu如何设置固定IP上网,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。但是如果你的机子有特殊用处,比
千家信息网最后更新 2026年11月01日VM虚拟机中的Ubuntu如何设置固定IP上网

这篇文章将为大家详细讲解有关VM虚拟机中的Ubuntu如何设置固定IP上网,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

但是如果你的机子有特殊用处,比如作为服务器,需要IP地址信息,亦或者像我一样,作为一个云计算的节点,其IP都是在配置文件里配置好的,如果每次重启系统都要跑过去修改下配置文件里的IP,那简直是不可取的做法,因此为虚拟机设置固定IP上网非常的有必要!
设置固定IP的方法很多,大家都知道虚拟机上网有三种模式:bridged、host-only和NAT,其中NAT模式对应VMnet8虚拟网络,host-only模式对应VMnet1虚拟网络,bridged模式对应 VMnet0虚拟网络,都是由VMware虚拟机自动配置而生成的,不需要用户自行设置。VMnet8和VMnet1提供DHCP服务,VMnet0虚拟 网络则不提供。
由于NAT的方式最简单,因此下面是NAT设置的具体方法。
测试环境:
虚拟机版本:VMware Workstation 10
Ubuntu版本:Ubuntu 12.10/13.04
1. 设置虚拟机上网方式为NAT

2. 配置VMnet8虚拟网络(Virtual Network Editor)
因为NAT对应的是VMnet8虚拟网络,打开Vmware自带的虚拟网络编辑工具Virtual Network Editor,配置如下:

其中子网IP根据自己情况设置,比如我想设置固定IP地址为192.168.1.151,那么这里的子网IP就填192.168.1.0,另外记得取消DHCP选项服务。


3. 进入到Ubuntu系统中配置网络
主要配置下面三个方面的内容:
(1)修改文件/etc/network/interfaces,这里是IP、网关、掩码等的一些配置;
(2)修改文件/etc/resolv.conf,这个文件保存DNS的有关信息;
(3)解决resolv.conf被重写问题;
(4)重启虚拟机网络

下面是具体配置方法:
(1)修改文件/etc/network/interfaces
命令:

代码如下:

sudo vi /etc/network/interfaces
或
sudo gedit /etc/network/interfaces


我的配置如下:

代码如下:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0

iface eth0 inet static
address 192.168.1.151
netmask 255.255.255.0
gateway 192.168.1.2


其中网关gateway要与Virtual Network Editor中"NAT Settings..."中的一致,一般好像都为192.168.xx.2。

(2)修改文件/etc/resolv.conf
命令:

代码如下:

sudo vi /etc/resolv.conf
或
sudo gedit /etc/resolv.conf[code]
我的配置如下:
[code]nameserver 202.38.64.1


当然这里是因人而异了,加上你自己的DNS服务器即可,我的是校内DNS。

(3)解决resolv.conf被重写问题
第二步中你虽然配置了DNS,但是每次重启虚拟机或重启网络后/etc/resolv.conf文件就会被重写,也就是又恢复原样了,你以前的配置就不存在了,每次都要手动配置是极不可取的,所以这步是必须的,首先我们要搞清楚resolv.conf被重写的原因和机制,这在不同Ubuntu版本下有所差异。那怎么知道呢?一般resolv.conf文件一开头就告诉你了。
解决该问题其实有两种办法,不怕麻烦的想理解原理的请参照方法一(与版本有关),怕麻烦的不想折腾的自觉转到方法二(与版本无关)。

方法一:与版本有关
a)Ubuntu 12.10
打开/etc/resolv.conf后可看到开头的一句话:

代码如下:

# Generated by NetworkManager


说明resolv.conf这个文件是由NetworkManager这个程序生成的(对应的是network-manager服务),那么解决办法也就来了:我们关掉network-manager即可,命令如下:

代码如下:

sudo service network-manager stop
或者
sudo /etc/init.d/network-manager stop


但是这种方法不是一劳永逸的,因为每次重启系统后还是会自动启动这个服务,因此我们需要完全禁止network-manager启动即可。
编辑network manager的配置文件/etc/init/network-manager.conf:

代码如下:

sudo vi /etc/init/network-manager.conf


注释掉其中的start on部分即可:

代码如下:

# network-manager - network connection manager
#
# The Network Manager daemon manages the system's network connections,
# automatically switching between the best available.

description "network connection manager"

#start on (local-filesystems
# and started dbus
# and static-network-up)
stop on stopping dbus

expect fork
respawn

script
# set $LANG so that messages appearing on the GUI will be translated. See LP: 875017
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE LC_MESSAGES LC_ALL
fi

b)Ubuntu 13.04
不知道Ubuntu从哪个版本开始不是由NetworkManager生成resolv.conf的了,至少在13.04下是这样的,因为resolv.conf开头写着这样一句话:

代码如下:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN


说是由resolvconf生成,NetworkManager仍然存在,因为它是DHCP上网不可缺少的,但此时禁止NetworkManager启动已经不管用了,因为resolv.conf已经不归它管了,我们试着看看resolv.conf与resolvconf有啥关系,查看:

代码如下:

hadoop@Master:~$ ll /etc/resolv.conf
lrwxrwxrwx 1 root root 29 9月 11 2013 /etc/resolv.conf -> ../run/resolvconf/resolv.conf


说明/etc/resolv.conf 其实只是一个link,它实际上指向的是 /run/resolvconf/resolv.conf,这也就解释了为什么每次重启都会被重写的原因,你改的只是个link,对原文件没有影响,而每次重启这个link还得加载原文件的内容,所以对link的修改无效。
解决方法就是:修改真实的原文件,如下:

代码如下:

sudo vi /etc/resolvconf/resolv.conf.d/head


发现这个文件与/etc/resolv.conf文件一模一样,这就对了,在里面加入你自己的nameserver即可,这样每次重启就不会被重写了。
PS:网上也有人说修改/etc/resolvconf/resolv.conf.d/base这个文件也行,我没有亲自测试,感兴趣的可用自己测试。

说了这么多,各版本的差异看来挺麻烦的,不知道最新的版本或以后的版本会不会又变样了,其实这里有个更简单的与版本无关的方式能够防止resolv.conf文件被重写,那就是方法二。
方法二:与版本无关
前面提到固定IP的上网方式主要是修改/etc/network/interfaces这个文件,配置IP、网关什么的,其实这里面还有个参数可以配置,那就是DNS了,对应的参数名为dns-nameservers,这里设置的优先级比resolv.conf高,也就是网络会从这里读取DNS配置,如果没配置才去看resolv.conf里面的设置,因此在这里面配置DNS更简单。

代码如下:

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0

iface eth0 inet static
address 192.168.1.151
netmask 255.255.255.0
gateway 192.168.1.2
dns-nameservers 202.38.64.1


(4)重启虚拟机网络
配置完成后,重启网络即可,也有好几种方法:

代码如下:

sudo service networking restart
或者
sudo /etc/init.d/networking restart


也可以重启网卡:

代码如下:

sudo ifconfig eth0 down
sudo ifconfig eth0 up


重启网卡对别的网卡无影响,更推荐一些。
赶紧ping下www.baidu.com吧,应该可以上网了。

关于VM虚拟机中的Ubuntu如何设置固定IP上网就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

配置 文件 代码 网络 版本 方法 服务 内容 方式 是由 模式 有关 生成 命令 就是 开头 系统 网关 网卡 问题 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 南京欣网互联网络科技有限公司 西安纸贵互联网科技有限公司 科技与互联网 金诺互联网科技 伴你行互联网科技有限公司 上海万想互联网科技 成都狮子座互联网科技 科技赋能互联网健康 中盈科技互联网信息有限公司 互联网科技和信息 互联网在线教育科技创业 互联网科技公司营业执照怎么办理 山东子淼互联网科技有限公司 广州百诚互联网科技有限公司官网 宁波跨境商互联网科技有限公司 互联网科技职业技能培训学校 三亚科技创新互联网基地 每日互联网科技新闻 山东亿川互联网科技有限责任公司 关于新基建和互联网科技 广州凡科互联网科技 西藏七维空间互联网科技有限公司 广州慧亚互联网科技怎么样 阿里互联网科技公司 中国互联网公司排名锤子科技 启辰互联网科技 宁波跨境商互联网科技有限公司 国产互联网科技公司 现代互联网科技公司
0