阿里云常见问题及解决方案:
一. 網絡鏈接問題
【寫在前面】
阿里云跟其他的騰訊云相比有點坑爹呀。。。
今天測試時,按照之前騰訊云的騷操作只需要將對應4G路由器的設置綁定到對應的云服務器公網IP地址就行,
test code:
說明:
騰訊云公網ip:106.54.40.84:8000
騰訊云本地ip:172.17.0.14:8001
阿里云公網ip:47.110.232.228:8000
阿里云本地ip:172.16.119.1528001
可是人家阿里云就是不一般
import socket# _*_ coding:utf-8 _*_''' endstr = "end" # 重新定義結束符 str = "" for line in iter(input, endstr): # 每行接收的東西str += line+"\n" # 換行 print(str) '''server = socket.socket() server.bind(('47.110.232.228', 8000)) # (host, port) server.listen(4) # 服務器端建立偵聽,監聽客戶端的連接請求 serObj, address = server.accept() while True:receive_data = serObj.recv(1024).decode('gb18030')# print('receive_data is >>', receive_data)# receive = receive_data + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())print('receive is >>', receive_data)if receive_data == 'quit':break'''if receive_data == 'qui':send_data = input('server>>') # python3中的input默認為 string# send_data = 'test\r\n'send_data1 = send_data + '\r\n'print('server>> send_data1 is >>', send_data1)serObj.send(send_data1.encode('utf-8'))'''send_data = input('server>>') # python3中的input默認為 string# send_data = 'test\r\n'send_data1 = send_data + '\r\n'print('server>> send_data1 is >>', send_data1)serObj.send(send_data1.encode('utf-8'))serObj.close() server.close()阿里云直接報錯:
winerror 10049
解決方法
1:IP地址查看:
- 本地主機地址:
- 公網IP地址:
各方查證,結論如下:
阿里云 有兩種網絡
①經典網絡
②專有網絡
經典網絡可以直接綁定公網IP,
專有網絡不能直接綁定公網IP
(客服是這么講的 “這不是經典網絡。沒有網卡所有TCP協議無法使用”)
socket服務端要寫阿里云私有地址,客戶端要寫公有地址
socket服務端要寫阿里云私有地址,客戶端要寫公有地址
socket服務端要寫阿里云私有地址,客戶端要寫公有地址
測試有效,完美解決
參考 https://blog.csdn.net/u014043213/article/details/80228495#commentBox(看完之后覺得沒啥用)
完美解決方案:
http://www.usr.cn/Faq/405.html
解決方法:
- 通過阿里云的服務器官網添加安全組規則:
實際測試:
測試代碼如下:
將公網IP換成本地私有IP 問題得到完美解決
將公網IP換成本地私有IP 問題得到完美解決
將公網IP換成本地私有IP 問題得到完美解決
測試結果:
總結
以上是生活随笔為你收集整理的阿里云常见问题及解决方案:的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PL/SQL Developer报错提
- 下一篇: Python Tkinter 常用控件空