这个错误通常发生在使用一些敏感端口时,例如低于1024的端口号。因为这些端口是为特殊用途保留的,需要管理员权限才能访问。
如果你尝试使用这些端口,但是没有管理员权限,就会出现 "socket: operation not permitted" 的错误。
解决方法:
-
使用一个高于1024的端口号。
-
以root用户身份运行程序,如使用sudo命令。
例如:
sudo python3 server.py
- 为该端口添加访问权限。使用以下命令:
sudo setcap 'CAP_NET_BIND_SERVICE=+ep' /path/to/program
这会将"CAP_NET_BIND_SERVICE"权限分配给程序,并允许它使用低于1024的端口。
注意:在分配权限之前,应该确保程序本身是安全的,否则可能会存在安全风险。