Linux虚拟机如何设置IP地址?静态IP配置方法步骤

Linux虚拟机IP设置是搭建开发、测试环境的基础操作,正确的IP配置确保虚拟机能与宿主机、外部网络或其他虚拟机稳定通信,影响远程访问、服务部署、文件共享等场景,本文将详细讲解Linux虚拟机IP设置的全流程,涵盖网络模式选择、静态/动态IP配置、多发行版适配及问题排查。

linux虚拟机如何设置ip

虚拟机网络模式简介

在配置IP前,需先理解虚拟机的网络模式,不同模式决定IP获取方式和通信范围,主流虚拟机软件(如VMware、VirtualBox)通常提供三种网络模式,其特点对比如下:

模式 特点 IP获取方式 适用场景
NAT模式 虚拟机通过宿主机NAT服务访问外部网络,与宿主机不在同一网段,外部无法直接访问虚拟机 VMware DHCP分配(默认) 隔离环境,无需外部访问,适合日常开发
桥接模式 虚拟机直接连接物理网络,与宿主机处于同一网段,外部网络可像访问宿主机一样访问虚拟机 物理网络DHCP或手动静态配置 需要对外提供服务(如Web服务器、数据库)
仅主机模式 虚拟机与宿主机互访,无法访问外部网络,形成独立私有网络 VMware DHCP或手动静态配置 安全测试,内部通信,无需联网的场景

虚拟机软件中网络模式配置

IP设置前,需在虚拟机软件中确认网络模式,以VMware为例(VirtualBox操作类似):

  1. 关闭虚拟机电源,右键点击虚拟机→“设置”→“硬件”→“网络适配器”。
  2. 在“网络连接”区域选择对应模式(如NAT模式/桥接模式/仅主机模式)。
  3. 若选择“仅主机模式”,需确保“虚拟网络编辑器”中该模式的DHCP服务已开启(编辑→虚拟网络编辑器→仅主机模式→勾选“使用本地DHCP服务将IP地址分配给虚拟机”)。
  4. 点击“确定”后重启虚拟机或Linux系统网络服务。

Linux系统内IP设置方法

(一)查看当前网络配置

