# frpc 连不上诊断 $ErrorActionPreference = 'Continue' Write-Host '=== 1. frpc 进程 ===' -ForegroundColor Cyan Get-Process frpc -ErrorAction SilentlyContinue | Select-Object Id,StartTime | Format-Table | Out-String | Write-Host Write-Host '=== 2. 能否连到 frps 5.181.219.106:7000 ===' -ForegroundColor Cyan (Test-NetConnection 5.181.219.106 -Port 7000 -WarningAction SilentlyContinue | Select-Object RemoteAddress,RemotePort,TcpTestSucceeded | Out-String) | Write-Host $exe = Get-ChildItem 'C:\frp' -Recurse -Filter frpc.exe -ErrorAction SilentlyContinue | Select-Object -First 1 if (-not $exe) { Write-Host 'FAIL: C:\frp 下找不到 frpc.exe' -ForegroundColor Red; return } $toml = Join-Path $exe.DirectoryName 'frpc.toml' Write-Host "=== 3. frpc.toml 服务器配置 ($toml) ===" -ForegroundColor Cyan Get-Content $toml | Select-String -Pattern 'serverAddr|serverPort|token|auth' | ForEach-Object { Write-Host $_ } Write-Host '=== 4. 前台跑6秒抓真实报错 ===' -ForegroundColor Cyan Get-Process frpc -ErrorAction SilentlyContinue | Stop-Process -Force $log = "$env:TEMP\frpc_diag.log" Start-Process $exe.FullName -ArgumentList '-c',$toml -RedirectStandardOutput $log -RedirectStandardError "$log.err" -WindowStyle Hidden Start-Sleep 6 Get-Content $log -ErrorAction SilentlyContinue | Select-Object -Last 20 | ForEach-Object { Write-Host $_ } Get-Content "$log.err" -ErrorAction SilentlyContinue | Select-Object -Last 20 | ForEach-Object { Write-Host $_ -ForegroundColor Yellow } Write-Host '=== 诊断完成 ===' -ForegroundColor Green