Ubuntu
監聽埠 80 需要 Ubuntu sudo,但不需要監聽其他未使用的埠
在我的 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