问题:我的 PC 是否可以通过 wifi 连接到 XFINITY 网关(路由器/调制解调器组合),从而拥有公共 IP?我的家庭网络有几台 PC 通过 wifi 连接到 XFINITY 网关。当然,每台 PC 都有自己的私有/本地 IP 地址。我的 PC 上运行着一个 Web 服务器,上面有我正在开发的 Web 应用程序(与我配偶和孩子的 PC 不同)。因此,我希望能够通过公共 IP 访问我的 PC 来测试我开发的 Web 应用程序,而无需向第三方支付这项服务费用,因为我已经为家中的互联网服务向康卡斯特支付了费用。我从事开发已有一段时间了,但对网络还是个新手,因为我的大部分开发工作都是在已经有公共 IP 的工作站上完成的。任何帮助和建议都将不胜感激。
答案1
您可以将“Web 服务器”PC 置于静态私有 IP 地址上,然后配置路由器内的 NA[P]T 网关功能,使该 IP 地址成为“DMZ”(又名“默认主机”、“堡垒主机”、“默认服务器”等)。或者,由于您可能只关心 Web 开发,因此您可以只为 TCP 端口 80 和 443 制定少量端口转发规则(端口映射),如果您同时开发多个网站,也可以为 8000、8080 等制定端口转发规则。
然后,您可以将 DNS 主机名指向有线网关的公共 IP 地址。根据我的经验,康卡斯特不会经常更改我的公共 IP 地址,因此由于我只是“托管”实验,而不是需要大量正常运行时间的真正的公共网站,所以这对我来说已经足够了。我还没有考虑为静态公共 IP 地址付费。如果康卡斯特经常更改您的公共 IP 地址,您可以使用动态 DNS 解决方案(如 Dyn.com (dyndns.org)),即使您的公共 IP 地址发生变化,也能让您的公共域名指向您的公共 IP 地址。
请注意,为了使此功能正常工作,您的 NAT 网关需要支持“NAT 环回”(又称 NAT Hairpinning),但并非所有 NAT 网关都支持此功能。NAT 环回适用于当您在家庭 LAN 上的一台机器上运行 Web 浏览器并转到网站的公共域名或公共 IP 地址时。您的 NAT 网关必须对该数据包执行“传出 NAT”,然后意识到数据包需要右转并通过“传入 NAT”才能到达网关私有端的服务器。
人们使用端口转发或 DMZ 功能的原因在于,它们更有可能在家庭网关中得到支持。对某些地址执行 NA[P]T,但桥接或路由其他地址的能力并不常见。Linux 的网络层几乎是无限可配置的,因此,如果您可以在网关上安装售后 Linux 固件发行版,您可能能够将其配置为执行“对某些地址进行 NAT,对其他地址进行桥接”,就像您最初设想的那样,但我自己从未设置过,所以我不能完全保证这一点。
答案2
我认为这对我使用 X1 网关有用。
- 去http://ip4.me/找到路由器的公网 IP
- 去https://internet.xfinity.com/network/advanced-settings/portforwarding
- 单击
Add Port Forward
,然后将所需的端口转发到所需的设备
更多信息https://www.xfinity.com/support/articles/port-forwarding-xfinity-wireless-gateway
答案3
我希望能够通过公共 IP 访问我的电脑来测试我的 [开发] 网络应用程序,而不必向第三方支付这项服务的费用,因为我已经向康卡斯特支付了我们家里的互联网服务费用。
这可以通过康卡斯特来实现。
我的电脑是否可以通过 wifi 连接到 XFINITY 网关(路由器/调制解调器组合),从而拥有一个公共 IP?
是的。
网关注意事项
根据传闻,康卡斯特网关并不总是可靠或易于配置。建议,与其直接使用网关本身,不如将网关置于“桥接”模式(这样它实际上只充当调制解调器),并购买带有发夹结构(NAT 环回)正如@Spiff 提到的。
我个人使用此设置(桥接模式+外部路由器)并且非常满意。
请注意,如果您确实使用上述“桥接模式”方法,则可能必须将外部路由器从使用 192.168.1.x 更改为使用 10.0.0.x 内部地址(网关可能会使用该地址)。如有必要,这在大多数路由器上通常是一个非常简单的过程。
设置
转发端口
虽然你可以设置默认主机(出于多种原因,这可能更好),转发端口应该足以满足大多数开发需求。
设置端口转发的具体方法取决于网关或路由器,但如果这样做,您至少需要转发端口 80(HTTP),并且您可能还需要端口 443(HTTPS)(至少对于基本的 Web 开发而言)。
您还可以转发您希望公开提供的任何其他服务的端口(例如 DNS、SMTP、FTP、SSH 等)或非标准端口(例如 8080 用于“备用端口”访问 Web 服务器)。
无论如何,任何转发都应该指向10.0.0.x
处理请求的服务器的本地IP(例如)(例如安装Apache或任何程序的地方)。
获取你的公共 IP
获取公共 IP 相当简单。您只需在 Google 上搜索“我的 IP 是什么?”,它就会返回您当前的康卡斯特地址。
按正确的顺序测试
如果可能,请确保服务器/服务在本地主机上运行。
确保服务器/服务在本地网络可用(例如,您可以从网络上的另一台设备使用本地 IP 访问您的 Web 服务器。)这通常会告知您防火墙问题。
测试您是否可以通过 Comcast 公共 IP 从本地网络访问服务器/服务。这将有助于您发现任何发夹问题。
测试您是否可以通过 Comcast 公共 IP 从非本地网络(例如使用 3G/4G 手机)访问服务器/服务。这应该可以告诉您服务器/服务是否真正可供公众使用。
如果您选择了非标准服务端口(例如 8080),则需要将其附加到 IP(例如10.0.0.10:8080
或 99.100.101.102:8080
)。对于标准端口,这应该不是必需的(例如端口 80 上的 Web 服务器)。
域名
虽然 IP 都很好,但如果您不想使用它们(或者需要测试依赖域名的东西),您可以注册一个域名并将 DNS 指向您的服务器(通过您的公共 IP)。
另一个便宜的选择是使用动态 DNS 提供商,例如无IP或者害怕.org,其客户端会定期将您的公共 IP 同步到域名。
请注意(目前)Namecheap 免费DNS如果您需要此类设置,将为您拥有的任何注册域名(不仅仅是 Namecheap)提供免费的动态 DNS 服务。
答案4
啊哈——你目前的假设和测试与我的经历完全一致。不幸的是,康卡斯特设置了具有最低限度功能的调制解调器/路由器接入点,并实施了一种“虚拟模式”,即使是普通的技术白痴(或者说大多数情况下)也可以简单地设置他们的 WiFi、设置密码、以某种滑稽的方式控制其上的设备……不允许人们进入任何高级部分(虽然是的,高级部分基本上只允许端口转发)
他们已将其配置为无法按照您描述的方式进行任何托管,我只能假设他们这样做是因为他们希望您支付更多费用并升级到某些商业层套餐,这样才能以这种方式实现某种功能(尽管很可能仍然有限)并且肯定不会便宜。
现在...可以将调制解调器/路由器置于桥接模式(本质上将其重新变为调制解调器,同时停止向其他人广播 Xfinity WiFi 信号...这不是安全风险,而是速度、QoS 和性能问题...想想看,我的意思是如果另一个为互联网付费的康卡斯特客户通过 Xfinity Wifi 连接到您的网关并消耗数据,则不会显示您正在使用它...但是您最好相信它正在降低您的连接速度。尽管我喜欢在外出时连接到此 Xfinity Signal 以节省移动数据...但我选择在网关上禁用它。此外,它实际上只有在您生活在城市环境中时才会产生影响(我兄弟实际上在他的公寓里 10 个月没有互联网计划,因为楼上的邻居的网关就在他家上方,很可能就在地板上,他可以随时连接到 XFinity 信号,即使在 Xbox 和其他游戏机上也是如此。我离题了...
Comcast 更改 WAN IP 的频率也比您想象的要高...尽管它可能有点随机。因此,如果您将网关设置为桥接模式,然后购买支持某种托管功能的路由器。我个人喜欢刷新路由器并安装 DD-WRT 固件以解锁路由器的所有功能,这些功能很多时候被 Linksys 或 Netgear 等隐藏。设置您的端口以通过外出时和任何其他设置进行连接。然后,您可能可以做您想做的事情。我强调“可能”是因为您仍然必须通过调制解调器进行路由,调制解调器可能具有某些功能,即使在桥接模式下也可以专门阻止这种情况。或者它可能工作正常,直到他们更改您的 WAN,然后您可能只需要想出那个小修复方法。底线...Comcast 只关心 99% 的客户担心的最基本功能...这本质上只是让该死的互联网工作,让我可以轻松命名我的 WIFI 网络并设置密码...