Appearance
Hyper-V 固定 IP
1. Hyper-V 设置固定 IP
设置完成后的效果:
- 虚拟机拥有双网卡,且第二张网卡 IP 地址固定不变;
- 虚拟机可以正常访问外网;
- 主机、虚拟机之间可以相互 PING 通;
2. Hyper-V 服务器设置
首先我们需要给 Hyper-V 服务器添加 NAT 虚拟交换机。
以管理员身份运行 PowerShell,再分别执行以下命令:
创建虚拟交换机:
PowerShellNew-VMSwitch -SwitchName "NAT" -SwitchType Internal获取虚拟交换机的 ifindex,并赋值到变量中:
PowerShell$ifindex = Get-NetAdapter -Name "vEthernet (NAT)" | Select-Object -ExpandProperty 'ifIndex'在虚拟交换机上设置固定 IP,用于网关 IP(IP 地址记得换成自己的):
PowerShellNew-NetIPAddress -IPAddress 10.0.0.254 -PrefixLength 24 -InterfaceIndex $ifindex创建 NAT 网络(IP 地址记得换成自己的):
PowerShellNew-NetNat -Name NAT -InternalIPInterfaceAddressPrefix 10.0.0.0/24
上述命令创建了一个名为 "NAT" 的虚拟交换机,它的 IP 地址为 10.0.0.254。并创建了一个 NAT 网络,网段是 10.0.0.0/24。


3. 配置虚拟机的网络
3.1. 为虚拟机添加新网卡
选择虚拟机 “设置” > “添加硬件” > “网络适配器”:

新网卡的虚拟交换机选择刚才新建的 “NAT”:

最终效果为:虚拟机一共有两块网卡,一块为默认的 Default Switch,一块为新加的 NAT:

接下来需要进入到虚拟机中进行操作:
3.2. CentOS 7
编辑
/etc/sysconfig/network-scripts/ifcfg-eth0:BOOTPROTO设置为dhcp;ONBOOT设置为yes;
参考配置:
INITYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp 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=eth0 UUID=feb6df71-589d-4c55-b6dd-76a7d1fd72ad DEVICE=eth0 ONBOOT=yes IPV6_PRIVACY=no1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16编辑
/etc/sysconfig/network-scripts/ifcfg-eth1:BOOTPROTO设置为none;ONBOOT设置为yes;
并添加
IPADDR、PREFIX配置,参考:INITYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none 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=eth1 UUID=04bd131c-a315-3e44-868c-4a10f9033f34 DEVICE=eth1 ONBOOT=yes IPV6_PRIVACY=no IPADDR=10.0.0.2 PREFIX=241
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Note:第二块网卡,也就是
eth1,刚才新添加的那块,不用设置GATEWAY、DNS1、PEERDNS,因为不用它访问外网,也访问不了外网。最后重启网络就可以了
service network restart;
3.3. Ubuntu Server 22
通常 Debian 系列 Linux 的网络配置文件在 /etc/network/interfaces 目录下。不过 Ubuntu 后续开始使用 Netplan 来配置网络,Netplan 使用 YAML 文件(在 /etc/netplan 路径下)对网络进行配置,配置说明参见:Netplan YAML。
编辑配置文件:
Bash$ sudo vim /etc/netplan/00-installer-config.yamlYAML# This is the network config written by 'subiquity' network: ethernets: eth0: dhcp4: true eth1: dhcp4: false addresses: [10.0.0.2/24] version: 21
2
3
4
5
6
7
8
9Note:有一些教程还会给刚才新增的第二块网卡设置网关、DNS 等,这实际上是错误的做法,设置完之后反而可能会导致虚拟机访问不了外网,因为第二块网卡无需也无法访问外网,访问外网只需要走第一块默认的
Default Switch网卡即可。应用网络配置:
netplan apply;