如何将传入流量重定向到 Synology NAS (DSM5) 上的不同端口

如何将传入流量重定向到 Synology NAS (DSM5) 上的不同端口

使用应该很简单iptables,例如理查德·弗吉 (Richard Fergie) 在这篇文章中描述了,但我的设备 Synology DS115j(运行 DSM 5.0)显然无法执行此操作:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

回报

iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

我是否需要使用该nat表进行端口转发?这不是网关,不想转发到另一个设备,只想转发到另一个本地端口。

语境:

  • 我的目标是在非特权端口上运行服务器,以避免必须以 root 身份运行它。
  • 我知道setcapauthbind但这些在 Synology NAS (DSM5) 上不可用。
  • Synology DS115j 也不支持码头工人

答案1

如果 Synology 防火墙尚未使用 nat,则可能不会启用必要的内核模块,因此-t nat不会找到该表。您需要以 root 身份:

cd /lib/modules
insmod nf_nat.ko 
insmod iptable_nat.ko
insmod ipt_REDIRECT.ko

然后iptables -L -t nat应该列出空链,lsmod|grep nat应该显示模块,并且您可以添加规则。

答案2

Synology Os (DSM) 使用名为 的闭源二进制文件firewalltool来重建 iptables 转储。您可以花时间通过查看/usr/syno/etc/rc.d/S01iptables.sh和来了解其内部工作原理/etc/firewall,但请记住,任何 DSM 更新都可能会覆盖您所做的手动更改。

相关内容