将 SMB 从私有接口转发到公共接口?

将 SMB 从私有接口转发到公共接口?

ADDR我有一个带有公有 IP 地址和私有 IP 地址的路由器192.168.1.1
我还有DOMAIN一个带有指向 的 A 记录的公共域ADDR

路由器有内置的 SMB 服务器。
我可以通过输入 Windows 资源管理器来内部访问 SMB 共享\\ADDR\ShareName
但是,我希望也能够通过\\DOMAIN\ShareName内部访问它们。

目前这不起作用,因为 Samba 没有监听公共接口。它只监听私有接口,我显然不想改变这一点并引入安全漏洞。

因此,当源位于本地子网时,我将端口 445 重定向ADDR到:192.168.1.1

iptables -t nat -I PREROUTING 1 -s 192.168.0.0/16 -p tcp --dport 445 -j DNAT --to-destination 192.168.1.1:445

但由于某种原因,这不起作用,我不明白为什么。(我不太清楚iptables。)
为什么这不起作用?我该如何让它起作用?

(是的,cat /proc/sys/net/ipv4/ip_forward给予1。)

答案1

您无需尝试使用 iptables 来解决此问题。只需为您的域设置单独的内部区域,并将主机名解析为您服务的本地 IP。

顺便说一句,即使 iptables 是解决方案,您的解决192.168.1.1方案也可能192.168.1.0/24只是其中的一部分192.168.0.0/16

相关内容