使用 UFW 将端口转发至 LXC 客户机

使用 UFW 将端口转发至 LXC 客户机

我正在尝试将主机 192.168.2.252 上的端口 2222 转发到 10.0.3.11 上的 LXC 客户机。如何使用 UFW 框架执行此操作?

换句话说,我想用 ufw 框架来做到这一点。

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222

问候,MB

答案1

/etc/ufw/before.rules在(文件顶部)之前添加*filter

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
COMMIT

然后重新启动/重新加载防火墙

sudo ufw disable && sudo ufw enable

由于我们使用了 ufw 的其他链ufw-before-*, ufw-after-* and ufw-reject-*,因此我们必须在文件 `/etc/default/ufw. 中更改MANAGE_BUILTINS=no为。检查MANAGE_BUILTINS=yes这个帖子更多细节。

答案2

Steve Zhan 的回答是正确的,如果你在 Vagrant 上,还有一件事要做,就是DEFAULT_FORWARD_POLICY="DROP"改为DEFAULT_FORWARD_POLICY="ACCEPT"/etc/default/ufw

答案3

需要进行一些配置步骤才能允许一般流量流动;简单地添加预路由线路是不够的。

假设您的 UFW 规则尚未经过大量修改,则以下内容应该足够了:

在顶端/etc/ufw/before.rules*filter部分

*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -i enp0s8 -p tcp --dport 2222 -j DNAT --to 10.0.3.11:2222
COMMIT

在靠近底部的地方,最后COMMIT

-A FORWARD -o lxcbr0 -j ACCEPT
-A FORWARD -i lxcbr0 -j ACCEPT

-A INPUT -p udp --dport 53 -i enp0s8 -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 53 -i enp0s8 -m state --state NEW -j ACCEPT
-A INPUT -p udp --dport 67 -i enp0s8 -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 67 -i enp0s8 -m state --state NEW -j ACCEPT

而且,在/etc/ufw/after.rules,再次*filter您需要的部分

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
COMMIT

相关内容