# 开发板无WiFi?一根网线+Ubuntu快速搭建外网访问通道
实验室里那块没有无线模块的开发板又卡在软件包下载环节了?别急着下单USB网卡,你手边的Ubuntu电脑加上一根网线就能变身临时网关。这个方法特别适合树莓派、Jetson Nano等设备在无WiFi环境下的紧急联网需求,整个过程只需要5分钟,且不会影响主机原有网络配置。
1. 硬件连接与网络拓扑
在开始配置前,我们需要准备:
- 已连接互联网的Ubuntu主机(笔记本或台式机均可)
- 标准网线(Cat5e及以上规格)
- 待联网的开发板(需具备有线网口)
物理连接示意图:
[互联网] | [Ubuntu主机]--网线--[开发板] (ens160) (enp1s0)
> 提示:如果开发板网口指示灯不亮,请检查网线是否插紧或尝试更换网线
2. Ubuntu主机配置步骤
2.1 识别网络接口
首先在Ubuntu终端执行:
ip -c link show
典型输出示例:
1: lo:
... 2: ens160:
... # 通常这是连接外网的网卡 3: enp1s0:
... # 这是连接开发板的网卡
记录下两个关键网卡名称:
- 外网网卡:示例中的
ens160 - 开发板网卡:示例中的
enp1s0
2.2 配置IP转发与NAT
执行以下命令序列:
# 为开发板网卡分配IP sudo ip addr add 192.168.10.1/24 dev enp1s0 # 启用IP转发 sudo sysctl -w net.ipv4.ip_forward=1 # 设置iptables规则 sudo iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE sudo iptables -A FORWARD -i enp1s0 -j ACCEPT
验证转发是否生效:
sysctl net.ipv4.ip_forward # 应显示:net.ipv4.ip_forward = 1
3. 开发板端配置
3.1 基础网络设置
在开发板终端执行(以Linux系统为例):
# 配置静态IP(与Ubuntu同网段) sudo ip addr add 192.168.10.2/24 dev eth0 # 设置默认网关 sudo ip route add default via 192.168.10.1 # 配置DNS echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
3.2 连接测试
分步验证网络连通性:
- 测试与Ubuntu的直连:
ping 192.168.10.1 -c 4 - 测试外网访问:
ping baidu.com -c 4
常见问题排查:
- 如果第一步失败:检查IP配置和物理连接
- 如果第二步失败:检查Ubuntu的iptables规则和转发状态
4. 高级配置与优化
4.1 持久化设置(可选)
如需重启后仍生效,在Ubuntu上:
# 保存iptables规则 sudo apt install iptables-persistent sudo netfilter-persistent save # 永久启用IP转发 echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-ipforward.conf sudo sysctl -p
4.2 带宽监控
查看实时流量:
# 安装监控工具 sudo apt install iftop # 监控开发板网卡流量 sudo iftop -i enp1s0
4.3 多开发板扩展
通过交换机连接多个开发板时,修改Ubuntu配置:
# 创建虚拟子接口 sudo ip link add link enp1s0 name enp1s0.100 type vlan id 100 sudo ip addr add 192.168.20.1/24 dev enp1s0.100
对应开发板配置:
sudo ip addr add 192.168.20.2/24 dev eth0 sudo ip route add default via 192.168.20.1
5. 安全注意事项
虽然这是临时方案,但仍需注意:
- 防火墙配置:建议限制转发来源
sudo iptables -A FORWARD -i enp1s0 -p tcp --dport 22 -j ACCEPT sudo iptables -A FORWARD -i enp1s0 -j DROP - 日志监控:记录NAT转换情况
sudo iptables -t nat -A POSTROUTING -o ens160 -j LOG --log-prefix "NAT-LOG: " - 定期检查:使用
conntrack查看活动连接sudo apt install conntrack sudo conntrack -L
实际项目中,我在Jetson Xavier NX上测试这个方案时发现,当开发板需要下载大体积SDK时,建议在Ubuntu端启用TCP窗口缩放:
sudo sysctl -w net.ipv4.tcp_window_scaling=1 sudo sysctl -w net.core.rmem_max=
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/271642.html