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)
酷番叔酷番叔
上一篇 2025年8月31日 18:09
下一篇 2025年8月31日 18:40

相关推荐

  • Linux如何快速进入MySQL?

    前提条件安装MySQL服务若未安装MySQL,先执行以下命令:Ubuntu/Debian: sudo apt updatesudo apt install mysql-serverCentOS/RHEL: sudo yum install mysql-serversudo systemctl start mys……

    2025年6月27日
    17100
  • linux如何删除变量

    在Linux系统中,变量是存储数据值(如字符串、数字等)的容器,用于简化命令操作、配置环境参数等,根据作用范围和使用场景,Linux变量可分为局部变量、环境变量、只读变量和数组变量等类型,当变量不再需要时,及时删除可以避免内存占用、防止变量污染或配置冲突,本文将详细介绍Linux中不同类型变量的删除方法、注意事……

    2025年9月17日
    14300
  • Windows如何实现远程连接Linux?详细步骤与工具有哪些方法?

    在Windows系统中远程连接Linux服务器或主机是日常开发和运维中的常见需求,无论是管理服务器、调试代码还是传输文件,掌握正确的远程方法都能大幅提升工作效率,本文将详细介绍Windows远程Linux的几种主流方式,包括SSH(命令行)、VNC(图形界面)和RDP(远程桌面协议),涵盖环境准备、具体操作步骤……

    2025年9月28日
    13500
  • Linux如何正确删除已设置的环境变量?

    在Linux系统中,环境变量是用于存储系统配置和用户自定义信息的动态值,它们会影响Shell进程及其子进程的行为,有时,由于配置错误、临时测试需求或清理冗余信息,需要去掉某个环境变量,本文将详细介绍Linux中去掉环境变量的多种方法,包括临时移除和永久移除,并针对不同Shell和场景提供具体操作步骤,使用uns……

    2025年10月3日
    13300
  • Linux操作系统如何查看当前网络配置的详细内容信息?

    在Linux系统中,查看网络设置是日常运维和故障排查的基础操作,无论是确认IP地址、检查路由表,还是验证DNS配置,掌握多种查看方法都能高效解决问题,以下从命令行工具、配置文件、图形界面等多个维度,详细介绍Linux网络设置的查看方式,使用命令行工具查看网络信息命令行是Linux管理中最常用的方式,通过丰富的命……

    2025年9月9日
    38100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信