限制 Deluge 仅使用 tun0,但允许 Deluge Web UI 通过 eth0

限制 Deluge 仅使用 tun0,但允许 Deluge Web UI 通过 eth0

经过多次搜索,我能够使用以下命令将大量网络流量限制到仅 VPN 接口 tun0:

sudo iptables -A OUTPUT -m owner --uid-owner deluge \! -o tun0 -j REJECT

但现在我无法通过端口 8112 上的 eth0 访问 WebUI(即 192.168.0.23:8112)

我可以使用另一个 iptables 规则来提供对本地网络上的 WebUI 的访问吗?

答案1

这将强制 deluge 仅使用 vpn 隧道,但本地子网除外。

iptables -A OUTPUT -m owner --uid-owner deluge ! -d 192.168.1.0/24 \! -o tun0 -j REJECT

其逻辑是,它会阻止所有非 VPN 隧道的输出,但本地子网除外。

确保验证 deluge 使用的用户。并调整子网以匹配您的子网。还要在 ifconfig 中验证您的隧道名称,在我的示例中为 tun0

答案2

另一种方法是仅允许 VPN 连接和 Web 界面通过 eth0,并阻止其他所有内容:

-A INPUT -s my.vpn.net -i eth0 -p udp -m udp --sport 1194 -j ACCEPT
-A INPUT -s my.local.ip -i eth0 -p udp -m udp --sport 8112 -j ACCEPT
-A INPUT ! -i tun0 -j DROP
-A OUTPUT -d my.vpn.net -o eth0 -p udp -m udp --dport 1194 -j ACCEPT
-A OUTPUT -d my.local.ip -i eth0 -p udp -m udp --sport 8112 -j ACCEPT
-A OUTPUT ! -o tun0 -j DROP

答案3

使用容器(LXC/LXD/Docker):

如果您在主机上启动 wireguard 接口,然后将该接口添加到运行 deluge 的容器中作为唯一接口,则访问仅限于 wireguard 接口。

您可以添加一个代理设备,该设备绑定到容器内 localhost 上的 webui 端口并监听主机上的任何地址。

不需要 iptables。

相关内容