无法从Ubuntu上的外部IP访问Node.js.

问题描述 投票:2回答:2

我尝试访问在Ubuntu上运行的node.js服务器。我的电脑与TP-link路由器连接。现在,我想从其他IP(而不是本地主机或本地IP)访问节点服务。我能做什么?我使用以下代码。

注意:此服务器工作正常,可从本地IP访问,但无法从我的公共IP访问

http.listen(6000,"0.0.0.0",function(){
    log.info("server started");
})
node.js live
2个回答
0
投票

你必须使用: -

iptables -A OUTPUT -p tcp  --sport 8080 -j ACCEPT

对于传出规则(不是dport)。除此之外,也许有一个阻止流量的早期规则?试试iptables -L


0
投票

Ubuntu有很好的防火墙和默认系统不允许外部IP响应

在express和node js或类似的任何服务器中

http.listen(6000,"0.0.0.0",function(){
    log.info("server started");
})

它适用于您的IP,localhost和公共IP,但外部IP无法访问它

首先取代

localhost -> 0.0.0.0

当你想同时运行前端和后端时,最好直接使用公共IP而不是0.0.0.0

如果您使用的是ubuntu,那么我们需要使用ufw更改防火墙设置

UFW默认安装在Ubuntu上。如果由于某种原因已经卸载,可以使用apt-get安装它:

sudo apt-get install ufw

然后

 sudo nano /etc/default/ufw

检查此行并将其设为是

IPV6=yes

使用Ctrl-X保存文件以退出文件,然后按+ y保存您所做的更改,然后按ENTER

您可以随时使用以下命令检查UFW的状态:

sudo ufw status verbose

默认情况下,UFW已禁用,因此您应该看到如下内容:

Output:
Status: inactive

不是最重要的一点

sudo ufw allow portNumber // here portNumber is port-number in integer

在你的情况下

sudo ufw allow 6000

并允许

sudo ufw allow http

了解ubuntu click here上的更多规则和防火墙

© www.soinside.com 2019 - 2024. All rights reserved.