无法向本地 IPV4 ubuntu lts 20.04 打开端口 3001

无法向本地 IPV4 ubuntu lts 20.04 打开端口 3001

我正在使用 NodeJs 创建后端应用程序。我的应用程序在端口上运行3001。当我尝试使用localhost:30010.0.0.0:3001或访问它时可以访问127.0.0.1:3001,但当我尝试使用另一台设备访问它时,这意味着我尝试使用本地 ip(同一网络)访问192.168.1.8,它是不工作

因此,我尝试使用 ufw 打开我的端口

sudo ufw allow 3001

我使用 检查了 ufw 状态sudo ufw status verbose,结果如下:

To                         Action      From
--                         ------      ----
2222                       ALLOW IN    Anywhere                  
3001/tcp                   ALLOW IN    192.168.1.8               
53                         ALLOW IN    Anywhere                  
22                         ALLOW IN    Anywhere                  
80/tcp                     ALLOW IN    Anywhere                  
443/tcp                    ALLOW IN    Anywhere                  
22/tcp                     ALLOW IN    Anywhere                  
192.168.1.8 3001/tcp       ALLOW IN    127.0.0.1                 
3001                       ALLOW IN    Anywhere                  
2222 (v6)                  ALLOW IN    Anywhere (v6)             
80/tcp (v6)                ALLOW IN    Anywhere (v6)             
443/tcp (v6)               ALLOW IN    Anywhere (v6)             
22/tcp (v6)                ALLOW IN    Anywhere (v6)             
3001 (v6)                  ALLOW IN    Anywhere (v6)  

但是当我尝试时nmap 192.168.1.8。我看到端口没有打开,这是我的 nmap 的结果。

Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-18 12:43 WIB
Nmap scan report for 192.168.1.8 (192.168.1.8)
Host is up (0.00014s latency).
All 1000 scanned ports on 192.168.1.8 (192.168.1.8) are closed

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

但当我尝试时nmap localhost,端口3001已经打开。

Starting Nmap 7.80 ( https://nmap.org ) at 2021-03-18 12:44 WIB
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
631/tcp  open  ipp
3001/tcp open  nessus

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

那么,如何将我的端口打开到本地 IP,以便同一网络中的另一台设备可以访问?提前致谢。

答案1

仅作为示例,node.js文件:

const express = require('express');
const app = express();

const port=3000;

app.listen(port, () => console.log(`App listening on port ${port}`));

进而:

# lsof -i :3000
COMMAND    PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
node    201089 wayne   21u  IPv6 2249996      0t0  TCP *:3000 (LISTEN)

*:3000表示所有接口上的端口 3000。请注意,尽管它说的是 IPv6,但它实际上也在监听 IPv4,因为我们没有指定 ipv6Only(nodejs server.listen 文档)。

相关内容