☰
Unitree Go2 有线联网与 NoMachine 远程桌面配置指南
2026/9/28 17:03:56 网站建设 项目流程

搞机器人调试这一行,最烦的就是“能跑但连不上”。尤其是Unitree Go2这种四足机器人,开发模式下要怼进去的工具链一大堆——Unitree SDK、ROS2节点、运动可视化、点云数据、仿真联调——全得靠网络往机器人主机上灌。WiFi省事是省事,真到现场你就知道什么叫丢包丢到怀疑人生,一个RPC超时就能让你从下午查到天黑。这套有线联网流程我前前后后踩过好几轮,最后沉淀下来的是一条确定性最高的路:网线插路由器,路由器固定IP,NoMachine远程桌面接管。今天把这套从物理接线到最终画面的完整链路写出来,包括华三路由器上的端口映射怎么配、NoMachine服务端怎么装、连不上怎么排查,希望能帮你少走两趟弯路。

这篇文章适合谁?手里有Go2、准备做二次开发的工程师;实验室里想把机器人当普通“网内设备”统一管理的人;以及刚接触四足机器人、连机器人那根网线该插哪儿都不太确定的新手。你不用会很深的Linux,能敲命令就行,剩下的我会尽量把“为什么这么做”也讲透,而不是给一堆机械步骤。

1. 为什么优先选择有线联网(方案选型与链路拆解)

1.1 无线与有线的真实差距

Go2本身带WiFi能力,机器人可以在无线模式下面向APP和部分SDK工作,初期体验一下没毛病。但做开发就不一样了。WiFi的延迟和抖动受环境干扰影响极大——实验室里AP一多,信道拥挤,你一个ros2 topic echo /imu可能都在跳帧。更麻烦的是,很多数据不是单包传输,点云、图像、日志回传都是大流量,无线一拥堵就会触发TCP重传,表现为“机器人偶尔没响应”,这种间歇性问题比稳定故障难查得多。

有线方案的优势是确定性强:全双工千兆网口,微秒级链路延迟,没有无线重传和信道争抢,配合交换机/QoS还能进一步保证控制指令优先。对Go2这种实时性要求高的运动控制场景,调试运动参数、跑步态算法时,有线连接几乎是必须的。

另外提醒一个容易忽略的点:Go2机身内部跑的是Ubuntu系统,运动控制服务和上层ROS节点都在这个主机里,你连上它的本质就是连一台在四条腿上跑路的Linux电脑。用网线把它挂到和你的PC同一张局域网里,是最接近“正常开发服务器”的用法。

1.2 整套链路里都有谁

从物理层到应用层,完整链路是这样的:Go2机身网口 → 网线 → 路由器LAN口 → 路由器DHCP/静态绑定分配固定IP → NoMachine服务端(机器人内Ubuntu)监听TCP 4000端口 → 你的PC上的NoMachine客户端发起连接。

这个链路里最核心的一个设计是:NoMachine基于NX协议,底层走的是加密的SSH通道。这意味着你只要确保4000端口可达,就能拿到机器人的完整桌面会话,包括剪切板共享、文件传输和音频转发。相比裸SSH只有命令行,NoMachine能直接开RViz、看GUI程序,做可视化调试会舒服非常多。

1.3 需要准备的东西

  • Go2机器人一台,电量和急停开关状态确认好
  • 网线一根,建议CAT5e以上,长度按现场距离来,别用劣质扁线
  • 路由器一台,本文以华三(H3C)路由器为例讲解,其他品牌思路通用
  • 一台装有NoMachine客户端的电脑,Windows/Linux/macOS都行
  • 机器人的Ubuntu登录账号密码(出厂默认在官方手册里,拿到机器人第一件事建议改掉)

把东西备齐,下面开始一步步来。

2. 路由器设置与IP规划(以华三路由器为例)

2.1 先让机器人出现在路由器的“住户名单”里

物理接线这一步没什么花头:把网线一头插Go2机身背部的网口,另一头插路由器的LAN口。注意别插到WAN口,WAN口是接光猫/上级网络的,插错的话机器人只能“上网”但你的PC找不到它。

开机后,登录路由器管理界面。华三路由器默认管理地址一般是192.168.1.1或192.168.0.1,不确定就在PC上打开命令行敲ipconfig(Windows)或ip r(Linux),看“默认网关”那一栏就是路由器地址。浏览器打开后用路由器背面标签上的账号密码登录。

进去之后找“客户端列表”或“DHCP客户端列表”,一般路径是“设备管理→用户管理”或“高级设置→DHCP→客户端列表”。你会看到一串设备,怎么认出哪个是Go2?两个办法:

  • 看主机名,Go2主机的hostname走默认配置时通常会带unitree或go2字样
  • 看MAC地址,机器人网卡的MAC前缀去官方文档或设备标签核对,比主机名更可靠

