Ubuntu 用户无法打开端口来侦听 IP V6 地址

时间:2021-02-11 13:20:55

标签: node.js linux ubuntu listener ipv6

我有一个 Nodejs 应用程序,它将侦听 IPV6 地址。但是当我通过普通用户运行它时,它没有运行。但是当我用 Sudo 运行它时,它正在运行并监听 80 端口。看来我的普通用户无法打开用于侦听 IPV6 地址的端口。请帮忙。

应用:

$ cat app2
#!/bin/bash
SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")

node $SCRIPTPATH/lib/app2.js


$cat app2.js
   

const hn="::",s=require("http").createServer((e,t)=>{t.statusCode=200,t.setHeader("Content- 
Type","text/html"),t.end("<htm><body><h1>Hello World</h1></body> 
</html>")});
s.listen(0x50,hn,_=>console.log("Server is running")); 
process.on('uncaughtException',_=>{console.log("Error")});

普通用户会报错。

$ ./app2
Error

以Sudo权限运行

$ sudo ./app2
Server is running

它正在监听 IPV6 的 80 端口

$ sudo lsof -i -P -n | grep LISTEN

systemd-r  533 systemd-resolve   13u  IPv4  18587      0t0  TCP 127.0.0.53:53 (LISTEN)
sshd       689            root    3u  IPv4 110220      0t0  TCP *:22 (LISTEN)
sshd       689            root    4u  IPv6 110222      0t0  TCP *:22 (LISTEN)
node      8034            root   18u  IPv6 134249      0t0  TCP *:80 (LISTEN)

这是一台 Ubuntu 机器。

$ cat /etc/*release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

0 个答案:

没有答案
相关问题