温馨提示×

CentOS上VirtualBox虚拟机如何设置静态IP

小樊
47
2025-11-15 18:04:46
栏目: 云计算

目标与网络方案选择

  • 在 VirtualBox 中为 CentOS 设置静态 IP,常用做法是为虚拟机配置两块网卡:
    • 网卡1:NAT(用于上网,DHCP 即可)。
    • 网卡2:Host-Only(用于与宿主机互通和固定地址,手动配置静态 IP)。
  • 仅使用 Host-Only 可实现与宿主机互通,但默认无法访问外网;仅使用 NAT 可上网但宿主机默认无法直接访问虚拟机;桥接 会让虚拟机加入宿主机所在局域网,需与宿主机同网段并自行管理 IP 冲突与路由。以上模式差异与取舍见文末说明。

步骤一 创建 Host-Only 网络并配置虚拟机网卡

  • 关闭虚拟机,打开 VirtualBox:管理 → 主机网络管理器 → 创建,新建一个 Host-Only 网络。
    • 常见默认网段为 192.168.56.0/24,宿主机虚拟网卡地址为 192.168.56.1;可按需修改。
  • 选中虚拟机 → 设置 → 网络:
    • 网卡1:连接方式选 NAT(用于上网)。
    • 网卡2:连接方式选 仅主机(Host-Only),并选择刚创建的网络。
    • 两张网卡均勾选“接入网线”。

步骤二 在 CentOS 中配置静态 IP(以网卡2为例)

  • 启动进入系统,确认网卡名:
    • 执行:ip addrnmcli con show,常见名称如 enp0s3(NAT)、enp0s8(Host-Only)。
  • 编辑网卡配置文件(文件名以实际为准,如 ifcfg-enp0s8):
    • 路径:/etc/sysconfig/network-scripts/ifcfg-enp0s8
    • 示例内容(按需替换 IP 与网关):
      TYPE=Ethernet
      PROXY_METHOD=none
      BROWSER_ONLY=no
      BOOTPROTO=static
      DEFROUTE=yes
      IPV4_FAILURE_FATAL=no
      IPV6INIT=yes
      IPV6_AUTOCONF=yes
      IPV6_DEFROUTE=yes
      IPV6_FAILURE_FATAL=no
      IPV6_ADDR_GEN_MODE=stable-privacy
      NAME=enp0s8
      UUID=<your_uuid>         # 可用 nmcli con show 查看
      DEVICE=enp0s8
      ONBOOT=yes
      IPADDR=192.168.56.111
      PREFIX=24
      GATEWAY=192.168.56.1
      DNS1=192.168.56.1
      
    • 说明:
      • 若使用传统 ifcfg 字段,也可用 NETMASK=255.255.255.0 替代 PREFIX=24
      • UUIDHWADDRNAME 需与当前连接一致,可用 nmcli con show 获取。
  • 使配置生效:
    • 执行:systemctl restart NetworkManager(推荐)或 systemctl restart network(视系统启用的网络服务而定)。

步骤三 验证与常见问题

  • 验证:
    • 在虚拟机内:ip addr show enp0s8 查看静态 IP 是否生效。
    • 宿主机与虚拟机互 ping:ping 192.168.56.1(宿主机 Host-Only 网卡)与 ping <虚拟机静态IP>
    • 外网连通性:ping 8.8.8.8ping www.baidu.com(若未通,检查默认路由与 DNS)。
  • 常见问题与要点:
    • 仅 Host-Only 默认不通外网;需要上网时保留 NAT 网卡。
    • 若使用 桥接 模式,虚拟机与宿主机必须在同一网段,并自行处理网关、DNS 与 IP 冲突。
    • 网卡名可能不是 eth0,请以 ip addr 输出为准。
    • 若使用传统网络脚本且 NetworkManager 在管理,需确保 NM_CONTROLLED=yes 或改用 nmcli 配置连接。
    • 双网卡时,确保只有一块网卡设置默认网关(通常给 NAT),避免路由冲突。

0