一、云服务器网络环境准备
在云服务器部署Socket服务端前,需完成以下基础配置:获取服务器公网IP地址,确认操作系统已安装Python等运行时环境。建议通过ifconfig
或云平台控制台查看内网IP,该地址将用于服务端程序绑定。
ifconfig | grep inet
ping 公网IP地址
二、安全组端口配置
所有主流云平台(阿里云、腾讯云等)均需在安全组中开放Socket服务端口:
- 登录云控制台,进入目标实例的安全组配置页
- 添加入方向规则,协议类型选择TCP/UDP
- 设置端口范围为服务端监听的特定端口(如5000-6000)
需注意安全组规则优先级设置,避免与其他规则冲突。
三、服务端代码IP设置
服务端代码需绑定云服务器内网IP,客户端连接使用公网IP:
# Python示例
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('内网IP', 8080)) # 如172.16.0.12
同时需关闭服务器防火墙或添加放行规则,Ubuntu系统可执行:
sudo ufw allow 8080/tcp
sudo systemctl stop firewalld
(临时关闭)
四、IP绑定特殊注意事项
当遇到NAT穿透场景时,需在云平台配置端口映射规则,将公网IP:端口映射到内网IP:端口。多网卡服务器应指定绑定网卡:
# 指定eth0网卡
server.setsockopt(socket.SOL_SOCKET, 25, 'eth0'.encode)
建议测试时使用telnet 公网IP 端口
验证连通性,再实施正式客户端连接。
成功配置需同时满足网络层(安全组/防火墙)和应用层(代码绑定)的双重验证。建议在服务端增加日志记录模块,实时监控连接状态。不同云平台的具体配置路径可能差异,但核心原理相通。