记下机器人拿到的IP,先ping一下确认通不通。通了就说明物理链路和DHCP都正常,已经具备远程连接的基础条件。

2.2 固定IP比你想的更重要

DHCP分配的IP是租约制,到期或重启后可能变化。你要是每次开机都要去路由器后台翻一遍机器人新IP,那NoMachine连接就成开盲盒了。我强烈建议做DHCP静态绑定,把机器人的MAC地址和指定IP绑死。

华三路由器上的操作路径通常是“高级设置→DHCP→静态绑定”,不同型号叫法略有差异,有的叫“地址保留”或“固定IP分配”。填三项:

  • MAC地址:机器人网卡的MAC
  • IP地址:你想固定给它的地址,比如192.168.1.50,建议选在DHCP地址池之外或用保留段,避免冲突
  • 描述:写“Go2-Dev”,方便以后认

保存后重启路由器或让机器人重新获取IP,之后每次开机它都会稳定拿到这个IP。这一步是整个流程里性价比最高的操作,建议不管用不用端口映射都做。

2.3 端口映射什么时候才需要做

很多人一看到“远程控制机器人”就想到端口映射,其实这是分场景的:

  • 你的PC和Go2在同一台路由器下(同一个局域网):不需要端口映射,直接连机器人的内网IP加4000端口即可
  • 你在外面,想通过公网访问实验室里的机器人:需要端口映射,把路由器WAN口的某个端口映射到机器人内网IP的4000端口

如果确实需要公网访问,华三路由器的端口映射一般是“高级设置→NAT/转发规则→虚拟服务器”(有些型号叫“端口映射”)。添加一条规则:

  • 外部端口:4000(建议换成非常规端口,比如14000,降低被扫描概率)
  • 内部IP:你固定的机器人IP,比如192.168.1.50
  • 内部端口:4000
  • 协议:TCP

保存后,理论上用“公网IP:外部端口”就能连上。但这里有两个前提你得确认:一是你的宽带得有公网IP,运营商如果给你的是内网IP,映射做了也白做;二是很多家用路由器默认开启NAT回环限制,你在家里用公网IP访问自己会失败,这不代表配置错了,用手机流量或让外部朋友测试才准确。我的建议是:大多数开发场景根本不需要公网映射,老老实实待在同一个局域网里最省心,也最安全。

2.4 华三路由器常见的坑

华三路由器在企业里的保有量很大,型号从ER系列到小贝、MSR都有,菜单结构不统一,我遇到过几个反复出现的坑:

第一是登录密码忘了。小路由一般有Reset孔,长按恢复出厂即可,但注意恢复后整机配置清空,所有设备的静态绑定都要重做,所以别轻易按。

第二是DHCP地址池耗尽。实验室设备一多,默认地址池可能不够分,机器人拿不到IP会显示“未识别的网络”。去“DHCP服务”里把地址池调大,或者把机器人固定到一个空闲IP段。

第三是端口映射配置了但外网不通。除了前面说的公网IP问题,还要检查WAN口选择是否正确——现在很多路由器支持多WAN或多拨,映射要绑定到实际出去的WAN口,绑错了自然不通。

3. Go2机器人端配置与NoMachine服务端安装

3.1 找到网口、开机、先想办法连通

Go2的网口在机身背部,有个橡胶防尘盖盖着,掀开就能看到千兆网口。插线时听到“咔哒”声才算到位,路由器对应LAN口的指示灯亮起、机器人的网口指示灯闪烁,物理层就算OK。

开机后机器人的Ubuntu会自动启动。如果你运气好,DHCP给你分了个地址,那直接在PC上ssh unitree@机器人IP就能进去;如果没通,大概率是机器人侧配置的是固定IP,那就得先搞清它的网段。

一个通用技巧:用arp-scan扫一下网段,很多情况下一扫就能发现机器人的IP。

sudo arp-scan --local

或者用nmap扫常见网段:

sudo nmap -sn 192.168.1.0/24

看到未知设备的MAC和厂商信息后,和路由器后台对照一下就能锁定它。如果实在扫不到,就用HDMI接显示器、USB键盘直接操作机器人,把网络配置改成DHCP或静态IP,改完再拔显示器走远程。

3.2 安装NoMachine前的系统确认

NoMachine是跨平台的,但机器人的Ubuntu是ARM64还是AMD64架构,直接决定了你下载哪个安装包。Go2的主机是嵌入式平台,一般跑的是ARM架构,但不同批次可能不一样,千万别想当然。先SSH或本地终端进去确认:

