我在我的 MacBook 上运行着一个 Samba 服务器,并且我也设置了从我的路由器到该服务器的端口转发。
我的公共 IP 是106.51.x.x
(根据谷歌和其他一些服务)并且我的 Mac 的本地 IP 是192.168.x.x
,但是当我转到路由器的配置页面时,它显示我的外部 IP 是10.242.x.x
。
这是我不明白的地方,当连接到我家的 WiFi 时,使用该10.242.x.x
地址工作正常。但如果我尝试通过 4G 访问,连接就会超时。
至于公共广播,WiFi 和 4G 都不能用。
我的 Mac(我运行的是 MacOS Sierra)上是否存在一些设置需要我更改才能让其对公众可见?
答案1
您的路由器地址10.242.x.x
是还在私有地址范围内(所有地址都10.0.0.0/8
为 LAN 保留)。这通常意味着您的 ISP 实施了 CGNAT,并在多个客户之间共享相同的公共106.51.x.x
地址。(就像您的家用路由器一样,但范围更广。)
在这种情况下,你实际上没有公共地址,不能直接从外部访问您的网络。
您的第一个选择是建立与某个外部服务器的 VPN 连接,该服务器具有自己的公共 IP 地址,并且可以将连接转发回您的家庭网络(通过 VPN)。
顺便提一下,尽管 Samba 的风险比 Windows 低,但将 SMB 暴露在公共互联网上仍然不是一个好主意。较旧的协议版本不支持加密(SMBv3 支持,但需要 Samba 4.7 或 Windows 8),因此您可能会面临泄露密码的风险和文件数据。
如果您采用 VPN 方法,我建议您不仅在主服务器↔主服务器链接中使用 VPN,而且在从公共 4G/Wi-Fi 访问服务器本身时也使用 VPN。(有适用于 strongSwan、OpenVPN、OpenConnect 等的移动应用程序)这样,您将拥有一个安全的连接和不需要任何端口转发。