要在 NAT 模式下为您的虚拟机(在 macOS 上)设置 静态 IP,您需要同时配置虚拟机软件的 NAT 网络设置和虚拟机内(CentOS)的网络设置。以下是详细的步骤:


步骤 1:确认您的虚拟机软件

首先,确定您正在使用的虚拟机软件是 VMware Fusion 还是 VirtualBox。我将针对这两种软件分别提供指导。


对于 VMware Fusion

步骤 2:配置 VMware Fusion 的 NAT 网络

注意: VMware Fusion 默认不提供图形界面来配置 NAT 网络,需要手动编辑配置文件。

2.1 关闭 VMware Fusion

确保 VMware Fusion 及其所有虚拟机均已关闭。

2.2 打开终端并进入配置目录

cd /Library/Preferences/VMware\ Fusion/

2.3 编辑 networking 配置文件

sudo nano networking
  • 输入您的管理员密码。

  • 查找以下内容:

answer VNET_8_DHCP yes
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_8_HOSTONLY_SUBNET 172.16.8.0
answer VNET_8_NAT yes
  • VNET_8_HOSTONLY_SUBNET 修改为您想要的子网,例如 192.168.50.0

answer VNET_8_HOSTONLY_SUBNET 192.168.50.0
  • 保存并退出(按 Ctrl + O,然后按 Enter,再按 Ctrl + X)。

2.4 编辑 NAT 配置文件

sudo nano vmnet8/nat.conf
  • 找到 [host] 部分,设置 NAT 网关 IP 地址:

[host]

# NAT gateway address
ip = 192.168.50.1
  • 确保该 IP 地址与您在前一步中设置的子网匹配。

2.5 编辑 DHCP 配置文件

sudo nano vmnet8/dhcpd.conf
  • 修改 DHCP 配置,使其不分配您想要的静态 IP:

subnet 192.168.50.0 netmask 255.255.255.0 {
    range 192.168.50.128 192.168.50.254;
    option broadcast-address 192.168.50.255;
    option domain-name-servers 8.8.8.8;
    option domain-name "localdomain";
    default-lease-time 1800;
    max-lease-time 7200;
}
  • 可选:如果您希望根据虚拟机的 MAC 地址为其分配固定 IP,可以添加:


subnet 192.168.88.0 netmask 255.255.255.0 {
        range 192.168.88.128 192.168.88.254;
        option broadcast-address 192.168.88.255;
        option domain-name-servers 192.168.88.2;
        option domain-name localdomain;
        default-lease-time 1800;                # default is 30 minutes
        max-lease-time 7200;                    # default is 2 hours
        option netbios-name-servers 192.168.88.2;
        option routers 192.168.88.2;
}
host vmnet8 {
        hardware ethernet 00:50:56:C0:00:08;
        fixed-address 192.168.88.1;
        option domain-name-servers 0.0.0.0;
        option domain-name "";
        option routers 0.0.0.0;
}
####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######

## 以下为自定义
host akun {
        hardware ethernet 00:50:56:2E:9E:E6;
        fixed-address 192.168.88.88;
}
  • 00:0C:29:XX:XX:XX 替换为您的虚拟机的 MAC 地址(可在虚拟机设置中找到)。

2.6 重启 VMware 网络服务

sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start

步骤 3:在 CentOS 中配置网络

3.1 确定网络接口名称

ip addr
  • 找到您的网络接口名称(例如 eth0ens33)。

3.2 编辑网络配置文件

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
  • 将内容修改为:

TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.50.88
NETMASK=255.255.255.0
GATEWAY=192.168.50.1
DNS1=8.8.8.8
DNS2=8.8.4.4

注意:

  • IPADDR:设置为您想要的静态 IP(例如 192.168.50.88)。

  • GATEWAY:应与 NAT 网关 IP 一致(192.168.50.1)。

3.3 保存并退出

  • vi 中,按 Esc,输入 :wq,然后按 Enter

3.4 重启网络服务

sudo systemctl restart network

步骤 4:测试网络连接

4.1 检查 IP 地址

ip addr show ens33
  • 确认网络接口已分配到静态 IP。

4.2 测试与网关的连通性

ping -c 4 192.168.50.1

4.3 测试外网连接

ping -c 4 www.baidu.com

对于 VirtualBox

步骤 2:创建并配置 NAT 网络

2.1 创建 NAT 网络

VBoxManage natnetwork add --netname natnet1 --network "192.168.50.0/24" --enable

2.2 禁用 DHCP(如需手动指定 IP)

VBoxManage natnetwork modify --netname natnet1 --dhcp off

2.3 将虚拟机连接到 NAT 网络

  • 打开 VirtualBox,选择您的虚拟机,进入 设置

  • 网络 选项卡下,选择:

    • 连接方式:NAT 网络

    • 名称:natnet1


步骤 3:在 CentOS 中配置网络

按照 VMware Fusion 的步骤 3 进行配置。


注意事项

  • IP 地址冲突:确保您设置的子网不会与主机或其他网络发生冲突。

  • 权限:修改配置文件和重启服务需要管理员权限。

  • 防火墙:检查主机和虚拟机的防火墙设置,确保没有阻碍网络通信。

  • 备份:在修改任何配置文件之前,建议备份原始文件。


总结

通过以上步骤,您可以在 NAT 模式下为虚拟机设置静态 IP 地址。这使得虚拟机既能享受 NAT 模式的便利,又能拥有固定的 IP,方便网络通信和服务配置。

如果您在操作过程中遇到问题,或者需要进一步的帮助,请告诉我您使用的虚拟机软件及其版本,我会为您提供更详细的指导。