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

同一局域网下Unity C#服务端与Python客户端跨设备无法通信问题求助

同一局域网下Unity C#服务端与Python客户端跨设备通信故障解决方案

问题背景

需要将Ubuntu笔记本上连接的Wii平衡板数据,通过Socket传输到Windows台式机的Unity程序中,更换笔记本系统为Ubuntu后跨设备通信失败,本地运行通信正常,可排除代码本身问题。

运行环境

  • 服务端:Windows 10 台式机,Unity C# TcpListener监听0.0.0.0:25565
  • 客户端:Ubuntu 18.08 LTS 笔记本,Python Socket客户端请求连接192.168.0.38:25565

已确认排查项

  • IP地址、端口配置无误
  • Unity及编译程序已添加Windows防火墙例外
  • 台式机本地运行Python客户端可正常和服务端通信
  • 笔记本切回Windows系统运行相同代码仍无法通信

可能的故障原因

  • 路由器网段/AP隔离:绝大多数家用路由器默认开启AP隔离功能,禁止同一WiFi下的客户端互相通信;如果台式机用有线、笔记本用WiFi,部分路由器还会隔离有线、无线两个网段,导致跨设备TCP连接无法建立。
  • Windows防火墙规则配置错误:仅添加Unity程序的例外规则可能不生效,常见问题包括当前局域网被识别为公网、仅放开程序出站权限未放开端口入站权限、规则仅对特定网络位置生效。
  • Ubuntu防火墙出站拦截:若手动修改过Ubuntu的ufw防火墙配置,可能会拦截25565端口的TCP出站请求,导致客户端请求无法发出。
  • IP地址冲突:局域网内有其他设备占用了台式机的192.168.0.38IP,导致客户端请求被发送到错误设备,无法和服务端建立连接。

分步排查操作

  1. 测试基础网络连通性:在Ubuntu终端执行 ping 192.168.0.38,如果无法ping通或丢包率过高,进入路由器管理后台关闭AP隔离、有线无线隔离功能,确认两台设备子网掩码一致、处于同一网段。
  2. 测试端口连通性:ping通的前提下,在Ubuntu终端执行 nc -zv 192.168.0.38 25565,如果提示连接失败,进入Windows防火墙高级设置,添加入站规则:选择端口类型→TCP→特定本地端口填25565→允许连接→仅勾选专用网络→保存生效。
  3. 检查Ubuntu防火墙配置:在Ubuntu终端执行 sudo ufw status,如果防火墙处于active状态,执行 sudo ufw allow out 25565/tcp 放开对应端口的出站权限。
  4. 排查IP冲突:关闭台式机的Unity服务端后,再次执行nc端口测试命令,如果仍然能连上25565端口,说明存在IP冲突,修改台式机为静态IP即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:12:01