我使用 proxmox,我需要为虚拟机和容器进行端口路由,我使用:
qm set 100 -args "--redir tcp:1000::1001"»
VM 上的端口路由命令。它运行良好,但不适用于容器。我将它用于容器时的错误是:
Configuration file '100.conf' does not exist.
如何为 proxmox 中的容器进行端口路由?
我使用 proxmox,我需要为虚拟机和容器进行端口路由,我使用:
qm set 100 -args "--redir tcp:1000::1001"»
VM 上的端口路由命令。它运行良好,但不适用于容器。我将它用于容器时的错误是:
Configuration file '100.conf' does not exist.
如何为 proxmox 中的容器进行端口路由?
proxmox 中的 qm 命令用于 qemu 虚拟机 (kvm),而不用于 LXC 容器。LXC 不工作是正常的,因为在执行时,它会尝试为该 ID 查找 kvm 虚拟机配置。该 id 是 LXC 容器而不是 KVM 机器,没有配置文件。
为了将端口映射到 LXC 容器,您必须使用 iptables(afaik 没有用于 lxc 的类似 qm 工具)。通过 SSH 登录到您的 proxmox 服务器,成为 root 并且端口转发的语法是这样的:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport PORT -j DNAT --to [LXC-container-IP:PORT]
例如,如果您想将 LXC 容器的端口 9999 映射到端口 9999(为了示例,假设 lxc 容器的 ip 为 1.1.1.1),您的 iptables 规则是:
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 9999 -j DNAT --to [1.1.1.1:9999]
请记住,您的默认以太网设备可能不是 eth0 而是 vmbr0 或任何其他设备。所以把eth0换成对应的设备。