From c04a4c41e435efaae6e193d13cff7632c264c568 Mon Sep 17 00:00:00 2001 From: hotyue <52734432+hotyue@users.noreply.github.com> Date: Mon, 20 Apr 2026 17:41:17 +0000 Subject: [PATCH] =?UTF-8?q?fix(core):=20=E4=BF=AE=E5=A4=8D=E5=86=85?= =?UTF-8?q?=E6=A0=B8=E7=BA=A7=E7=A6=81=E7=94=A8=20IPv6=20=E6=97=B6=20Pytho?= =?UTF-8?q?n=20Webhook=20=E5=81=87=E6=AD=BB=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E5=BC=95=E5=85=A5=E6=99=BA=E8=83=BD=20IPv4=20?= =?UTF-8?q?=E9=99=8D=E7=BA=A7=E5=9B=9E=E9=80=80=E6=9C=BA=E5=88=B6=20(Resol?= =?UTF-8?q?ves=20#23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/agent_daemon.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/core/agent_daemon.sh b/core/agent_daemon.sh index 8714294..d3f5779 100755 --- a/core/agent_daemon.sh +++ b/core/agent_daemon.sh @@ -394,14 +394,20 @@ class AgentHandler(http.server.BaseHTTPRequestHandler): import socket # ================== [v3.0.3 变更: 引入多线程模型抵抗 Slowloris 攻击] ================== -class ThreadedDualStackServer(socketserver.ThreadingMixIn, socketserver.TCPServer): +class ThreadedServer(socketserver.ThreadingMixIn, socketserver.TCPServer): allow_reuse_address = True # 开启端口复用,防止热重启时端口冲突 - address_family = socket.AF_INET6 if socket.has_ipv6 else socket.AF_INET try: - bind_addr = "::" if socket.has_ipv6 else "" - with ThreadedDualStackServer((bind_addr, PORT), AgentHandler) as httpd: - httpd.serve_forever() + # 1. 优先尝试监听双栈/IPv6 (大多数 Linux 默认支持 IPv4 映射接入) + ThreadedServer.address_family = socket.AF_INET6 + httpd = ThreadedServer(("::", PORT), AgentHandler) +except Exception: + # 2. [核心修复 Issue #23] 若系统内核已禁用 IPv6,抛弃报错,智能回退至纯 IPv4 监听 + ThreadedServer.address_family = socket.AF_INET + httpd = ThreadedServer(("0.0.0.0", PORT), AgentHandler) + +try: + httpd.serve_forever() except Exception as e: sys.exit(1) # ====================================================================================