好吧,我已经束手无策了。
我正在尝试在 Hetzner 的专用服务器上配置 ProxMox,该服务器具有一个公共 IP,因此我想对虚拟机/容器使用 NAT。
我读了所有的手册,并试着遵循赫茨纳手册上没有写明这一点。它根本不起作用。
这是我的配置:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto enp4s0
iface enp4s0 inet static
address xxx.xxx.xxx.16/27
gateway xxx.xxx.xxx.1
pointopoint xxx.xxx.xxx.1
auto vmbr0
iface vmbr0 inet static
address xxx.xxx.xxx.16
netmask 255.255.255.255
bridge_ports none
bridge_stp off
bridge_fd 0
auto vmbr1
iface vmbr1 inet static
address 10.0.0.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
iface eth0 inet manual
客人很简单:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.0.0.2/24
gateway 10.0.0.1
当我创建一个带有附加接口的 LXC 时vmbr1
,它没有互联网连接。当我这样做时,ping -I vmbr1 google.com
我会超时(因此这vmbr0
很奇怪)
我认为这是最简单的配置,并且在任何地方都推荐使用。ip route
显示vmbr0
- linkdown
AIUI 意味着它连接到一个已关闭的接口 - 但它实际上并没有连接到任何东西,这是设计使然吗?
我在这里做错了什么?
答案1
好的,我得到了答案:
auto vmbr0
iface vmbr0 inet static
address 10.0.0.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o ens3 -j MASQUERADE
不需要桥接。
正如 Nikita 上面指出的那样,vmbr0
在上面的例子中是不需要的,所以我将其删除并向vmbr1
上移动堆栈。
最让我吃惊的是,Hetzner 的手册根本没有提到端口转发部分 - 这让我非常吃惊,尽管我并不是一个真正的网络专家。所以,就写到这里,希望它能对某些人有所帮助。
答案2
在您的 vmbr0 块上“post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o ens3 -j MASQUERADE”
-o ens3 正确吗?它会是 enp4s0 吗?
谢谢