Mono HttpListener 需要 root 权限吗?

Mono HttpListener 需要 root 权限吗?

如果我尝试以非 root 身份运行使用 HttpListener 的程序,它会引发此异常。

未处理的异常:System.Net.Sockets.SocketException:访问被拒绝
  在 System.Net.Sockets.Socket.Bind (System.Net.EndPoint local_end) [0x00000] 中:0
  在 System.Net.EndPointListener..ctor (System.Net.IPAddress 地址、Int32 端口、Boolean 安全) [0x00000] 中:0
  在 System.Net.EndPointManager.GetEPListener (System.Net.IPAddress 地址、Int32 端口、System.Net.HttpListener 侦听器、Boolean 安全) [0x00000] 中:0
  在 System.Net.EndPointManager.AddPrefixInternal (System.String p,System.Net.HttpListener 侦听器) [0x00000] 中:0
  在 System.Net.EndPointManager.AddListener (System.Net.HttpListener 侦听器) [0x00000] 中:0

我如何允许除 root 之外的用户使用 HttpListener?

答案1

如果您希望它监听端口 80,则需要由 root 用户启动它。如果您同意它监听大于 1024 的端口,则任何用户都应该能够启动它。

如果您希望其他用户能够启动对端口 80 的监听,那么您需要允许他们通过 sudo 运行它。

相关内容