WebSocketサーバーを起動したいのですが、他のマシンから接続できません。ルート権限でWebSocketサーバーを起動した場合にのみ機能します。したがって、これは許可の問題のようです。
ユーザーがソケットを開くために必要な権限はどれですか?
通常、ルートアクセスは1024未満のポートを開くために必要です。これは、web(80)、ssh(22)、ftp(21)などのよく知られたサービスのほとんどをカバーします。
一部のデーモンは、ポート1024を超える他のポートでリッスンするように構成できます。これにより、root以外の権限で使用できる場合がありますが、製品ごとに異なります。
CAP_NET_BIND_SERVICE
を使用するなど、他の回避策もあります。これについては、より詳細に説明されています この回答では 、要約は、
簡単な答えはあなたがすることです:
setcap 'cap_net_bind_service=+ep' /path/to/program
そして、その後プログラムが実行されるときはいつでも、それは
CAP_NET_BIND_SERVICE
機能を持ちます。setcap
はdebianパッケージlibcap2-bin
に含まれています。