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



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

注意:此服务器运行良好,可以从本地IP访问,但不能从我的公共IP 访问

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

您必须使用:-

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

用于传出规则(而不是dport)。除此之外,也许还有一条早期的规则可以阻止交通?尝试iptables -L

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键保存所做的更改,然后输入

在任何时候,您都可以使用以下命令检查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的更多规则和防火墙,请单击此处

相关内容

  • 没有找到相关文章

最新更新