【问题标题】:AWS EC2 windows instance, can't seem to open port 80 or 433 for NodeJs, ExpressJsAWS EC2 windows 实例,似乎无法为 NodeJs、ExpressJs 打开端口 80 或 433
【发布时间】:2015-08-07 11:33:42
【问题描述】:

所以我检查并设法在“具有高级安全性的 Windows 防火墙”中打开端口 80 和 433,并添加程序:node.exe 是允许使用这些端口的程序。但是,当我执行 netstat -an/aon 端口 80 和 433 时,似乎并没有在监听。

当我尝试启动应用程序时,我可以在 localhost:3000 中找到该网站,但是当我尝试通过公共 dns 访问它时,我似乎失败了。我一直在思考是否可能是 www.js 中的那行代码:

var port = normalizePort(process.env.PORT || '3000');

谁可能是罪魁祸首。要添加,我还允许在 EC2 实例使用的安全组中允许端口 80 和 433。

下面是 netstat -aon 的输出

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       652
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       1532
  TCP    0.0.0.0:5985           0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:47001          0.0.0.0:0              LISTENING       4
  TCP    0.0.0.0:49152          0.0.0.0:0              LISTENING       420
  TCP    0.0.0.0:49153          0.0.0.0:0              LISTENING       724
  TCP    0.0.0.0:49154          0.0.0.0:0              LISTENING       800
  TCP    0.0.0.0:49155          0.0.0.0:0              LISTENING       512
  TCP    0.0.0.0:49157          0.0.0.0:0              LISTENING       520
  TCP    172.31.24.18:3389      176.10.230.225:58167   ESTABLISHED     1532
  TCP    172.31.24.18:49190     169.254.169.254:80     CLOSE_WAIT      1168
  TCP    [::]:135               [::]:0                 LISTENING       652
  TCP    [::]:445               [::]:0                 LISTENING       4
  TCP    [::]:3389              [::]:0                 LISTENING       1532
  TCP    [::]:5985              [::]:0                 LISTENING       4
  TCP    [::]:47001             [::]:0                 LISTENING       4
  TCP    [::]:49152             [::]:0                 LISTENING       420
  TCP    [::]:49153             [::]:0                 LISTENING       724
  TCP    [::]:49154             [::]:0                 LISTENING       800
  TCP    [::]:49155             [::]:0                 LISTENING       512
  TCP    [::]:49157             [::]:0                 LISTENING       520
  UDP    0.0.0.0:123            *:*                                    852
  UDP    0.0.0.0:3389           *:*                                    1532
  UDP    0.0.0.0:5355           *:*                                    948
  UDP    [::]:123               *:*                                    852
  UDP    [::]:3389              *:*                                    1532

【问题讨论】:

  • process.env.PORT 的值是多少??
  • 从我所见,它实际上没有任何价值

标签: node.js amazon-web-services amazon-ec2


【解决方案1】:

从输出来看,它不是防火墙或安全组,因为进程无法在 80/443 上创建套接字。

我会做些什么来解决问题:

  1. 使用单独的程序尝试绑定到这些端口。在 linux 中,我通常使用 netcat 或 'python -m SimpleHTTPServer 80'
  2. 确保它以管理员权限运行。请记住,低于 1024 的任何内容都需要管理员权限

【讨论】:

    【解决方案2】:

    安装 apache … 只需按照以下命令:

    sudo yum update -y
    sudo yum install -y httpd24
    sudo service httpd start
    sudo chkconfig httpd on
    

    然后,你会看到:

    tcp6       0      0 :::111                  :::*                    LISTEN
    tcp6       0      0 :::80                   :::*                    LISTEN
    tcp6       0      0 :::22                   :::*                    LISTEN
    

    【讨论】:

    • 解释这些命令可以帮助其他用户了解他们做了什么来防止不受欢迎的行为:)
    猜你喜欢
    • 2018-04-07
    • 2021-06-08
    • 2023-03-16
    • 2011-04-26
    • 2018-03-29
    • 2013-06-28
    • 2021-08-27
    • 2013-12-28
    • 2020-12-30
    相关资源
    最近更新 更多