linux - 如何在 proxmox 中为容器进行端口路由?

标签 linux routes containers port 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(据我所知,lxc 没有类似的 qm 工具)。通过 SSH 登录到您的 proxmox 服务器,成为 root,端口转发的语法如下:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport PORT -j DNAT --to [LXC-container-IP:PORT]

例如,如果您想将端口 9999 映射到 LXC 容器的端口 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换成对应的设备。

关于linux - 如何在 proxmox 中为容器进行端口路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46288364/

相关文章:

linux - 打印文件中每个字母的不同单词数

json - jq 哈希数组到 csv

java - Spring MVC 默认 Controller

linux - 从 "Docker Hub"下载镜像后,我应该把我的配置文件放在哪里?在数据量上?

linux - Linux 中的日志文本解析

ruby-on-rails - Rails 3 带有斜线和嵌套资源的路线

c# - 使用 RedirectToAction 将信息传递给另一个操作 - MVC

docker - 从 UI 管理 Kubernetes 集群

java - 在不知道元素索引的情况下,我可以更轻松地从哪个java容器中删除元素?

php - 无法在扩展 Symfony\Bundle\FrameworkBundle\Controller\Controller 的 Controller 中访问 Symfony2 容器