Ubuntu 需要 sudo 才能侦听端口 80,但不需要侦听其他未使用的端口

Ubuntu 需要 sudo 才能侦听端口 80,但不需要侦听其他未使用的端口

在我的 Ubuntu 桌面上,我能够成功运行一个小型 C++ 网络服务器未使用的端口像这样:

./myserver 127.0.0.1 3050

这个问题是,如果我在端口80上运行,我必须运行为须藤像这样:

sudo ./myserver 127.0.0.1 80

如果我继续跑不使用 sudo 的端口 80,我收到一个错误接受:参数无效

有人可以解释为什么在端口 80 上运行时需要 sudo 吗?

答案1

1024 以下的 TCP/IP 端口号比较特殊,普通用户不允许在其上运行服务器。这是一项安全功能,因为如果您连接到这些端口之一上的服务,您可以相当确定您拥有的是真实的东西,而不是某些黑客为您提供的假冒产品。

以上来自:
https://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html
另外,请查看https://en.wikipedia.org/wiki/Registered_port

相关内容