如何允许从外部网络访问我的Angular 8应用程序?

时间:2019-07-16 23:29:41

标签: angular ip wifi

我检查了我的IP地址,并得到以下信息: 在主机文件中,我有:127.0.0.1 localhost 我的wifi ip IPv4是:192.168.1.102

我尝试从以下角度开始:ng serve --host 198.168.1.102 我得到了:

listen EADDRNOTAVAIL: address not available 198.168.1.102:4200
Error: listen EADDRNOTAVAIL: address not available 198.168.1.102:4200
    at Server.setupListenHandle [as _listen2] (net.js:1262:19)
    at listenInCluster (net.js:1327:12)
    at doListen (net.js:1460:7)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    at Function.Module.runMain (internal/modules/cjs/loader.js:832:11)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)

知道我在做什么错吗?

这是带有转发条目的调制解调器/路由器菜单: enter image description here

3 个答案:

答案 0 :(得分:0)

如果通过外部您的网络在说通过互联网,则必须从本地Internet框转发端口。

您只需要打开互联网设置并将端口80转发到设备的端口即可。对于节点服务器,通常使用端口4000,对于ng serve,通常使用端口4200。

完成后,只需打开您的public ip地址。

请随时阅读ng serve文档和port forwarding的说明。

答案 1 :(得分:0)

对我来说可以使用ng serve --host 0.0.0.0,但是要从外部访问您的应用,您必须知道您的公共IP,并且198.168.1.102是您的本地IP-在本地网络中

答案 2 :(得分:0)

首先,您需要一个可以从外部访问的公共IP地址(我想您已经拥有了)。

然后,您必须从外部通过路由器转发一些端口到服务器。对于您的路由器,它可能在“ NAT转发”下。您极有可能必须提供以下信息:

  • 源端口或外部端口:您要用于从外部访问服务的端口(即,您使用8.8.8.8:444从外部访问> 444是您的源端口)
  • 目标端口或内部端口:您服务的本地端口,在这种情况下,我想的是4200
  • 目标IP地址:您服务器的本地IP,在这种情况下为192.168.1.102

某些路由器无法区分源端口和目标端口,在这种情况下它们将是相同的。