uname -m dpkg --print-architecture

如果是aarch64或arm64,下载ARM64的deb包;如果是x86_64,下载AMD64的deb包。这一步错了后面大概率装不上,报错的提示通常还不明显。

另外确认系统里有桌面环境。NoMachine的本质是把远程桌面呈现给你,没有桌面环境的话,连上了也只有一个黑屏终端。Ubuntu桌面版一般自带GNOME,如果你拿到的是迷你版或Server版,需要先装上桌面:

sudo apt update sudo apt install ubuntu-desktop

这个包比较大,装的时候要有耐心。

3.3 安装NoMachine服务端(deb包方式)

从官网下载对应架构的deb包,官网下载页会直接给你当前系统对应的安装包链接。下载后传到机器人上,或者直接在机器人浏览器里下载,然后安装:

sudo dpkg -i nomachine_*.deb

如果报依赖错误,执行:

sudo apt -f install -y

安装完成后,NoMachine服务会自动注册为系统服务。确认一下运行状态:

sudo systemctl status nxserver

或者用NoMachine自带的管理命令:

sudo /etc/NX/nxserver --status

看到“NX Server is running”之类的输出就是正常的。默认情况下NoMachine监听4000端口,用ss -tlnp | grep 4000能看到监听状态,这一步可以在后面排查时用上。

还需要注意:NoMachine连接时用的是机器人Ubuntu里的真实用户账号和密码,不是另设一个“NoMachine密码”。所以你在客户端输入的是机器人的登录用户名、密码。建议连接前先确认该用户密码有效,不行就用passwd改一遍。

3.4 没有路由器也能跑:点对点直连备选方案

有一种情况很常见:人在现场,手边没有路由器,只有一根网线和一台PC。这时候可以把PC和Go2直连,手动配同网段IP。

比如机器人侧静态IP是192.168.123.161(只是举例,以你设备实际配置为准),那PC侧就配一个同网段的地址:

sudo ip addr add 192.168.123.2/24 dev eth0 sudo ip link set eth0 up

Windows下就在“网络适配器→属性→IPv4”里手动填IP: 192.168.123.2,掩码255.255.255.0,网关可以留空。配好后ping 192.168.123.161,通了就可以直接走NoMachine。

这个方案适合临时救急,坏处是没法多台设备同时访问机器人,而且一台PC一个IP,管理混乱。有条件还是建议按第2章走路由器方案。

4. 电脑端NoMachine连接与显示调优

4.1 新建连接与参数说明

电脑端从官网下载对应系统版本安装,Windows、Linux、macOS都有客户端。安装完打开,点击“New”新建连接,核心就几个字段:

  • Host:机器人的IP,比如192.168.1.50
  • Port:默认4000,保持默认
  • Protocol:选NX,不要选VNC或SSH,NoMachine的NX协议在同等带宽下画质和流畅度好很多

保存后双击连接,第一次会提示确认主机指纹,接受后输入机器人Ubuntu的用户名和密码,就进去了。整个过程和连一台远程Linux服务器没什么区别,但注意NoMachine默认会接管桌面会话而不是新建临时会话,如果你在用本地显示器操作机器人,可能会看到会话被切走——这是正常的,远程和本地共用一个桌面。

4.2 性能优化:做可用远程桌面,不做PPT动画演示

Go2自带的主机性能有限,尤其你在远程跑RViz、看点云的时候,画面一复杂就会卡。连接时可以在NoMachine连接窗口的“Settings”里调整,我实测下来这几项收益最大:

  • 显示分辨率:别贪高,1080p对于调试界面完全够用,设成和机器人本地屏幕一致或略低,减少编码压力
  • 色彩深度:从“真彩色”降到“256色”或“中质量”,传感器可视化对色彩要求不高,流畅度提升明显
  • 关闭桌面特效:Ubuntu GNOME里可以把动画、透明效果关掉,或者直接装个轻量桌面(XFCE)作为会话环境,远程体验会好非常多
  • 音频与麦克风:不需要就全关,省带宽又减少杂音干扰

另外,如果机器人主机用的是NVIDIA Jetson这类带GPU的平台,NoMachine里可以开启硬件编码相关选项,实测对画面流畅度有质的提升。具体选项在连接会话的设置面板里,名字大致是“Use hardware acceleration”或类似,找到并勾上。

4.3 连接之后能干什么:一个典型的调试工作流

连上NoMachine后,我日常的开发流程基本是:打开终端启动Unitree SDK或ROS2的launch文件,再开一个RViz窗口看机器人状态和传感器数据,需要时直接把日志文件拖拽到本地电脑分析。NoMachine的剪切板是共享的,在机器人上ctrl+c复制的东西可以直接粘到Windows里,这个细节做日志排查时很爽。

