首先,这是我的总结:
我有一个具有公共 IP 的 Proxmox 服务器,我从 Proxmox(192.168.0.1)创建了一个 vmbr1 桥,并且我为我的 VM 使用 IP 192.168.0.108。
这是路线:192.168.0.0/24 dev vmbr1 proto kernel scope link src 192.168.0.1
我删除了所有 iptables 规则,只留下这个用于 NAT:
链 POSTROUTING(策略接受 786 个数据包,36868 字节)
pkts 字节数 目标 协议 选择加入 退出 源 目标
707 40652 MASQUERADE 全部 -- * vmbr0 192.168.0.0/24 0.0.0.0/0
当我尝试从虚拟机管理程序上的 VM 192.168.0.108 连接 SSH 时,它不起作用。我可以使用 tcpdump 查看通过的数据包。
你知道吗?我已经被这个问题困扰好几天了。
谢谢你 !
编辑 :
这是 /etc/network/interfaces :
自动档 iface lo inet 环回 自动 eth0 iface eth0 inet 手册 网络 XXX0 iface eth1 inet 手册 自动 vmbr0 iface vmbr0 inet 静态 地址 XXXX/24 网关 XXX1 桥接端口 eth0 桥接器关闭 桥接-fd 0 iface vmbr0 inet6 静态 地址 X/64 网关 X 自动 vmbr1 iface vmbr1 inet 静态 地址 192.168.0.1 网络掩码 255.255.255.0 bridge_ports 无 bridge_stp 关闭 bridge_fd 0
这是 iptables -L -t nat:
链 PREROUTING(策略接受) 目标 保护 优化 源 目标 链输入(策略接受) 目标 保护 优化 源 目标 链输出(策略接受) 目标 保护 优化 源 目标 链 POSTROUTING(策略接受) 目标 保护 优化 源 目标 MASQUERADE 全部 -- 192.168.0.0/24 任何地方