因为项目需求,刚买了一个阿里云的服务器,系统是ubuntu16.04的,配置好后,将Python写好的服务器脚本上传到云服务器。运行之后,在本地的客户端却无法连接(确定程序没有问题)。
在网上查找了很多方法,尝试无果。最终多亏实验室师兄的帮助,才解决。
遂,记录问题及解决方法,前车之鉴,请小心入坑!
无法连接服务器端可能的原因:(在这之前确保已经能够登录系统,正常运行)
1、阿里云相应端口没有开放
阿里云服务器默认是不开放所有端口的,刚购买的服务器只开了22
,3389
,ICMP
这几个,那么如果是自己编写的服务器程序,设置的端口(一般是动态端口)往往是没有开的。所以需要我们自己去打开,打开方式:
在云服务器的左边列表中找到网络与安全
->安全组
->配置规则
,
进入快速创建规则
,仅需要修改自定义端口:TCP
,9999
(可以自定义端口号),授权对象:0.0.0.0/0
(表示允许所有ip对象访问),即可。
2、服务器端程序和客户端程序地址设置错误(重点)
- 阿里云端服务器socket绑定阿里云的私网地址
- 要连接阿里云服务器的客户端的socket要设置为阿里云的公网地址
3、是不是下面这个原因?
上面两张图,唯一的区别在于:第一张图里面,ip地址前有空格。最后是去掉了这个空格才连接成功的。
唉~
参考:
1、解决socket连接阿里云服务器所遇到的问题
2、阿里云服务器无法访问80或8080端口的
3、socket TCP:在阿里云ESC上搭建自己的TCP服务端程序