各位佬友们好,最近在折腾 华为 OrangePi AIpro 20T。为了避免外接显示器、键鼠和无线网络不稳定带来的折腾,我整理了一套“一根网线”开发方案:
通过 Windows 11 ICS 共享上网,让开发板借用宿主机网络;通过 静态 IP 固化,保证每次都能稳定 SSH 连接;最后使用 VS Code Remote - SSH 实现原生远程开发闭环。
本文目标:
-
Win11 笔记本通过网线直连 OrangePi AIpro 20T;
-
OrangePi 通过 Win11 共享网络访问互联网;
-
OrangePi 固定为静态 IP,避免每次查地址;
-
使用 SSH 与 VS Code 远程开发;
-
关闭 Wi-Fi 干扰,尽量保持网络路径纯净稳定。
实测环境:
-
宿主机:Lenovo 82JQ
-
系统:Windows 11
-
开发板:Huawei OrangePi AIpro 20T
-
连接方式:网线直连
官方文档:
1. 宿主机 Win11 侧:开启 ICS 共享上网
1.1 物理连接
使用网线直连笔记本与 OrangePi AIpro 20T 的 2.5G 以太网口。
如果宿主机只有普通千兆网口也没问题,网卡会自动协商到可用速率。
这里需要先明确网络拓扑:
互联网
↓
Win11 的 Wi-Fi 网卡,也就是 WLAN
↓
Windows ICS 共享
↓
Win11 的以太网网卡,地址为 192.168.137.1
↓
网线直连
↓
OrangePi AIpro 20T,地址为 192.168.137.10
也就是说,Win11 上有两张网卡参与这件事:
Wi-Fi / WLAN 网卡:负责连接互联网
以太网 / Ethernet 网卡:负责通过网线连接 OrangePi
注意:用于上网的 Wi-Fi 网卡和用于直连开发板的以太网网卡不是同一张。不要选反。
1.2 开启 Windows ICS 共享
- 按下
Win + R,输入:
ncpa.cpl
然后回车,打开“网络连接”。
- 找到当前真正用于访问互联网的网卡。
一般是正在连接 Wi-Fi 的那张网卡,例如:
WLAN
这张网卡的作用是:连接外部互联网。
- 找到用于直连 OrangePi 的有线网卡。
一般名字类似:
以太网
Ethernet
Realtek USB GbE Family Controller
这张网卡的作用是:通过网线和 OrangePi 通信。
- 右键点击用于上网的 Wi-Fi 网卡,也就是通常叫
WLAN的那张网卡,选择:
属性 -> 共享
- 勾选:
允许其他网络用户通过此计算机的 Internet 连接来连接
- 如果出现“家庭网络连接”下拉框,请选择用于直连 OrangePi 的以太网网卡。
也就是说:
共享来源:WLAN / Wi-Fi
共享目标:以太网 / Ethernet
这一点非常关键。
不是在直连开发板的以太网网卡上开启共享,而是在“能上网的 Wi-Fi 网卡”上开启共享,然后把共享目标选择为“直连开发板的以太网网卡”。
- 点击确定。
此时 Windows 通常会自动把用于直连 OrangePi 的以太网网卡 IPv4 地址设置为:
IP 地址:192.168.137.1
子网掩码:255.255.255.0
默认网关:不用管
- 检查方式:
右键以太网网卡:
属性 -> Internet 协议版本 4 TCP/IPv4 -> 属性
确认它的 IPv4 地址是否为:
192.168.137.1
如果这里不是 192.168.137.1,后面 OrangePi 侧的网关配置也要相应调整。不过默认情况下,Windows ICS 一般会使用 192.168.137.1。
1.3 放行 ICMP,方便 Ping 网关
默认情况下,Windows 可能会拦截入站 Ping 请求,导致开发板无法通过 ping 192.168.137.1 验证网关是否连通。
以管理员权限打开 PowerShell,执行:
New-NetFirewallRule `
-DisplayName "Allow ICMPv4-In from LocalSubnet" `
-Direction Inbound `
-Protocol ICMPv4 `
-IcmpType 8 `
-RemoteAddress LocalSubnet `
-Action Allow
这个规则只允许本地子网内的设备 Ping 宿主机,比直接全局放开更稳妥一些。
2. 开发板 Linux 侧:静态 IP 固化
2.1 先确认网卡名与 Netplan 配置文件
在 OrangePi 上执行:
ip -br link
ip -br addr
ls /etc/netplan/
重点确认两件事:
-
有线网卡名是不是
eth0; -
/etc/netplan/下面实际的 YAML 文件叫什么。
不同镜像里,Netplan 文件名可能不一样,例如:
01-netcfg.yaml
01-network-manager-all.yaml
50-cloud-init.yaml
下面以 /etc/netplan/01-netcfg.yaml 和 eth0 为例。
如果你的文件名或网卡名不同,请替换为自己的实际结果。
2.2 备份原配置
修改网络配置前,建议先备份:
sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak
如果你的 Netplan 文件不是 01-netcfg.yaml,请把命令里的文件名替换为实际文件名。
2.3 编辑 Netplan 配置
执行:
sudo nano /etc/netplan/01-netcfg.yaml
写入或修改为:
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses:
- 192.168.137.10/24
routes:
- to: default
via: 192.168.137.1
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
注意:
-
YAML 严禁使用 Tab;
-
缩进必须对齐;
-
eth0必须换成你实际的有线网卡名; -
192.168.137.10是开发板固定 IP; -
192.168.137.1是 Win11 直连开发板的以太网网卡地址,也是 OrangePi 的默认网关; -
这里的网关不是 Wi-Fi 网卡地址,而是 Win11 上那张直连 OrangePi 的以太网网卡地址。
2.4 应用 Netplan 配置
建议先检查配置:
sudo netplan generate
然后使用:
sudo netplan try
如果没有问题,再执行:
sudo netplan apply
netplan try 的好处是:如果网络配置写错导致连接中断,它可以自动回滚。远程 SSH 修改网络配置时尤其推荐先用它。
3. 修复 hostname 与 hosts 不一致问题
我这里遇到了一个比较奇怪的问题:执行 sudo netplan try 时出现:
unable to resolve host
原因是 /etc/hostname 和 /etc/hosts 中的主机名不一致。
先查看当前 hostname:
cat /etc/hostname
假设输出是:
orangepiaipro-20t
那么 /etc/hosts 里也要保持一致。
编辑:
sudo nano /etc/hosts
修改为类似:
127.0.0.1 localhost
127.0.1.1 orangepiaipro-20t
重点是这一行:
127.0.1.1 orangepiaipro-20t
它必须和 /etc/hostname 一致。
我这里原本是:
orangepiaipro
但 /etc/hostname 里是:
orangepiaipro-20t
所以导致了 unable to resolve host。
4. 关闭 Wi-Fi,避免默认路由冲突
为了避免开发板自动连接 Wi-Fi,导致默认路由被抢、网络路径混乱,建议关闭 Wi-Fi 射频,只通过网线访问网络。
执行:
sudo nmcli radio wifi off
查看状态:
nmcli radio
如果后续需要重新打开 Wi-Fi,可以执行:
sudo nmcli radio wifi on
这一步不是必须的,但如果你和我一样希望开发环境尽量稳定、路径尽量干净,建议关掉。
尤其是开发板自带 Wi-Fi 速度一般时,网线直连会舒服很多。
5. 连通性检查
配置完成后,在 OrangePi 上依次执行:
ip -br addr
ip route
ping -c 4 192.168.137.1
ping -c 4 8.8.8.8
ping -c 4 www.baidu.com
判断方式如下:
5.1 能 Ping 通 Win11 网关
ping -c 4 192.168.137.1
说明 OrangePi 到宿主机的直连网络正常。
这里的 192.168.137.1 指的是 Win11 上直连 OrangePi 的以太网网卡,不是 Wi-Fi 网卡。
如果这里不通,优先检查:
-
网线是否插好;
-
Win11 以太网 IPv4 是否为
192.168.137.1; -
OrangePi IP 是否为
192.168.137.10/24; -
Windows 防火墙是否放行 ICMP;
-
Netplan 里的网卡名是否写错;
-
Windows ICS 是否把共享目标选成了直连 OrangePi 的以太网网卡。
5.2 能 Ping 通公网 IP
ping -c 4 8.8.8.8
说明 Win11 ICS 转发正常,开发板已经可以借用宿主机网络访问互联网。
如果能 Ping 通 192.168.137.1,但不能 Ping 通 8.8.8.8,通常是 ICS 共享没有生效。
可以尝试:
-
关闭共享后重新开启;
-
确认共享来源是
WLAN,也就是用于上网的 Wi-Fi 网卡; -
确认共享目标是直连 OrangePi 的以太网网卡;
-
检查 Win11 自己是否能正常上网。
重点再强调一次:
不是共享以太网给 WLAN,
而是共享 WLAN 给以太网。
5.3 能 Ping 通域名
ping -c 4 www.baidu.com
说明 DNS 正常。
如果能 Ping 通 8.8.8.8,但不能 Ping 通域名,大概率是 DNS 配置问题。
可以检查 Netplan 中的:
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
也可以执行:
resolvectl status
查看当前 DNS 是否生效。
修改后重新应用:
sudo netplan apply
6. SSH 远程连接
华为官方镜像默认用户一般是:
用户名:HwHiAiUser
默认密码:Mind@123
首次登录后,建议立即修改默认密码:
passwd
如果后续长期使用,建议配置 SSH Key 登录,并视情况关闭密码登录。
6.1 测试 SSH
在 Win11 PowerShell 中执行:
ssh HwHiAiUser@192.168.137.10
第一次连接时会提示是否信任主机指纹,输入:
yes
然后输入密码即可登录。
如果出现类似:
Host key verification failed.
通常是之前连接过同一个 IP,但设备指纹变了。可以在 Win11 PowerShell 中执行:
ssh-keygen -R 192.168.137.10
然后重新连接:
ssh HwHiAiUser@192.168.137.10
再次输入 yes 接受新的主机指纹即可。
6.2 配置 SSH Config
为了后续 VS Code 连接更方便,可以在 Windows 上编辑 SSH 配置文件:
C:\Users\你的用户名\.ssh\config
添加:
Host orangepi-aipro
HostName 192.168.137.10
User HwHiAiUser
之后就可以直接执行:
ssh orangepi-aipro
这样 VS Code Remote - SSH 里显示的也是 orangepi-aipro,比一串 IP 更清晰。
7. VS Code Remote - SSH 远程开发
7.1 安装插件
在 VS Code 插件市场安装:
Remote - SSH
安装完成后,按下:
Ctrl + Shift + P
搜索:
Remote-SSH: Connect to Host...
选择:
orangepi-aipro
等待 VS Code 自动连接并初始化远程环境。
7.2 远程开发体验
连接成功后,你可以直接在 VS Code 中:
-
浏览开发板文件系统;
-
打开远程终端;
-
编辑代码;
-
安装远程插件;
-
运行 Python、C++、Shell 等程序;
-
调用板端 NPU 环境进行推理或测试。
也就是说,代码编辑、终端操作、文件管理都在宿主机 VS Code 中完成,但程序实际运行在 OrangePi AIpro 20T 上。
这种体验比外接显示器和键鼠舒服太多。
8. 高速文件传输
网线直连模式下,文件传输速度通常明显优于无线连接。
常用方式有三种。
8.1 VS Code 侧边栏拖拽
最简单。
连接 Remote - SSH 后,直接在 VS Code 文件树中拖拽文件即可。
适合传输:
-
小型源码;
-
配置文件;
-
脚本;
-
少量测试数据。
8.2 使用 SCP
从 Win11 传文件到开发板:
scp .\test.tar.gz orangepi-aipro:/home/HwHiAiUser/
从开发板拉文件到 Win11:
scp orangepi-aipro:/home/HwHiAiUser/result.log .\
8.3 使用 SFTP
也可以使用支持 SFTP 的工具,例如:
-
VS Code SFTP 插件;
-
FileZilla;
-
WinSCP。
如果要传大规模数据集,建议使用 SCP、SFTP 或 rsync 一类工具,比手动拖拽更可控。
9. 常见问题排查
9.1 SSH 连不上
先在 Win11 上 Ping 开发板:
ping 192.168.137.10
如果 Ping 不通:
-
检查 OrangePi 静态 IP 是否配置成功;
-
检查 Win11 以太网 IP 是否为
192.168.137.1; -
检查是否插错网口;
-
检查网线;
-
检查 Netplan 里的网卡名是否正确;
-
检查 Windows ICS 的共享目标是否选成了直连 OrangePi 的以太网网卡。
如果 Ping 通但 SSH 不通,在开发板上检查 SSH 服务:
systemctl status ssh
如果没有启动:
sudo systemctl enable --now ssh
9.2 开发板能 Ping 网关,但不能上网
现象:
ping 192.168.137.1
能通。
但是:
ping 8.8.8.8
不通。
这种情况一般是 Win11 ICS 没有正确生效。
建议:
-
关闭 WLAN 的共享;
-
重新开启 WLAN 的共享;
-
确认共享来源是用于上网的 Wi-Fi 网卡;
-
确认共享目标是直连 OrangePi 的以太网网卡;
-
检查 Win11 自己是否能正常访问互联网。
正确关系应该是:
WLAN / Wi-Fi:负责上网,开启共享
以太网 / Ethernet:负责连接 OrangePi,作为共享目标
9.3 能 Ping IP,但不能 Ping 域名
现象:
ping 8.8.8.8
能通。
但是:
ping www.baidu.com
不通。
这通常是 DNS 问题。
检查:
resolvectl status
或者重新确认 Netplan 中的 DNS:
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
修改后重新应用:
sudo netplan apply
9.4 Windows ICS 把 IP 改乱了
有时 Windows ICS 会比较“有自己的想法”。
如果发现直连 OrangePi 的以太网网卡 IP 不是:
192.168.137.1
可以尝试:
-
关闭 WLAN 共享;
-
手动删除以太网 IPv4 静态配置;
-
重新开启 WLAN 共享;
-
在共享目标中重新选择直连 OrangePi 的以太网网卡;
-
再次检查以太网 IPv4 地址。
一般重新开关一次共享就能恢复。
10. 系列总结
通过这套配置,OrangePi AIpro 20T 可以在不依赖 Wi-Fi、不外接显示器键鼠的情况下,稳定接入宿主机网络,并通过固定 IP 进行 SSH 与 VS Code 远程开发。
最终效果:
-
网线即网络:开发板通过 Win11 ICS 借用宿主机网络上网;
-
固定 IP:OrangePi 固定为
192.168.137.10,不再反复查地址; -
链路纯净:关闭 Wi-Fi,避免默认路由冲突;
-
远程开发:VS Code Remote - SSH 一站式完成代码编辑、终端操作和文件管理;
-
便于扩展:后续跑 Ascend NPU 推理、部署服务、同步数据集都会更顺滑。
这篇是我关于 OrangePi AIpro 20T 折腾记录的第一篇。
后续准备继续整理:
-
高性能仿真环境搭建;
-
Ascend NPU 开发避坑;
-
CANN / MindIE / Python 环境配置;
-
自动化部署与远程运维;
-
模型推理与板端服务化实践。
觉得有用的佬友可以点个赞,也欢迎在评论区交流折腾心得。
#OrangePi #华为昇腾 Linux #嵌入式开发 vscode
1 个帖子 - 1 位参与者