fix: 服务发现支持无权限查看的端口(Docker host网络等)
- ss -tlnp 输出中没有 pid= 的端口不再跳过 - pid 为 None 时显示「受权限限制」, 进程名标记「未知进程」 - 当前发现: 8088, 9119, 16031, 16067, 18789
This commit is contained in:
@@ -71,13 +71,10 @@ def _get_listening_ports():
|
|||||||
port = int(port_match.group(1))
|
port = int(port_match.group(1))
|
||||||
|
|
||||||
pid_match = re.search(r'pid=(\d+)', line)
|
pid_match = re.search(r'pid=(\d+)', line)
|
||||||
if not pid_match:
|
pid = int(pid_match.group(1)) if pid_match else None
|
||||||
continue
|
|
||||||
pid = int(pid_match.group(1))
|
|
||||||
|
|
||||||
# 提取进程名
|
|
||||||
proc_match = re.search(r'users:\(\(\"([^\"]+)\"', line)
|
proc_match = re.search(r'users:\(\(\"([^\"]+)\"', line)
|
||||||
proc_name = proc_match.group(1) if proc_match else 'unknown'
|
proc_name = proc_match.group(1) if proc_match else '未知进程'
|
||||||
|
|
||||||
services.append({
|
services.append({
|
||||||
'port': port,
|
'port': port,
|
||||||
@@ -219,10 +216,16 @@ def register_discovery_routes(app):
|
|||||||
continue
|
continue
|
||||||
seen_ports.add(port)
|
seen_ports.add(port)
|
||||||
|
|
||||||
|
if pid:
|
||||||
cmdline = _get_process_cmdline(pid)
|
cmdline = _get_process_cmdline(pid)
|
||||||
cwd = _get_process_cwd(pid)
|
cwd = _get_process_cwd(pid)
|
||||||
name = _guess_service_name(pid, svc['process'], cmdline)
|
name = _guess_service_name(pid, svc['process'], cmdline)
|
||||||
svc_type = _guess_service_type(cmdline)
|
svc_type = _guess_service_type(cmdline)
|
||||||
|
else:
|
||||||
|
cmdline = ''
|
||||||
|
cwd = ''
|
||||||
|
name = svc['process']
|
||||||
|
svc_type = 'unknown'
|
||||||
|
|
||||||
undiscovered.append({
|
undiscovered.append({
|
||||||
'port': port,
|
'port': port,
|
||||||
|
|||||||
@@ -2905,7 +2905,7 @@
|
|||||||
<div class="flex items-center gap-3 flex-1 min-w-0">
|
<div class="flex items-center gap-3 flex-1 min-w-0">
|
||||||
<span class="text-xs text-cyan-400 font-mono">:${s.port}</span>
|
<span class="text-xs text-cyan-400 font-mono">:${s.port}</span>
|
||||||
<span class="text-gray-300 text-sm truncate">${s.suggested_name}</span>
|
<span class="text-gray-300 text-sm truncate">${s.suggested_name}</span>
|
||||||
<span class="text-gray-500 text-xs">PID ${s.pid}</span>
|
<span class="text-gray-500 text-xs">PID ${s.pid != null ? s.pid : '受权限限制'}</span>
|
||||||
<span class="text-gray-500 text-xs truncate hidden md:inline">${(s.cmdline || '').substring(0, 60)}</span>
|
<span class="text-gray-500 text-xs truncate hidden md:inline">${(s.cmdline || '').substring(0, 60)}</span>
|
||||||
</div>
|
</div>
|
||||||
<button onclick="quickAddService(${s.port}, '${s.suggested_name.replace(/'/g, "\\'")}', '${s.suggested_type}', '${(s.cwd || '').replace(/'/g, "\\'")}')" class="btn bg-green-600/50 hover:bg-green-600 px-2 py-1 rounded text-xs shrink-0 ml-2">
|
<button onclick="quickAddService(${s.port}, '${s.suggested_name.replace(/'/g, "\\'")}', '${s.suggested_type}', '${(s.cwd || '').replace(/'/g, "\\'")}')" class="btn bg-green-600/50 hover:bg-green-600 px-2 py-1 rounded text-xs shrink-0 ml-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user