2026/4/18 11:40:39
网站建设
项目流程
企业网站管理系统排名,小程序开发费用清单,wordpress博体,福州360手机端seo现象换上专网后#xff0c;我的后端尝试调用librespeed失败#xff0c;使用终端命令行连接远端服务器接口显示连接超时。100%复现。换回原来的网络就可以正常通讯#xff1a;解决使用curl测试#xff0c;发现立刻返回链路正常#xff0c;一直找不到原因#xff08;这里埋…现象换上专网后我的后端尝试调用librespeed失败使用终端命令行连接远端服务器接口显示连接超时。100%复现。换回原来的网络就可以正常通讯解决使用curl测试发现立刻返回链路正常一直找不到原因这里埋了个坑❗。换不同德网络现象不一样curl能通但librespeed不可以那么先研究一下curl和librespeed有什么区别发现librespeed可以自动优化网络策略。怀疑是这个问题后面强制让librespeed使用ipv4固定网卡有50%的几率可以成功换一套网络访问相同的服务器就可以。./out/librespeed-cli-linux-arm64 \--ipv4 \--interface usb0 \--timeout 30 \--local-json new.json回到原来的起点使用curl指令怀疑curl只执行了部分链接加个“”记住了之后用curl要加“”。curl “http://10.230.12.28/backend/getIP.php?distancekmisptrue”这回现象和librespeed一模一样改成curl “http://10.230.12.28/backend/getIP.php?distancekm”可以立刻返回说明“isptrue”有问题。进到服务器docker psCONTAINER ID IMAGE NAMES f6565ba48d49 librespeed librespeed-serverdocker exec -it librespeed-server /bin/bashcat /var/www/html/backend/getIP.php找到相关代码if (is_string($ipInfo)) { $processedString . - .$ipInfo; } if ( is_array($rawIspInfo) array_key_exists(country, $rawIspInfo) ) { $processedString . , .$rawIspInfo[country]; } if (is_string($distance)) { $processedString . (.$distance.); } sendHeaders(); echo json_encode([ processedString $processedString, rawIspInfo $rawIspInfo ?: , ]); } $ip getClientIp(); $localIpInfo getLocalOrPrivateIpInfo($ip); // local ip, no need to fetch further information if (is_string($localIpInfo)) { sendResponse($ip, $localIpInfo); exit; } if (!isset($_GET[isp])) { sendResponse($ip); exit; } $rawIspInfo getIspInfo($ip); $isp getIsp($rawIspInfo); $distance getDistance($rawIspInfo); sendResponse($ip, $isp, $distance, $rawIspInfo);这段代码里只有带了isp就会执行$rawIspInfo getIspInfo($ip); $isp getIsp($rawIspInfo); $distance getDistance($rawIspInfo);而getIspInfo($ip)正是反向 DNSwhois第三方 APIGeoIP这些在专网/内网/NAT环境下极容易卡死或超时于是 CLI 就等不到 header直接报错。把下面这段if (!isset($_GET[isp])) { sendResponse($ip); exit; } $rawIspInfo getIspInfo($ip); $isp getIsp($rawIspInfo); $distance getDistance($rawIspInfo); sendResponse($ip, $isp, $distance, $rawIspInfo);改成if (!isset($_GET[isp])) { sendResponse($ip); exit; } // 专网 / 内网环境禁用 ISP 查询防止阻塞 sendResponse($ip, null, null, null); exit;保留isp参数兼容性但不再调用getIspInfo()直接返回一个“没有 ISP 的正常 JSON”不再进入任何 ISP / whois / DNS / 外部查询大概率会返回{ processedString: 172.170.11.47, rawIspInfo: }修改指令sed -i /\$rawIspInfo getIspInfo/,4c\sendResponse($ip);\nexit; /var/www/html/backend/getIP.php确认修改成功进行验证成功