【问题标题】:Ubuntu open/unblock ports for nodejsUbuntu为nodejs打开/取消阻止端口
【发布时间】:2017-05-09 06:08:36
【问题描述】:

我正在尝试监听 socket.io 的 8080 端口,但出现错误:

http://localhost:8080/socket.io/?EIO=3&transport=polling&t=Lai1FQh net::ERR_CONNECTION_REFUSED

我正在使用来自 digitalocean 的 ubuntu 虚拟机,首先当我 ssh 登录时,我收到消息:
The "ufw" firewall is enabled. All ports except for 22, 80, and 443 are BLOCKED

我是这方面的初学者,但这并不意味着端口 8080 被阻止。
我该如何解决这个问题以及我需要做什么

这是我的服务器代码:

var socket = require( 'socket.io' );
var express = require( 'express' );
var http = require( 'http' );

var app = express();
var server = http.createServer( app );

var io = socket.listen( server );

server.listen(8080, function(){
    console.log("Listening");
})

在我的网站中,我只是像这样连接到该端口:

<script src="node_modules/socket.io-client/dist/socket.io.js"></script>
<script>
    var socket = io.connect( 'http://localhost:8080' );
    ...
<script>

【问题讨论】:

    标签: javascript node.js ubuntu socket.io port


    【解决方案1】:

    您可能正在运行您的程序的另一个实例,或使用该端口的其他程序。运行:

    ps aux
    

    在您的 shell 中查看正在运行的进程并杀死那些不应该运行的进程。您还可以运行lsofnetstat 来查看在哪个端口上监听的内容。请参阅这些命令的手册。

    如果您可以打开 8081 或类似的东西,但不能打开 8080,则表示某些东西已经在侦听端口 8080。您可以尝试使用curlwgetnetcat 连接到该端口来验证它或使用nmap。有关详细信息,请参阅他们的手册页。

    【讨论】:

      【解决方案2】:

      您收到的错误消息意味着ufw(它是防火墙)正在阻止除这 3 个端口之外的所有端口。

      启用端口8080

      sudo ufw allow 8080
      

      然后重启你的服务器。

      (从您的托管服务提供商网站上的guide 可以看出)

      【讨论】:

      • Rule added Rule added (v6) 但没有帮助
      • 如果您运行sudo ufw status verbose,您是否看到有关端口 8080 的信息?
      • 我看到 8080 ALLOW IN Anywhere8080 (v6) ALLOW IN Anywhere (v6)
      • 请尝试sudo ufw allow out 8080
      • 感谢您的聊天时间。我很感激。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2022-08-17
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多