我的 Linux 工作站正在使用 MTS 3G Wifi USB 加密狗接入互联网 - 该工作站没有其他网络连接。
该路由器的端口转发管理页面确实允许我每行指定以下 4 个值:
---------------------------------------------------------
Config name | Local port | Wan port | MAC
---------------------------------------------------------
1. Service A | 8080 | 8888 | aa-bb-cc-dd-ee-ff
2. Service B | 9090 | 9999 | aa-bb-cc-dd-ee-ff
...
---------------------------------------------------------
我上面指定的 MAC 地址是我从 的输出中获得的ifconfig
。(它是wlan1
路由器中的 DHCP 服务器为其分配本地 IP 地址的接口 - 这就是我识别它的方式。)
当我保存上述值时,同一个管理页面会显示以下内容只读底部的值:
---------------------------------------
Config Name | Port | IP Address
---------------------------------------
1. Service A | 8888 | a.b.c.d
2. Service B | 9999 | a.b.c.d
...
---------------------------------------
这个只读输出似乎暗示我可以通过 从公共互联网访问Service A
本地端口监听。但我无法访问。事实上,我甚至无法 ping 。(我知道路由器可能故意禁止传入 ping但不确定还能尝试什么。)8080
a.b.c.d:8888
Service A
a.b.c.d
a.b.c.d
如果我通过类似这样的网站检查我的工作站的公共 IP 地址http://www.whatismyip.com/,我看到我的公共 IP 被报告为e.f.g.h
而不是a.b.c.d
!
那么,我该如何将公共 WAN 端口转发到正在运行的8888
本地端口,然后从公共互联网访问服务 A?8080
Service A
编辑:
我的IP地址如下:
a.b.c.d = 100.84.c.d
e.f.g.h = 163.47.g.h
答案1
由于你的路由器报告的 IP 与你的公网 IP 不同,因此你的 3G 网络提供商很可能没有为你分配公网 IP,而是在执行NAT,这也可以解释为什么端口转发不起作用。
如果 abcd 位于私有 IP 地址范围内,则可以确认这一点:从 10.0.0.0 到 10.255.255.255。从 172.16.0.0 到 172.31.255.255。从 192.168.0.0 到 192.168.255.255。
当我遇到此问题时,我打电话给我的 3G 提供商,他们“将我切换到他们的公共网络”,这意味着我被分配了一个公共 IP 地址并且可以接受传入连接。虽然这解决了我的具体问题,但我发现 3G IP 地址变化非常快,这可能会导致不支持该问题的软件出现问题。使用动态 DNS 服务,其配置非常低生存时间例如 1(1 秒)可能使其可用。或者您可以获得带有静态 IP 的商业计划。