抱歉,我是个软件专家,不太懂网络。我看过类似的帖子,但我无法按照它的方法让它工作。我在 Mac 上。我的 IP 是动态 IP。我的 Mac 连接到无线路由器,该路由器连接到我的定时器华纳调制解调器。我在 localhost:9000 运行一个网站。现在,我想从互联网上的任何地方访问这个网站。我不关心域名。我可以直接使用 IP 地址。
- 我通过访问找到了我的 Mac 的公共 IPhttp://www.whatismyip.com。它给了我 xxxx 作为外部 ip。
- 然后我在系统偏好设置中的网络中找到了我的本地 IP,即 192.168.1.2。
- 我登录了 routerlogin.net 并添加了 HTTP 端口转发外部端口从 9000 开始到结束端口 9000 到内部端口从 9000 开始到结束端口 9000 到内部 ip 192.168.1.2。
现在我转到另一台连接到另一个网络的计算机(操作系统:Windows 8),并输入 xxxx:9000,但无法访问。然后我尝试从那台 Windows 计算机 ping xxxx,但没有成功,超时了。问题是什么?我的 Mac 上的防火墙已禁用。
注意,我没有静态 IP,而是动态 IP。这有问题吗?静态 IP 必须如此吗?
我尝试的另一件事是,从 Windows 8(连接到另一个网络),我访问 whatismyip.com 获取公共 IP,然后访问我的 Mac 并 ping 它,它成功了。
然后,我尝试看看它是否在同一个网络中工作。因此,我将我的 Android 手机连接到 Mac 所连接的同一个无线路由器。然后在手机上,我在 chrome 浏览器中输入 192.168.1.2,没有工作。我输入了 192.168.1.2:9000,没有工作。输入 xxxx:9000,没有工作。但在我的 Android 终端仿真器上,ping 我的 Mac 的公共 IP xxxx 工作正常,ping -p 9000 192.168.1.2 也工作正常。
答案1
我终于找到了问题所在。问题出在我的 grunt 服务器 (yeoman) 上。我必须将 gruntfile.js 中的主机名从 localhost 更改为 0.0.0.0 才能启用外部访问。
答案2
或者您可以在两端安装 NeoRouter,从而完全避免在路由器上进行端口转发,同时避免每次都必须了解您的公共 IP 地址。