解决方案:
- 阿里云上的服务器代码绑定的 IP 需要时内网 IP,
ifconfig
查看
- 其他客户端连接服务器时所用的 IP 得是阿里云的外网 IP,查看实例即可
分析思路:
猜想1:
bind:cannot assign requested address :即无法分配请求的地址,联想到是否是我在客户端调试的太频繁,造成大量的连接处于 TIME_WAIT
状态,以至于服务端出现这个问题?
论证1:
阿里云终端 netstat -nap
命令查看当前状态,发现TIME_WAIT
状态的连接没有几个!我倒是希望是这个问题,就能 kill -9 pid
来解决了。
猜想2:
阿里云服务器终端 ifconfig
发现它的内网 IP 和公开 IP 不一致,觉得有点猫腻,是这个问题?
论证2:
- 想着客户端肯定是需要连公开网络 IP 才能访问到阿里云服务器,所以客户端不需要改。
- 目前服务端程序绑定的 IP 为公开 IP ,改成内网 IP,既然成功!
总结:
虽然解决了问题,也觉得阿里云内外网存在一种转换关系,但是不明所以,又看到的大佬可以评论区给我涨涨知识。