我正尝试建立一个小型家庭服务器。
我使用动态 IP 地址。我的路由器的 wan 地址是这样的 100.70.81.xxx,我的公共 IP 是 81.213.177.xx
我在路由器上进行了端口转发。www、smtp 和 pop3 端口均已打开。但我认为我的服务器仍然无法从公共互联网访问。
那么我的计算机是否应该位于运营商级 NAT 后面。如果是这种情况,是否仍然可以在 CGN 后面设置 Web 服务器?
答案1
您的路由器的“WAN”地址来自私人的100.64.0.0/10 范围(有点像 192.168.x,但专用于 CGNAT)。这意味着您位于 CGN 后面,并且您看到的全局地址由多个客户共享。
因此,在您无法控制的 NAT 后面设置服务器的唯一方法是:
让 ISP 进行端口转发...是的,这不会发生。(尽管理论上 NAT-PMP 应该允许这种情况。)从其他地方获取您自己的全局地址,例如,有支持服务器托管并可以为您提供静态地址的 VPN 提供商。
如果您有 IPv6,那将是全球可访问的,但您还需要一项可以将从 IPv4 客户端的连接代理到仅支持 IPv6 的服务器的服务(例如 CloudFlare 可以完成这项工作)。
(IPFS 也是选项 3¾ 的首选——最近我看到一些通过“web-to-IPFS”代理服务器托管的静态页面网站。从外部看,它看起来像一个完全正常的域名,别名为gateway.ipfs.io
。)
答案2
ngrok 对我来说很好用。我差点要撞到头了,但你救了我。我的路由器在 CGNAT 后面。我用免费账户注册了 ngrok,相信我,它永远免费。只需下载Linux 版 ngrok 转到安装目录,解压并运行 ./ngrok tcp 22 --> 我想通过 ssh 从互联网访问我的 linux 机器,你可能想打开端口 80 或你想在互联网上访问的任何应用程序。一旦运行完成,它将为你提供带端口的动态链接,你就完成了
享受 !!
答案3
我想提一下其他一些替代方案恩格罗克。具体如下(无先后顺序):
塞尔维奥(撰写本文时已禁用)
Holepunch.io 查看那里的价格
Packetriot 查看那里的价格
开放端口 查看那里的价格
我目前正在测试最后一个,并且对我的需求(个人使用,非营利)感到非常满意。
答案4
您确实意识到您可以使用任何商业 VPN 绕过 CGNAT,但是,如果您只想在 CGNAT 后面进行端口转发,那么这个过程会变得有点长。任何 VPN 都可以做到这一点,因为它们提供公共 IP。
问题是,当你尝试托管服务器时,你需要一个专用 IP,而不是静态 IP,因为静态 IP 可以由你的 ISP 提供给其他客户,而专用 IP 有点贵,只为你保留。因此,为了安全起见,请使用专用 IP,然后进行端口转发,如果感兴趣,你可以遵循此流程。