使用Socket连接PC与树莓派时遭遇PermissionError: [Errno 13]权限拒绝的解决
解决Socket绑定PermissionError问题
错误原因
你绑定的端口22属于系统特权端口范围(1-1023),这类端口仅允许root用户绑定,普通用户运行代码会触发权限拒绝错误。此外,端口22是SSH服务的默认端口,即便获取权限绑定,也会和系统SSH服务冲突。
解决方案
优先方案:改用非特权端口
将代码中的port = 22修改为1024及以上的端口(比如8080、9000),普通用户无需特殊权限即可绑定这类端口。示例修改:port = 8080注意:客户端连接时需使用相同的端口号。
特殊场景:一定要用特权端口(不推荐)
- 以root权限运行脚本:
此方式会带来安全风险,且可能与系统现有服务冲突。sudo python3 /home/pi/Desktop/server.py - 给Python添加端口绑定权限:
该操作赋予Python绑定特权端口的能力,但不建议新手使用,避免权限滥用。sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3
- 以root权限运行脚本:
内容的提问来源于stack exchange,提问作者Charlie
相关产品推荐
相关产品推荐

