![为什么端口 22 重定向会导致 lxc 容器通过 ssh 连接到主机?](https://linux22.com/image/646663/%E4%B8%BA%E4%BB%80%E4%B9%88%E7%AB%AF%E5%8F%A3%2022%20%E9%87%8D%E5%AE%9A%E5%90%91%E4%BC%9A%E5%AF%BC%E8%87%B4%20lxc%20%E5%AE%B9%E5%99%A8%E9%80%9A%E8%BF%87%20ssh%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E4%B8%BB%E6%9C%BA%EF%BC%9F.png)
我有一个主机 A,上面有 2 个 lxc 容器(X 和 Y)。
我最初将主机 (A) 上的端口 22 转发到 X。使用此配置,我无法通过 ssh 退出容器 X,而当通过 ssh 退出容器 Y 时,它导致 ssh 连接以某种方式转发到 X(即使我已通过 ssh 登录到外部计算机)。
当将主机的端口 22 转发更改为将端口 2222 转发至 X:22 时,一切都恢复正常......
有没有办法将端口 22 转发到 lxc 容器?
我使用 Iptables 命令将主机 A 上的端口 22 转发到容器 X:
iptables -t nat -A POSTROUTING -s 10.0.0.4 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 10.0.0.4:22
谢谢。
答案1
通过将 添加-i eth0
到我的 iptable 规则来修复(指定仅外部流量应重定向到容器 X:22。
iptables -t nat -A PREROUTING -p tcp --dport 22 -i eth0 -j DNAT --to-destination 10.0.0.4:22