You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现跨LAN的客户端/服务端程序连接?

跨LAN设备TCP/UDP连接解决方案

以下是适配你场景的可行方法,无需修改路由器防火墙规则:

1. 公网服务器中转(最可靠)

找一台带公网IP的服务器(比如低成本VPS或免费测试服务器),让两台内网设备主动发起连接到这台中转服务器,由中转服务器负责转发双方的数据包。这种方式成功率最高,因为内网设备主动发起的出站请求几乎不会被路由器拦截。

简易Python中转示例

中转服务器代码:

import socket
import threading

def relay_data(source_conn, target_conn):
    while True:
        data = source_conn.recv(1024)
        if not data:
            break
        target_conn.sendall(data)
    source_conn.close()
    target_conn.close()

# 初始化中转服务器
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 9999))
server_socket.listen(2)

# 等待两台设备连接
conn1, addr1 = server_socket.accept()
conn2, addr2 = server_socket.accept()

# 启动双向转发线程
threading.Thread(target=relay_data, args=(conn1, conn2)).start()
threading.Thread(target=relay_data, args=(conn2, conn1)).start()

你的游戏客户端和服务端只需修改为连接中转服务器的9999端口,中转服务器会自动完成双方通信数据的互相转发。

2. NAT穿透(UDP优先)

如果不想依赖中转服务器,可以尝试NAT打洞,借助STUN协议获取设备的公网映射地址后直接连接:

  • 用pystun3库获取公网IP和端口:
    from pystun3 import get_ip_info
    
    # 公共STUN服务器示例
    stun_server = "stun.qq.com"
    nat_type, external_ip, external_port = get_ip_info(stun_server=stun_server)
    print(f"公网映射地址: {external_ip}:{external_port}")
    
  • 让服务端将获取到的公网地址通过聊天、邮件等方式传递给客户端,客户端尝试用该地址直接发起连接。
  • 注意:UDP打洞的成功率远高于TCP,若能接受UDP协议,优先采用此方案;TCP打洞对路由器NAT类型要求较高,成功率较低。

3. 利用开放特权端口(80/443)

多数路由器不会拦截80、443这类常用端口的出站/入站请求,你可以尝试:

  • 直接让服务端绑定80端口(需管理员权限:Windows右键以管理员身份运行脚本,Linux加sudo):
    import socket
    
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind(('', 80))  # 绑定80端口
    server.listen(1)
    conn, addr = server.accept()
    # 后续游戏通信逻辑
    
  • 若80端口被系统占用,可通过端口转发工具(比如Windows的netsh命令)将80端口流量转发到你的游戏端口:
    # Windows下,将本地80端口转发到12345端口
    netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=12345 connectaddress=127.0.0.1
    

4. 集成P2P穿透SDK

部分P2P穿透服务提供Python SDK,直接集成到游戏代码中即可实现内网设备间连接,这类服务会自动处理NAT穿透和中转逻辑,无需自行搭建服务器。

内容的提问来源于stack exchange,提问作者Eric Concannon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 22:20:39