在单机上用 python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct 启动,报 [Errno 98] Address already in use,换成 30001 还是同样的错,netstat 里也没看到 30000 在监听。

把日志和配置对完,能解释这个现象的基本就这几处。上一次的进程没退干净,TIME_WAIT 的 socket 还占着端口;启动脚本里同时起了两个实例,第二个必然失败;端口被别的推理框架占用,普通用户权限看不到;参数写了 --port 但配置文件又把值覆盖回默认。

先查端口真实占用者

sudo lsof -i :30000

结束残留的启动进程

pkill -f sglang.launch_server

然后换一个明确空闲的端口启动

python -m sglang.launch_server --model-path Qwen/Qwen2.5-7B-Instruct --port 31000

等前面都确认过,再验证 OpenAI 兼容接口可用

curl http://127.0.0.1:31000/v1/models

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

恢复的判定其实很直接。启动日志出现 The server is fired up,curl 能拿到模型列表,再启动第二个实例会明确提示端口占用而不是随机失败。

这里还有个坑。SGLang 和 vLLM 的默认端口都是 30000,同机装两个框架时启动参数里一定要显式分开。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189