Linux

在 Linux 上打開 TCP 伺服器套接字需要哪些權限?

  • May 17, 2012

我想啟動一個 websocket 伺服器,但無法從其他機器連接到它。只有當我以 root 權限啟動 websocket 伺服器時,它才能工作。所以這似乎是一個權限問題。

我的使用者需要哪些權限才能打開套接字?

通常需要root權限才能打開1024以下的埠,覆蓋了web(80)、ssh(22)、ftp(21)等大部分知名服務。

某些守護程序可以配置為偵聽埠 1024 以上的其他埠,這可能允許您以非 root 權限使用它們,但它因產品而異。

還有其他解決方法,例如 using ,這在這個答案CAP_NET_BIND_SERVICE中有更詳細的描述,其中的摘要是,

簡短的回答是你這樣做:

setcap 'cap_net_bind_service=+ep' /path/to/program

然後任何時候執行程序,之後它都會有這個 CAP_NET_BIND_SERVICE能力。setcap在 debian 包 libcap2-bin中。

引用自:https://serverfault.com/questions/390153