Linux
在 Linux 上打開 TCP 伺服器套接字需要哪些權限?
我想啟動一個 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
中。