新闻详情

新闻详情

首页 / 资讯中心 / 详情

宇树G1机器人SSH远程连接与网络调试实战指南

发布时间:2026/9/25 4:23:27来源:尧图网络
宇树G1机器人SSH远程连接与网络调试实战指南
1. 宇树G1机器人SSH连接实战从零搭建远程调试链路宇树G1这台人形机器人拿到手第一件事不是急着让它走路而是先把远程连接打通。为什么因为G1本体上跑的是Ubuntu系统板载算力有限你不可能每次都蹲在机器人旁边接显示器敲键盘。SSH连接是后续所有开发工作的基础设施——无论是改代码、传文件、看日志还是跑调试脚本都得先有一条稳定的远程通道。我前后折腾过好几台G1也帮同事配过不少次踩过的坑主要集中在网络配置和SSH权限这两块。这篇文章就把整个流程拆开讲清楚从MobaXterm的安装配置到网络调试的完整链路再到常见问题的排查方法争取让你一次搞定。适合谁看如果你刚拿到G1或者之前没怎么接触过Linux远程连接这篇就是给你写的。有经验的老手也可以看看网络调试那部分G1的网络配置有几个容易忽略的细节。2. 为什么选MobaXterm而不是其他SSH工具2.1 SSH工具选型的几个核心考量Windows下连SSH的工具有很多PuTTY、Xshell、MobaXterm、Windows Terminal自带的ssh命令甚至VS Code的Remote-SSH插件。我选MobaXterm作为主力工具原因有几个。第一是一体化。MobaXterm自带SFTP文件浏览器左边是终端右边是文件树拖拽就能传文件。调试机器人经常需要改配置文件、传脚本、下载日志有这个文件面板省事太多。PuTTY要单独开WinSCPXshell的文件传输也没这么顺手。第二是会话管理。G1调试可能涉及多个连接目标——机器人本体、机载计算机、遥控器端的树莓派每个都有不同的IP和端口。MobaXterm的会话保存功能可以一键切换不用每次重新输IP和密码。第三是X11转发。G1上跑的一些可视化工具比如RViz、rqt需要图形界面MobaXterm内置X Server连上之后直接就能弹出窗口不需要额外装VcXsrv或者Xming。这个在调试SLAM和导航的时候特别有用。第四是免费版够用。MobaXterm家庭版免费功能没有阉割对个人开发者来说完全足够。Xshell免费版有会话数量限制PuTTY又太简陋。注意MobaXterm有安装版和便携版两种建议下便携版解压就能用换电脑直接拷走配置也跟着走。2.2 MobaXterm的下载与安装要点官网下载的时候注意选对版本。Home Edition是免费的Professional Edition要收费。下载页面有两个包Installer edition和Portable edition。我推荐Portable edition原因前面说了便携。安装过程没什么好说的一路Next就行。但有几个设置建议在第一次打开的时候就改掉关闭自动更新检查Settings → Configuration → General → 取消勾选“Check for updates on startup”。调试现场网络可能不通外网每次弹更新提示很烦。设置默认字体Settings → Configuration → Terminal → Font settings。默认字体在中文环境下显示有点挤换成Consolas或者JetBrains Mono字号12-14比较舒服。开启日志保存Settings → Configuration → Terminal → Logging。建议勾选“Automatically save terminal output to file”路径设一个固定目录。调试机器人经常需要回溯之前的输出有日志文件省得重新跑一遍。2.3 中文界面设置方法MobaXterm默认是英文界面网上搜“mobaxterm怎么改中文”的人不少。说实话MobaXterm官方并没有提供中文语言包所谓的“汉化”都是第三方做的稳定性参差不齐。我的建议是不要汉化英文界面用两天就习惯了汉化版反而可能引入奇怪的bug。如果你确实需要中文环境有两个折中方案一是用Windows Terminal ssh命令Windows Terminal可以配合中文输入法使用二是用VS Code的Remote-SSH插件VS Code本身有中文语言包远程连接体验也不错。但MobaXterm的X11转发和文件面板是VS Code比不了的所以我还是主力用MobaXterm。3. G1网络配置与SSH连接的前置准备3.1 G1的网络接口与默认配置宇树G1本体上有一个千兆网口默认IP段是192.168.123.x。这个网段是宇树内部用的机器人本体的地址通常是192.168.123.161机载计算机可能是192.168.123.162或者别的。具体地址取决于你买的配置版本拿到手第一件事是确认清楚。连接方式有两种直连用网线把电脑和G1的网口直接连起来。这种方式最简单但需要把电脑的网卡IP设成192.168.123.x网段的静态地址比如192.168.123.100子网掩码255.255.255.0。通过路由器/交换机把G1和电脑都接到同一个路由器上。这种方式的好处是电脑还能同时上网但需要确认路由器的DHCP没有把G1的地址分走或者G1本身是静态IP。我一般用直连因为调试现场不一定有路由器直连最可靠。直连的时候电脑要设静态IP步骤是控制面板 → 网络和共享中心 → 更改适配器设置 → 右键以太网 → 属性 → Internet协议版本4 → 使用下面的IP地址。填192.168.123.100掩码255.255.255.0网关不填。注意设完静态IP之后电脑可能暂时上不了网这是正常的。调试完记得改回自动获取。3.2 验证网络连通性设好IP之后先ping一下机器人ping 192.168.123.161如果通说明物理链路和IP配置没问题。如果不通按这个顺序排查网线是不是插好了G1的网口有指示灯插上之后灯会亮。电脑的静态IP设对了吗ipconfig看一下。防火墙是不是拦了Windows防火墙有时候会拦ICMP临时关掉试试。G1是不是还没启动完G1开机需要一两分钟系统完全起来之前网络服务可能没就绪。ping通之后再确认SSH端口是不是开的telnet 192.168.123.161 22如果显示Connected说明22端口是通的。如果连不上可能是SSH服务没启动需要接显示器到G1上检查。3.3 G1上的SSH服务配置G1出厂时SSH服务通常是开着的但有些版本可能没开。如果22端口不通需要接上显示器和键盘在G1本机上操作sudo systemctl status ssh如果显示inactive就启动它sudo systemctl start ssh sudo systemctl enable sshenable是为了开机自启不然每次重启都要手动开。另外检查一下SSH配置文件sudo nano /etc/ssh/sshd_config确认这几项Port 22端口号默认22就行PermitRootLogin建议设成no用普通用户登录后再sudoPasswordAuthentication yes允许密码登录初期调试方便改完配置要重启SSH服务sudo systemctl restart ssh4. MobaXterm连接G1的完整操作流程4.1 创建SSH会话打开MobaXterm点左上角的Session按钮选SSH。填写Remote host192.168.123.161Specify username勾上填G1上的用户名。宇树默认的用户名通常是unitree或者user具体看你的机器。Port22点OK之后会提示输入密码。宇树G1的默认密码一般是123或者unitree同样看版本。第一次连接会弹一个主机密钥确认点Accept就行。连上之后左边会出现SFTP文件面板右边是终端。终端里可以敲命令文件面板可以拖拽传文件。4.2 会话保存与快速切换第一次连上之后MobaXterm会自动把这个会话保存到左侧的会话列表里。右键可以重命名比如改成“G1-本体”。如果还有别的设备比如机载计算机、遥控器分别建会话命名清楚。会话多了之后可以用文件夹分组。右键左侧空白处 → New folder把相关的会话拖进去。我一般按项目分比如“G1调试”、“G1导航”、“G1视觉”这样。4.3 使用SSH密钥免密登录每次输密码太麻烦配SSH密钥可以免密登录。步骤在MobaXterm的终端里生成密钥对ssh-keygen -t rsa -b 4096一路回车默认保存在~/.ssh/id_rsa。把公钥传到G1上ssh-copy-id unitree192.168.123.161输入一次密码之后就不用再输了。如果ssh-copy-id不能用手动传cat ~/.ssh/id_rsa.pub | ssh unitree192.168.123.161 mkdir -p ~/.ssh cat ~/.ssh/authorized_keys注意Windows下用MobaXterm生成密钥时.ssh目录的权限可能会出问题。如果遇到bad owner or permissions on c:\users\thinkpad/.ssh/config这个报错说明权限太开放了。解决方法是在Windows的%USERPROFILE%\.ssh目录上右键 → 属性 → 安全 → 高级 → 禁用继承 → 删除所有用户只保留你自己。或者用icacls命令icacls %USERPROFILE%\.ssh /inheritance:r icacls %USERPROFILE%\.ssh /grant:r %USERNAME%:F4.4 MobaXterm的实用功能配置日志保存前面提过在Settings里开自动保存。每个会话的日志会存成单独的文件文件名带时间戳。调试的时候如果机器人突然抽风翻日志就能找到线索。循环执行命令MobaXterm有个Macro功能可以录制一串命令然后循环执行。比如你想每隔5秒看一次某个话题的数据可以录一个rostopic echo的宏设成循环。不过更推荐直接在终端里用watch命令watch -n 5 rostopic echo /joint_states多标签MobaXterm支持标签页可以同时开多个会话。比如一个标签跑roscore一个标签跑rviz一个标签看日志。快捷键CtrlTab切换。X11转发连上G1之后如果G1上装了图形工具直接运行就会弹窗。比如rvizMobaXterm会自动处理X11转发窗口弹在Windows上。如果弹不出来检查Settings → Configuration → X11 → 确认X11 forwarding是开的。5. 网络调试的进阶操作与工具配合5.1 用网络调试助手排查UDP通信G1的很多传感器数据是通过UDP广播的比如IMU、关节状态。如果ROS话题收不到数据可能是UDP包没发出来或者被防火墙拦了。这时候可以用网络调试助手比如网络调试助手v5.0.3来抓包。用法在Windows上打开网络调试助手选UDP绑定端口比如8888然后让G1往这个端口发数据。如果收到了说明G1的UDP发送正常问题在ROS的订阅端。如果收不到检查G1的发送配置和Windows防火墙。注意Windows防火墙默认会拦UDP入站。调试的时候临时关掉防火墙或者给网络调试助手加白名单。5.2 用Wireshark做深度抓包网络调试助手只能看应用层要看更底层的信息得用Wireshark。在Windows上装Wireshark选对网卡连G1的那张过滤条件设ip.addr 192.168.123.161就能看到所有往来包。常见问题如果看到大量TCP重传说明网络质量差可能是网线接触不良或者网口协商速率有问题。如果看到UDP包发出去了但没回应说明对端没监听。5.3 VS Code Remote-SSH作为补充MobaXterm适合命令行操作但写代码还是VS Code舒服。VS Code的Remote-SSH插件可以直接连G1在本地编辑文件保存后自动同步到远程。配置方法装Remote-SSH插件CtrlShiftP → Remote-SSH: Connect to Host → 输入unitree192.168.123.161连上之后打开远程文件夹就能像本地一样编辑了VS Code Remote-SSH和MobaXterm可以同时用互不冲突。我一般用MobaXterm跑命令用VS Code改代码。5.4 Git SSH配置与代码同步G1上如果要从Git仓库拉代码需要配SSH密钥。步骤和前面配免密登录类似但公钥要传到Git服务器比如GitLab、GitHub。ssh-keygen -t rsa -b 4096 -C your_emailexample.com cat ~/.ssh/id_rsa.pub把输出的公钥复制到GitLab的Settings → SSH Keys里。然后测试ssh -T gitgitlab.com如果显示Welcome说明配好了。注意G1上可能没有外网拉代码需要通过内网Git服务器。如果内网Git服务器用的是自签名证书可能还需要配git config --global http.sslVerify false但这样不安全建议把证书加到信任列表里。6. 常见问题与排查技巧实录6.1 SSH连接失败排查表现象可能原因排查方法解决方法ping不通网线没插好看网口指示灯重新插网线ping不通IP设错ipconfig检查改成192.168.123.100ping通但SSH连不上SSH服务没启动接显示器查systemctl status sshsudo systemctl start sshSSH连上但秒断密钥权限问题看MobaXterm报错修.ssh目录权限连上但很卡网络质量差Wireshark看重传换网线或换网口X11弹不出窗口X11转发没开检查MobaXterm设置开启X11 forwarding6.2 Ubuntu SSH无法连接的几种情况G1上跑的是UbuntuSSH连不上的原因和普通Ubuntu服务器类似。最常见的是SSH服务没启动其次是防火墙拦了22端口。Ubuntu默认的ufw防火墙如果开了需要放行sudo ufw allow 22还有一种情况是SSH配置改了但没重启。改完sshd_config必须sudo systemctl restart ssh不然不生效。如果报Connection refused说明端口没开如果报Connection timed out说明网络不通或者防火墙DROP了包。6.3 MobaXterm保存日志的正确姿势MobaXterm的日志功能有个坑默认只保存终端输出不保存你输入的命令。如果要连输入一起保存需要在Settings → Configuration → Terminal → Logging里勾选“Include keystrokes in log file”。但这样日志里会混入你的按键看起来比较乱。我的做法是开两个日志一个保存输出一个用script命令在终端里录完整的会话。script -a /tmp/session_$(date %Y%m%d_%H%M%S).log这样连输入带输出全录下来退出时敲exit结束录制。6.4 实操心得与避坑建议坑一静态IP和DHCP冲突。如果电脑之前连过其他网络网卡可能还留着DHCP的配置。设静态IP的时候一定要把“自动获取IP”关掉不然两个配置打架网络时通时不通。坑二G1的网口速率协商。有些网线质量差千兆协商不成功会降到百兆甚至半双工。表现是ping通但SSH很卡。换根好网线或者在G1上强制设速率sudo ethtool -s eth0 speed 1000 duplex full autoneg off坑三MobaXterm的X11转发和Windows缩放冲突。高DPI屏幕下X11弹出来的窗口可能模糊。解决方法是右键MobaXterm快捷方式 → 属性 → 兼容性 → 更改高DPI设置 → 勾选“替代高DPI缩放行为”选“应用程序”。坑四SSH密钥配了但还是提示输密码。检查G1上~/.ssh目录权限必须是700authorized_keys必须是600。权限不对SSH会忽略密钥。chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys坑五MobaXterm循环执行命令导致机器人卡死。用Macro循环跑高频命令比如1秒一次rostopic pub可能会把G1的CPU占满。循环间隔建议不低于5秒而且不要在循环里跑重负载命令。7. 多设备管理与批量操作7.1 同时连接多台G1如果手上有好几台G1IP分别是192.168.123.161、162、163可以在MobaXterm里建多个会话然后用“MultiExec”模式同时往所有会话发命令。开启方法View → MultiExec mode然后在每个标签里勾选要同步的会话。这样敲一次命令所有G1同时执行。批量操作的时候要小心比如sudo reboot会让所有机器人同时重启。建议先在小范围测试。7.2 SSH批量登录脚本如果设备多到MobaXterm管不过来可以用脚本批量登录。Windows下可以用PowerShell$hosts (192.168.123.161, 192.168.123.162, 192.168.123.163) foreach ($h in $hosts) { Start-Process mobaxterm -ArgumentList -newtab ssh unitree$h }Linux/Mac下更简单for ip in 192.168.123.161 192.168.123.162 192.168.123.163; do ssh unitree$ip hostname uptime done wait这样能一次性拿到所有机器的主机名和负载情况。7.3 用plink做自动化PuTTY套件里的plink可以在命令行下跑SSH命令适合写自动化脚本。比如批量改配置plink -ssh -pw 123 unitree192.168.123.161 echo export ROS_MASTER_URIhttp://192.168.123.161:11311 ~/.bashrcplink的密码是明文写在命令里的不安全建议配合密钥用。-i参数指定私钥文件。注意plink第一次连接会提示保存主机密钥自动化脚本里要加-batch参数跳过交互但这样有中间人风险。内网环境可以接受公网环境不要这么干。8. 网络调试的深层原理与性能优化8.1 ROS通信的网络模型G1上跑的是ROSROS 1的通信模型是TCPROS和UDPROS。话题Topic默认用TCP服务Service也用TCP但有些传感器数据用UDP。ROS Master默认监听11311端口节点之间通过Master交换地址信息然后直接建立TCP连接。调试的时候如果话题收不到数据先确认Master在不在rostopic list如果这个命令卡住说明Master没起来或者网络不通。如果rostopic list能列出话题但rostopic echo没数据说明发布者没发或者订阅者没连上。8.2 网络延迟对控制的影响G1的关节控制对延迟很敏感。如果SSH连接本身延迟高通过SSH跑的控制命令也会延迟。实测下来直连的延迟在0.1ms级别通过路由器在1ms级别通过WiFi在10ms级别。控制频率100Hz的话10ms延迟意味着一个周期的滞后对平衡控制有影响。所以调试控制算法的时候尽量用有线直连不要用WiFi。如果必须用WiFi把控制频率降下来或者把控制算法跑在G1本机上SSH只用来发指令和看状态。8.3 带宽估算与优化G1的传感器数据量不小。一个1280x720的RGB相机30fps压缩后大概2-5Mbps。激光雷达的数据量更大16线雷达大概10-20Mbps。如果同时跑多个传感器千兆网卡可能跑满。优化方法降低相机分辨率或帧率用压缩图像传输image_transport的compressed插件激光雷达降采样把数据处理放在G1本机只传结果用iftop或者nload可以看实时带宽sudo apt install iftop sudo iftop -i eth08.4 SSH隧道转发ROS端口如果电脑和G1不在同一个网段可以通过SSH隧道把ROS端口转发出来。比如G1在192.168.123.161你的电脑在192.168.1.100中间有个跳板机。可以在跳板机上建隧道ssh -L 11311:192.168.123.161:11311 userjumpbox这样本地访问localhost:11311就等于访问G1的11311。ROS_MASTER_URI设成http://localhost:11311就行。注意ROS 1的节点会把自己的地址告诉Master如果地址是内网地址外部节点连不上。需要设ROS_IP或ROS_HOSTNAME环境变量让节点报告正确的地址。9. 从连接稳定到长期维护9.1 开机自启与守护进程调试阶段手动连SSH没问题但长期跑的话最好让G1开机自动启动必要的服务。用systemd写个service文件[Unit] DescriptionG1 Startup Script Afternetwork.target [Service] Typeoneshot ExecStart/home/unitree/startup.sh RemainAfterExityes [Install] WantedBymulti-user.target放到/etc/systemd/system/g1-startup.service然后sudo systemctl enable g1-startup。9.2 连接稳定性监控长期跑的时候SSH可能会断。可以在MobaXterm里开KeepaliveSettings → Configuration → SSH → 勾选“SSH keepalive”间隔设30秒。这样空闲连接不会被防火墙掐断。G1端也可以配sudo nano /etc/ssh/sshd_config加两行ClientAliveInterval 30 ClientAliveCountMax 3意思是每30秒发一次心跳3次没回应就断开。9.3 固件升级与系统备份宇树会不定期发固件更新升级之前一定要备份。备份方法sudo tar -czf /tmp/g1_backup_$(date %Y%m%d).tar.gz /home/unitree /etc/ssh /etc/network把备份文件拷到电脑上存好。升级出问题可以回滚。升级固件一般通过U盘或者网络具体看宇树的说明。升级过程中不要断电不然可能变砖。9.4 安全加固建议调试阶段怎么方便怎么来但如果是长期部署建议做几项安全加固改默认密码禁用root登录只允许密钥登录禁用密码改SSH端口非22配fail2ban防暴力破解sudo apt install fail2ban sudo systemctl enable fail2ban这些操作在调试阶段可以先不做但上线之前一定要做。我个人在实际操作中的体会是G1的SSH连接本身不复杂复杂的是网络环境的多变。直连、路由器、WiFi、跳板机每种场景的配置都不一样。把基础链路打通之后后面的事情就顺了。另外MobaXterm虽然好用但不要过度依赖它的图形功能命令行才是根本。多练练ssh、scp、rsync这些原生命令换到Linux或者Mac环境下一样能用。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Apache Pulsar Functions 部署与运维实战:本地运行、集群模式与 Trigger 全解析 2026/9/25 5:30:33

