温馨提示×

VirtualBox里Linux虚拟机如何设置静态IP

小樊
44
2025-12-10 01:53:43
栏目: 云计算

VirtualBox中Linux虚拟机设置静态IP的实用做法


一、方案总览与选择

  • 常见做法是为虚拟机配置两张网卡:
    • 网卡1使用NAT桥接,负责访问外网。
    • 网卡2使用仅主机(Host-Only),用于在宿主机与虚拟机之间保持固定、可预测的私有网段通信。
  • 这样既能让虚拟机访问互联网,又能让宿主机与虚拟机之间用固定IP直连,便于SSH、开发调试等场景。桥接模式会让虚拟机像局域网一台真实主机;NAT默认可上网但外部不可直达;仅主机仅与宿主机互通。

二、VirtualBox网络与网卡规划

  • 规划示例:
    • 网卡1(Adapter 1):NAT(上网)或桥接(并入物理局域网)。
    • 网卡2(Adapter 2):仅主机(Host-Only),用于固定私网IP。
  • 仅主机网段建议:使用VirtualBox的Host-Only Ethernet Adapter,默认网段常为192.168.56.0/24,网关通常为192.168.56.1。可在“管理 → 主机网络管理器”查看或调整该网段与DHCP设置。
  • 操作要点:在虚拟机设置 → 网络中启用两张网卡,分别选择上述模式;若使用桥接,需在下拉框中选择宿主机正在使用的具体物理网卡(如Wi‑Fi或以太网)。

三、Linux内网静态IP配置示例

  • 目标:让“仅主机网卡”获得固定IP(示例网段192.168.56.0/24,网关192.168.56.1),外网由另一张网卡提供。

  • CentOS 7/RHEL 7(ifcfg 文件)

    1. 查看网卡名:ip addr(常见为enp0s3/enp0s8)。
    2. 编辑仅主机网卡配置(示例为enp0s8):
      /etc/sysconfig/network-scripts/ifcfg-enp0s8
      TYPE=Ethernet
      BOOTPROTO=static
      NAME=enp0s8
      DEVICE=enp0s8
      ONBOOT=yes
      IPADDR=192.168.56.101
      NETMASK=255.255.255.0
      GATEWAY=192.168.56.1
      DNS1=8.8.8.8
      DNS2=114.114.114.114
      
      说明:若希望外网走NAT网卡,请确保默认路由由NAT网卡获得,避免两张网卡同时下发默认网关导致冲突。
    3. 重启网络:systemctl restart network
    4. 验证:ip addr、ping 192.168.56.1、ping 8.8.8.8、cat /etc/resolv.conf。
  • Ubuntu 18.04/20.04(Netplan,/etc/netplan/*.yaml)

    1. 查看网卡名:ip addr(常见为ens33/enp0s8)。
    2. 编辑Netplan配置(示例为01-netcfg.yaml,注意缩进):
      network:
        version: 2
        renderer: networkd
        ethernets:
          enp0s3:            # NAT或桥接网卡,保持DHCP或按需设置
            dhcp4: yes
          enp0s8:            # 仅主机网卡,固定IP
            addresses: [192.168.56.101/24]
            gateway4: 192.168.56.1
            nameservers:
              addresses: [8.8.8.8, 114.114.114.114]
      
    3. 应用:sudo netplan apply
    4. 验证:ip addr、ping 192.168.56.1、ping 8.8.8.8、nslookup www.example.com。
  • Ubuntu 16.04/Debian 9(/etc/network/interfaces)

    1. 编辑:/etc/network/interfaces
      auto lo
      iface lo inet loopback
      
      auto enp0s3
      iface enp0s3 inet dhcp   # NAT/桥接网卡
      
      auto enp0s8
      iface enp0s8 inet static
        address 192.168.56.101
        netmask 255.255.255.0
        gateway 192.168.56.1
        dns-nameservers 8.8.8.8 114.114.114.114
      
    2. 使配置生效:systemctl restart networking 或重启系统
    3. 验证同上。

四、验证与常见问题处理

  • 连通性验证
    • 私网:ping 宿主机(如192.168.56.1)、ping 虚拟机自身静态IP。
    • 外网:ping 8.8.8.8,nslookup/dig 测试域名解析。
    • 路由检查:ip route(确认默认路由走NAT/桥接网卡,仅主机网卡不应设置默认网关)。
  • 仅主机与宿主机互通
    • 宿主机应能直接访问192.168.56.101(SSH、SCP等)。
  • 若必须单网卡且用NAT又要固定IP
    • 可在VirtualBox中对NAT网络配置端口转发(如将宿主机的2222转发到虚拟机的22),实现外部访问;但虚拟机对局域网的可见性仍受限。
  • 防火墙与安全组
    • 临时关闭防火墙测试(如 systemctl stop firewalld),确认非策略问题后再按需放行(如放行SSH端口)。
  • 克隆或复制后
    • 修改网卡配置中的IPADDR,并重新生成网卡UUID(如 uuidgen),避免冲突。

0