如果只是跑命令行任务,用SSH更快;但只要涉及GUI——调参面板、可视化、多窗口联调——NoMachine的体验远超X11转发。尤其当你人在办公室,机器人在实验室,通过NoMachine远程操作,就像坐在机器人旁边一样。

5. 常见问题与排查实录(速查表)

5.1 完全连不上,卡在哪一步

遇到“NoMachine无法连接”别慌,按层来定位。我整理了一个排查顺序,基本覆盖90%的情况:

现象排查方向处理方法
ping不通机器人IP物理链路或IP配置查网线插紧没、路由器指示灯亮没;确认PC与机器人在同一网段
ping通但4000端口不通机器人端NoMachine未运行或防火墙拦截SSH进机器人执行systemctl restart nxserver;检查ufw status,有防火墙就sudo ufw allow 4000
端口通但连接卡在验证账号密码或NX服务异常确认用户名密码正确;查看/etc/NX/nxserver --status有无异常输出
连接过程中秒断网络质量差或带宽不足确认全程走网线,不要在机器人端用WiFi;降低连接画质设置
能连上但黑屏桌面环境问题确认机器人上有桌面环境;尝试在NoMachine设置里切换显示服务器

最实用的端口探测命令是nc,在PC上执行:

nc -vz 192.168.1.50 4000

通了会显示open,不通会显示超时或拒绝。这一步能快速区分“网络问题”和“NoMachine服务问题”。

5.2 连上了但画面卡、延迟高

画面卡不一定是网络问题。我遇到过机器人电池电量偏低,Jetson降频导致画面编码跟不上,表现为远程桌面整体变慢。先看机器人侧资源占用:

top

CPU跑满的话,优先关掉占资源的后台程序再谈优化。另外检查PC是不是还在用WiFi连路由器,PC侧也建议插网线。还有一个容易被忽略的因素:同时连接NoMachine的会话数太多。NoMachine支持多会话,但多人接入会抢占资源,调试时最好独占一个会话。

如果只是偶发卡顿,检查网线质量——五类线的千兆握手不稳定时,链路会自动降级到百兆,表象就是“时好时坏”。用ethtool eth0看一眼速率最直接:

sudo ethtool eth0

看到Speed: 1000Mb/s才算达标,如果是100Mb/s,基本可以断定线材或网口接触问题。

5.3 路由器、端口映射相关的典型问题

  • 端口映射配置了,但在局域网内用公网IP访问不通:这大概率是NAT回环限制,属于正常现象,不代表配置失败。用手机流量做外网测试,或者干脆在局域网内直接用内网IP。
  • 做静态绑定后机器人IP没变过来:机器人侧可能缓存了旧租约,重启机器人网络或路由器即可。
  • 配置了多个机器人,端口怎么规划:每个机器人的内部都是4000端口,外部可以映射成4001、4002……通过不同外部端口区分,内部IP各自固定好就行。
  • 映射端口被扫描攻击:公网开放SSH类端口容易招来暴力破解,强烈建议映射外部端口用非常规端口号,且机器人系统的密码要足够复杂。

做端口映射还有一个安全底线:能不暴露公网就不暴露公网。多数开发场景下,同局域网访问完全够用;真要跨网访问,优先考虑有认证机制的远程办公方案,而不是裸奔一个4000端口到公网。

5.4 一个小习惯,能帮你省半天

把机器人的IP、账号、MAC地址这些信息,用标签纸贴在机身上或记在固定文档里。排列组合一下:出现过好几次“新同事问机器人IP,所有人都不记得,最后去路由器后台翻半天”的情况。IP固定后把信息沉淀下来,组内协作效率会高很多。

最后再分享几个实操体会

整个流程跑通之后,我个人目前的固定做法是:机器人通过有线接入实验室的华三路由器,DHCP静态绑定一个固定IP;NoMachine端口保持默认4000;电脑端保存好连接配置,分辨率设为1280x720,关闭音频转发,开启硬件加速——这套组合在千兆局域网下,远程拖RViz窗口基本感觉不到明显延迟。

有过几次踩坑,也总结出三条最想提醒别人的经验:一是刚拿到机器人先改默认密码再谈联网,安全意识不能省;二是机器人端网络配置建议用系统自带的netplan或nmcli来管理,不要在/etc/network/interfaces里手动改,否则软件更新后可能被覆盖;三是任何一次改动机器人网络配置前,先备份原配置,真出了问题能秒回滚——机器人不比普通电脑,真连不上了还得跑到现场去接显示器,成本高得多。希望你配完之后,能把精力花在算法和调试上,而不是陪网络斗智斗勇。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询