配置IP前,需确认虚拟机网卡名称及当前状态,使用以下命令:

  • 推荐命令ip addr show(显示网卡详细信息,包括IP、MAC地址、状态)
    示例输出:

    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000  
        link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff  
        inet 192.168.109.128/24 brd 192.168.109.255 scope global dynamic ens33  
           valid_lft 3600sec preferred_lft 3600sec  
        inet6 fe80::xx:xx:xx:xx:xx/64 scope link  
           valid_lft forever preferred_lft forever  

    其中ens33为网卡名称,168.109.128为当前动态IP(dynamic表示DHCP获取)。

  • 兼容命令ifconfig(需安装net-tools包,CentOS下yum install net-tools,Ubuntu下apt install net-tools

(二)动态IP(DHCP)设置

默认情况下,NAT模式和桥接模式(物理网络有DHCP服务器)会自动获取IP,无需手动配置,若需重新获取IP:

  • CentOS/RHELsystemctl restart network
  • Ubuntu/Debiansystemctl restart networkingnetplan apply(新版netplan)

仅主机模式需确保虚拟机软件DHCP服务已开启,否则需手动配置静态IP。

(三)静态IP设置

静态IP适用于需要固定IP地址的场景(如服务器部署),不同Linux发行版配置方式不同:

linux虚拟机如何设置ip

CentOS/RHEL系列(以CentOS 7为例)

配置文件路径:/etc/sysconfig/network-scripts/ifcfg-网卡名(如ifcfg-ens33)。

操作步骤
(1)备份原配置文件:

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak

(2)编辑配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

(3)修改/添加以下参数(根据网络模式调整网关和DNS):

TYPE=Ethernet                # 网络类型
PROXY_METHOD=none            # 代理方式
BROWSER_ONLY=no              # 仅浏览器
BOOTPROTO=static             # 静态IP(默认为dhcp)
DEFROUTE=yes                 # 默认路由
IPV4_FAILURE_FATAL=no        # IPv4错误不致命
NAME=ens33                   # 网卡名称
DEVICE=ens33                 # 网卡设备名
ONBOOT=yes                   # 开机启动网络
# 以下为静态IP配置(NAT模式示例)
IPADDR=192.168.109.130       # 静态IP(需与NAT网段不冲突,如192.168.x.2-254)
NETMASK=255.255.255.0        # 子网掩码(NAT模式默认)
GATEWAY=192.168.109.2        # 网关(NAT模式默认网关,可通过VMware“编辑→虚拟网络编辑器”查看)
DNS1=8.8.8.8                 # DNS服务器
DNS2=114.114.114.114        # 备用DNS

(4)保存文件(wq),重启网络服务:

systemctl restart network

Ubuntu/Debian系列(以Ubuntu 20.04为例)

新版Ubuntu(18.04+)使用netplan工具,配置文件位于/etc/netplan/下(如50-cloud-init.yaml)。

操作步骤
(1)备份原配置文件:

cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak

(2)编辑配置文件:

vi /etc/netplan/50-cloud-init.yaml

(3)修改为静态IP配置(YAML格式,注意缩进):

linux虚拟机如何设置ip

network:
  version: 2
  ethernets:
    ens33:                    # 网卡名称(通过`ip addr`确认)
      dhcp4: no               # 关闭DHCP
      addresses: [192.168.109.131/24]  # 静态IP/子网掩码长度(如24表示255.255.255.0)
      gateway4: 192.168.109.2 # 网关(NAT模式默认)
      nameservers:            # DNS配置
        addresses: [8.8.8.8, 114.114.114.114]

(4)应用配置:

netplan apply

旧版Ubuntu(16.04及以下)使用/etc/network/interfaces文件,编辑添加:

auto ens33
iface ens33 inet static
    address 192.168.109.131
    netmask 255.255.255.0
    gateway 192.168.109.2
    dns-nameservers 8.8.8.8 114.114.114.114

保存后执行systemctl restart networking

(四)图形化界面设置(适合新手)

  • CentOS:执行nmtui命令,进入“文本用户界面”→“编辑连接”→选择网卡→“自动配置”改为“手动”→输入IP、网关、DNS→“确定”→“激活”连接。
  • Ubuntu:点击桌面右上角网络图标→选择“有线已连接”→“齿轮”图标→IPv4→“手动”→输入IP、子网掩码、网关、DNS→“应用”。

网络验证与问题排查

设置完成后,需验证网络连通性:

  1. 测试本地网络ping 192.168.109.2(网关地址),若通,说明与网关通信正常。
  2. 测试外网连通性ping 8.8.8.8,若不通,检查:
    • 防火墙状态:systemctl stop firewalld(临时关闭)或添加允许规则。
    • SELinux状态:setenforce 0(临时关闭,getenforce查看状态)。
    • 虚拟机软件网络模式:确认NAT模式网关正确,桥接模式与宿主机同网段。
  3. 查看网络日志
    • CentOS:journalctl -u network
    • Ubuntu:journalctl -u networking

常见问题总结

  1. IP冲突:静态IP与网络中其他设备冲突,通过arp -a查看同网段IP,修改静态IP。
  2. 无法获取IP:DHCP模式下若无法获取IP,检查虚拟机软件DHCP服务是否开启(NAT模式需在“虚拟网络编辑器”中启用)。
  3. 网卡未识别:执行dmesg | grep eth查看内核日志,确认驱动是否正常。

FAQs

问:设置静态IP后,虚拟机无法上网,如何排查?
答:首先检查网关和DNS配置是否正确(cat /etc/resolv.conf查看DNS,route -n查看网关);然后关闭防火墙(systemctl stop firewalld)和SELinux(setenforce 0)临时测试;若仍不通,确认虚拟机软件网络模式(NAT模式网关应为192.168.x.2,桥接模式需与宿主机同网段)。

问:如何查看Linux虚拟机的当前IP地址?
答:使用命令行工具:ip addr showip a(推荐,显示详细信息);ifconfig(需安装net-tools),图形化界面:CentOS通过nmtui查看,Ubuntu点击桌面右上角网络图标查看IP详情。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/21001.html

(0)
酷番叔酷番叔
上一篇 4小时前
下一篇 4小时前

相关推荐

  • Linux文件过滤怎样最高效?

    核心过滤工具及用法grep:文本搜索利器基础语法:grep [选项] “模式” 文件名高频场景:# 搜索包含"error"的行(区分大小写)grep "error" /var/log/syslog# 忽略大小写搜索grep -i "warning" a……

    2025年7月30日
    1500
  • 如何让bash脚本运行快10倍?

    在Linux系统中,实现类似Windows批处理中echo off的效果(即隐藏命令回显)主要通过Shell脚本的调试控制功能实现,以下是详细方法:核心命令:set +x 与 set -xLinux的Shell脚本通过set命令控制调试模式:关闭命令回显(静默模式)在脚本开头添加:#!/bin/bashset……

    2025年7月28日
    1400
  • 如何添加旧版JDK 7仓库?

    在Linux系统中在线安装JDK 1.7需根据发行版选择合适方法,以下是详细步骤(以Ubuntu/CentOS为例),强烈建议优先考虑安全风险:JDK 1.7已于2015年停止官方支持,存在已知漏洞,仅建议用于兼容旧项目,生产环境应升级至LTS版本(如JDK 11/17),安装前准备系统更新# Ubuntu/D……

    2025年6月22日
    3100
  • linux 编辑如何保存退出命令

    Linux 中,使用 vi 编辑器保存并退出的命令是 :wq

    2025年8月15日
    800
  • linux 如何设置挂载点

    Linux中,使用mount命令设置挂载点,mount /dev/s

    2025年8月18日
    700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信