Ubuntu

監聽埠 80 需要 Ubuntu sudo,但不需要監聽其他未使用的埠

  • March 24, 2021

在我的 Ubuntu 桌面上,我能夠在未使用的埠上成功執行小型 C++ 網路伺服器,如下所示:

./myserver 127.0.0.1 3050

這個問題是,如果我在埠 80 上執行,我必須像這樣執行sudo

sudo ./myserver 127.0.0.1 80

如果我在不使用 sudo 的情況下在埠 80上執行,則會收到錯誤accept: Invalid argument

有人可以解釋為什麼在埠 80 上執行時需要 sudo 嗎?

低於 1024 的 TCP/IP 埠號的特殊之處在於普通使用者不允許在其上執行伺服器。這是一項安全功能,因為如果您在其中一個埠上連接到服務,您可以相當確定您擁有真實的東西,而不是某些黑客為您提供的假貨。

以上來自:

https
://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html 另外,請查看https://en.wikipedia.org/wiki/Registered_port

引用自:https://unix.stackexchange.com/questions/640931