Apache Pulsar Functions 部署与运维实战:本地运行、集群模式与 Trigger 全解析

消息队列后端流处理 【免费下载链接】pulsar Apache Pulsar - distributed pub-sub messaging system 项目地址: https://gitcode.com/gh_mirrors/pulsar28/pulsar 点击查看 免费下载 Apache Pulsar Functions 是 Pulsar 提供的轻量级、Lambda 风格的计算能力&…

阅读更多 →
RT-Thread 在 NXP LPC55S69-EVK 开发板上的 BSP 使用指南:环境搭建、编译烧写与驱动配置 2026/9/25 5:30:33

RT-Thread 在 NXP LPC55S69-EVK 开发板上的 BSP 使用指南:环境搭建、编译烧写与驱动配置

操作系统嵌入式物联网嵌入式OSRTOS 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/rt/rt-thread 点击查看 免费下载 LPC55S6…

阅读更多 →
Openclaw接入自动发文教程:用TaoToken统一Key打通发布链路 2026/9/25 5:30:26

Openclaw接入自动发文教程:用TaoToken统一Key打通发布链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Abaqus-Simpack联合仿真在车桥耦合振动分析中的应用 2026/9/25 5:30:26

Abaqus-Simpack联合仿真在车桥耦合振动分析中的应用

1. 车桥耦合与地震波浪荷载联合仿真概述在轨道交通和桥梁工程领域,车桥耦合振动分析是一个经典但极具挑战性的课题。当车辆在桥上行驶时,车辆与桥梁之间会产生复杂的动力相互作用,这种相互作用会显著影响桥梁的振动特性和车辆的运行安全性。而…

阅读更多 →
AI Coding 工具实战指南:从原理到落地,用 TaoToken 统一 Key 打通配置链路 2026/9/25 5:30:20

AI Coding 工具实战指南:从原理到落地,用 TaoToken 统一 Key 打通配置链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Kali/Ubuntu Linux 彻底卸载 Cursor 编辑器:dpkg 非空目录警告的清理与验证 2026/9/25 5:30:20

Kali/Ubuntu Linux 彻底卸载 Cursor 编辑器:dpkg 非空目录警告的清理与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