解决 socket: operation not permitted

3 min read

这个错误通常发生在使用一些敏感端口时,例如低于1024的端口号。因为这些端口是为特殊用途保留的,需要管理员权限才能访问。

如果你尝试使用这些端口,但是没有管理员权限,就会出现 "socket: operation not permitted" 的错误。

解决方法:

  1. 使用一个高于1024的端口号。

  2. 以root用户身份运行程序,如使用sudo命令。

例如:

sudo python3 server.py
  1. 为该端口添加访问权限。使用以下命令:
sudo setcap 'CAP_NET_BIND_SERVICE=+ep' /path/to/program

这会将"CAP_NET_BIND_SERVICE"权限分配给程序,并允许它使用低于1024的端口。

注意:在分配权限之前,应该确保程序本身是安全的,否则可能会存在安全风险。