需求
- 虚拟机的内网IP是固定的,无论我的电脑切换到什么网络中;
- 虚拟机可以访问外网。
实现方法
步骤描述
- 点击“虚拟交换机管理器”,创建“内部”虚拟交换机,别名为
Inner Switch
; - 打开虚拟机设置,分别添加网络适配器
Inner Switch
和 Default Switch ( Hyper-V内置可访问互联网的默认虚拟交换机)
; - 进入虚拟机,将
Inner Switch
网卡的 IP 固定下来,同时 Default Swtich
保留 DHCP
的能力,可参考后文中的 netplan 配置
; - 在宿主机的网络适配器中,将
Inner Switch
的 IP 设置为虚拟机中 IP 的网关地址,在我这里是 192.168.193.1
; - 使用
route -n
查看路由表,将 Inner Switch
对 0.0.0.0 的访问删除; - 大功告成。
netplan 固定IP
network:
ethernets:
eth0:
addresses: [192.168.193.16/24]
gateway4: 192.168.193.1
nameservers:
addresses: [192.168.193.1]
eth1:
dhcp4: true
version: 2
删除 Inner Switch 路由表方法
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.193.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 172.20.112.1 0.0.0.0 UG 100 0 0 eth1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.20.112.0 0.0.0.0 255.255.240.0 U 0 0 0 eth1
172.20.112.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth1
192.168.193.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
$ sudo route del -net 0.0.0.0 gw 192.168.193.1