我想在我的主机(Ubuntu 18.04 服务器)上设置一个桥接器,以便从/到我的虚拟机(也是 Ubuntu 18.04 服务器)建立到互联网的连接,两者都使用 netplan。主机是 Hetzner 的专用机器。Hetzer 的星座:
主持人:
- IP:94.130.131.162
- 网络掩码:255.255.255.192
- 网关:94.130.131.129
- 广播:94.130.131.191
虚拟机(单独的 IP 和 MAC):
- IP:94.130.131.132
- 网关:94.130.131.129
- 广播:94.130.131.191
- 单独 MAC:00:50:56:00:20:B9
我/etc/netplan/50-bridge.yaml
的主人:
network:
version: 2
renderer: networkd
ethernets:
enp0s31f6:
dhcp4: no
dhcp6: no
bridges:
br0:
interfaces: [enp0s31f6]
dhcp4: no
addresses: [94.130.131.162/26]
gateway4: 94.130.131.129
nameservers:
addresses: [213.133.98.98,213.133.99.99]
dhcp6: no
我/etc/netplan/01-netcfg.yaml
的虚拟机上:
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses:
- 94.130.131.132/26
dhcp4: no
gateway4: 94.130.131.129
nameservers:
addresses: [213.133.98.98,213.133.99.99]
在虚拟机上我无法连接互联网:-(
networkctl status -a
在主机上:
● 1: lo
Link File: /lib/systemd/network/99-default.link
Network File: n/a
Type: loopback
State: carrier (unmanaged)
Address: 127.0.0.1
::1
● 2: enp0s31f6
Link File: /lib/systemd/network/99-default.link
Network File: /etc/systemd/network/10-enp0s31f6.network
Type: ether
State: routable (configured)
Path: pci-0000:00:1f.6
Driver: e1000e
Vendor: Intel Corporation
Model: Ethernet Connection (2) I219-LM
HW Address: 90:1b:0e:e0:d5:eb (Fujitsu Technology Solutions GmbH)
Address: 94.130.131.162
2a01:4f8:13b:385d::2
fe80::921b:eff:fee0:d5eb
Gateway: 94.130.131.129 (Juniper Networks)
fe80::1 (Juniper Networks)
● 3: br0
Link File: /lib/systemd/network/99-default.link
Network File: /run/systemd/network/10-netplan-br0.network
Type: ether
State: routable (configured)
Driver: bridge
HW Address: 4e:7e:7e:53:85:b2
Address: 94.130.131.162
fe80::4c7e:7eff:fe53:85b2
Gateway: 94.130.131.129
DNS: 213.133.98.98
213.133.99.99
● 4: vnet0
Link File: /lib/systemd/network/99-default.link
Network File: n/a
Type: ether
State: degraded (unmanaged)
Driver: tun
HW Address: fe:50:56:00:20:b9
Address: fe80::fc50:56ff:fe00:20b9
我在/var/lib/libvirt/quemu/name_of_virtual_machine.xml
虚拟机上设置了单独的MAC。
networkctl status -a
在虚拟机上:
有人知道为什么我无法通过互联网与虚拟机建立连接吗?我可以从虚拟机 ping 主机 IP,但无法 ping 互联网上的服务器。
答案1
我找到了在 VSwitch 上启用混杂模式的解决方案。您可以添加另一个网络,在该交换机上启用混杂模式,然后将客户机连接到该交换机。
答案2
我遇到过类似的问题,即客户虚拟机只能访问主机,而不能访问网络上的任何其他机器。运行sudo iptables -vL
显示FORWARD
策略是DROP
,所以我添加了一条ACCEPT
规则sudo iptables -A FORWARD -p all -i br0 -j ACCEPT
。之后,我的客户虚拟机对网络的其余部分可见。我过去常常iptables-persistent
在重新启动之间保留这些设置。