我正在尝试将主机 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