MacBook Air M1下VS Code调试无法连接localhost:8080求助
MacBook Air M1 下VS Code调试无法连接localhost:8080的排查与解决
问题描述
在MacBook Air M1设备上使用VS Code调试时,点击在Chrome中启动调试,浏览器提示无法连接localhost,错误信息如下:
This site can’t be reached localhost refused to connect.
Try:Checking the connection Checking the proxy and the firewall ERR_CONNECTION_REFUSED已尝试关闭防火墙、重新启动终端中的Apache服务器、重启电脑、更换Edge浏览器、新增JSON配置文件等操作,但仍无法连接localhost:8080。
排查与解决步骤
1. 确认8080端口是否被占用
- 打开终端,执行命令:
lsof -i :8080- 若返回结果显示有进程占用8080,记录对应的PID,执行
kill -9 [PID]强制终止进程,再重启调试服务 - 若无返回结果,说明端口未被占用,继续下一步排查
- 若返回结果显示有进程占用8080,记录对应的PID,执行
2. 验证Apache是否监听8080端口
- 执行命令:
netstat -an | grep 8080- 检查输出中是否包含
*.8080或127.0.0.1:8080的LISTEN状态记录 - 若无监听记录,打开Apache配置文件
/etc/apache2/httpd.conf,确认Listen 8080配置未被注释且无拼写错误 - 修改配置后执行
sudo apachectl restart重启服务,再次验证监听状态
- 检查输出中是否包含
3. 检查VS Code调试配置正确性
- 打开
.vscode/launch.json,确认关键配置项:{ "type": "chrome", "request": "launch", "name": "Launch Chrome against localhost", "url": "http://localhost:8080", "webRoot": "${workspaceFolder}" }- 确保
url字段的端口为8080,无拼写错误 - 确认
webRoot指向正确的项目根目录 - 若调试静态文件,可尝试替换配置为
"file": "${workspaceFolder}/index.html",直接加载本地文件测试连接
- 确保
4. 验证本地回路与DNS解析
- 在终端执行
ping localhost和ping 127.0.0.1,确认均能收到正常响应 - 若
ping localhost失败但ping 127.0.0.1成功,检查/etc/hosts文件:- 执行
sudo nano /etc/hosts,确认包含以下映射:127.0.0.1 localhost ::1 localhost - 缺失则添加,按
Ctrl+O保存,Ctrl+X退出
- 执行
5. 查看Apache错误日志定位问题
- 执行命令查看最近20条错误日志:
tail -n 20 /var/log/apache2/error_log - 根据日志提示修复问题,比如配置语法错误、文件权限不足等,修复后重启Apache服务
6. 尝试用127.0.0.1替代localhost访问
- 在浏览器地址栏输入
http://127.0.0.1:8080,若能正常访问,说明是localhost的DNS解析问题,按步骤4修复hosts文件即可
内容的提问来源于stack exchange,提问作者dan.the.man
相关产品推荐
相关产品推荐

