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

问题描述

我有一个 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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)