Swift Vapor开发环境出现NIOCore.ChannelError.connectTimeout问题求助
Swift Vapor项目本地连接超时问题
我的Swift Vapor项目此前运行正常,更换Wi-Fi后,开发电脑的Xcode控制台及网页浏览器出现连接超时警告,但服务器端部署的代码运行完全正常。
网页浏览器报错
{"error":true,"reason":"connectTimeout(NIOCore.TimeAmount(nanoseconds: 10000000000))"}
Xcode控制台日志
[ NOTICE ] Server starting on http://127.0.0.1:8080 [ INFO ] GET / [request-id: 25226CA3-7D45-4765-84CA-E93FCB92FFCA] [ INFO ] GET / [request-id: 5D1E6E99-0E7A-4449-BF4A-450C411743F7] [ WARNING ] NIOCore.ChannelError.connectTimeout(NIOCore.TimeAmount(nanoseconds: 10000000000))
排查与解决方法
- 检查新Wi-Fi的防火墙/安全设置:部分Wi-Fi会拦截本地端口,确保项目使用的8080端口(或自定义端口)未被防火墙阻止。
- 修改Vapor服务器绑定地址:如果此前绑定的是旧Wi-Fi下的特定本地IP,换网后IP变更会导致访问失败。可将服务器绑定到
0.0.0.0,允许所有本地IP访问,修改configure.swift中的启动代码:try app.server.start(hostname: "0.0.0.0", port: 8080) - 清除本地DNS缓存:新Wi-Fi的DNS配置可能引发解析异常,执行对应系统的缓存清除命令:
- macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Windows:
ipconfig /flushdns
- macOS:
- 测试端口连通性:用
telnet 127.0.0.1 8080或nc -zv 127.0.0.1 8080检查端口是否能正常连接,排除端口被占用的情况。 - 重置开发电脑网络设置:若以上方法无效,可重置网络设置至默认状态,再重新连接Wi-Fi测试。
内容的提问来源于stack exchange,提问作者Blazej SLEBODA
相关产品推荐
相关产品推荐

