QAQ大佬们,我昨天买的服务器,是windows版的轻量级应用服务器,不过我发现我在防火墙打开了这些端口但外网都无法连接上去,我在服务器里面安装了我自己用QT写的TCP服务端,而且发现客户端无论怎样都连不上服务端(listen的是localhost)。。。。大佬们怎么办啊QAQQQQQQQ
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题核心在于:您的 TCP 服务端监听地址为 localhost(即 127.0.0.1),导致仅接受本机连接,外网无法访问。另外,阿里云轻量应用服务器禁用25端口,且不支持解封。出于安全考虑,25端口不能用于对外发送邮件。如果您有邮件发送需求,建议使用465端口。详细参考官方说明及解决方法:https://www.aliyun.com/product/swas
在您的 Qt 服务端代码中,不要绑定 QHostAddress::LocalHost,而应绑定:
server->listen(QHostAddress::Any, your_port); // 监听 0.0.0.0
这将使服务监听所有网络接口(包括公网 IP)。
⚠️ 若仍绑定
127.0.0.1,即使防火墙和安全组全开放,外网也无法连接。
完成以上三步后,在本地使用 telnet 公网IP 端口 测试连通性。若仍失败,请提供:
netstat -ano | findstr ":端口" 的输出结果;检查您的安全组规则是否开放了对应端口,并确保应用程序在服务器上正确运行
-------------------------