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

Unity Netcode For GameObject无法连接远程服务器求助

Unity Netcode for GameObjects 远程EC2服务器连接问题排查方案

1. 对齐Netcode传输协议配置

  • 确认服务器与客户端的Netcode Transport配置完全一致:
    • 若服务器通过netstat确认监听TCP 55000,需检查客户端的Transport组件(如UnityTransport)是否设置为TCP模式,而非默认的UDP。
    • 核对两端的端口号、传输协议,避免出现“服务器用TCP、客户端用UDP”的协议不匹配问题。

2. 验证客户端连接地址正确性

  • 客户端必须使用EC2实例的公网IPv4地址进行连接,禁止使用内网IP或localhost。可在AWS EC2控制台的实例详情页获取当前公网IP。
  • 检查客户端代码中NetworkManager.Singleton.StartClient()传入的地址参数,确保是最新的EC2公网IP。

3. 排查Linux实例本地防火墙

AWS安全组开放端口后,Linux系统自身的防火墙(如firewalld或iptables)可能拦截流量:

  • 查看当前防火墙规则:
    • 对于firewalld:执行sudo firewall-cmd --list-ports
    • 对于iptables:执行sudo iptables -L -n
  • 若55000/TCP未在允许列表中,添加规则并重启防火墙:
    • firewalld:sudo firewall-cmd --add-port=55000/tcp --permanent && sudo firewall-cmd --reload
    • iptables:sudo iptables -A INPUT -p tcp --dport 55000 -j ACCEPT && sudo service iptables save

4. 检查Netcode启动与连接逻辑

  • 服务器端确保以专用服务器模式启动:确认代码中调用NetworkManager.Singleton.StartServer(),而非StartHost()(Host模式会同时启动客户端,不适用于远程部署)。
  • 客户端连接时,确认未遗漏必要的ConnectionData(若业务需要),且调用StartClient()前已正确设置NetworkManager.Singleton.NetworkConfig.ServerAddress。
  • 开启Netcode详细日志排查:
    • 服务器端运行时输出日志到文件:./YourServerBinary > server.log 2>&1,查看server.log中的连接错误信息。
    • 客户端在Unity编辑器Console中,将Netcode日志级别设为Verbose,查看连接过程中的报错(如超时、协议不兼容)。

5. 检查VPC网络ACL配置

VPC网络ACL是VPC层面的流量控制规则,需确认:

  • 入站规则允许TCP 55000端口的流量(源地址设为0.0.0.0/0)。
  • 出站规则允许响应流量(目标地址设为0.0.0.0/0,端口范围包含客户端使用的临时端口)。

6. 验证UDP连通性(若使用UDP传输)

若Netcode实际使用UDP协议(即使服务器监听TCP是误判),需测试UDP端口连通性:

  • 在本地执行nc -u <EC2公网IP> 55000,输入任意字符发送UDP数据包。
  • 查看服务器日志是否接收到数据包,或通过tcpdump在EC2实例抓包确认:sudo tcpdump -i any port 55000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:14:55