开发板通过 Ubuntu/Linux 连接外网
如果开发板需要访问外网,可以通过网线将开发板与 Ubuntu 系统连接起来,在 Ubuntu 系统中配置 ip_forward 让 Ubuntu 成为路由器,这样就可以将开发板与外网连接起来。两个带网口的 USB Hub网线其中带网口的 USB Hub 可以参考以下图片到京东或淘宝进行购买(仅供参考)。带网口的 USB Hub 准备好后,一个插在开发板,另一个插到 Ubuntu 系统,中间用网线连
开发板通过 Ubuntu/Linux 连接外网
概述
如果开发板需要访问外网,可以通过网线将开发板与 Ubuntu 系统连接起来,在 Ubuntu 系统中配置 ip_forward 让 Ubuntu 成为路由器,这样就可以将开发板与外网连接起来。
需要使用到以下一些物理设备:
- 两个带网口的 USB Hub
- 网线
其中带网口的 USB Hub 可以参考以下图片到京东或淘宝进行购买(仅供参考)。
带网口的 USB Hub 准备好后,一个插在开发板,另一个插到 Ubuntu 系统,中间用网线连接起来,这样它们的网络链接就打造好了。
完整的网络拓扑图如上图所示,接下来我们具体描述下配置细节。
配置 Ubuntu 系统
假如系统中原来可用于正常上网的网卡名称为 ens160
,插入带网口的 USB Hub 后,系统中会多出来一个新的网络设备,名称可能是 enxf8e43b913cd7
。则当前系统中有两个网卡设备:
- ens160
- enxf8e43b913cd7
其中 ens160
负责与外网进行通讯,enxf8e43b913cd7
负责与开发板进行通讯。
-
首先配置
enxf8e43b913cd7
网卡 IP 地址sudo ifconfig enxf8e43b913cd7 192.168.10.8/24 up
-
配置内核参数,打开 IP Forward 功能
sudo sysctl -w net.ipv4.ip_forward=1
检查是否生效
sysctl net.ipv4.ip_forward
-
使用
iptables
命令配置路由转发功能sudo iptables -F sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE
注意,其中比较重要的一个参数是在于最后一行的 -o ens160
参数,-o
的长选项是 --out-interface
,意思是需要指定 POSTROUTING
的出去的接口,所以在此处指定的就是能够正常与外网通讯的 ens160
网卡设备。
配置开发板 (Linux)
同样的,插入带网口的 USB Hub 后,开发板中同样会多出来一个新的网络设备,估且认为它是 eth1
吧。eth1
是与 Ubuntu 系统中的 enxf8e43b913cd7
相连接的设备,所以需要配置成与 Ubuntu 在同一个局域网内。
-
首先配置
eth1
网卡 IP 地址:sudo ifconfig eth1 192.168.10.10/24 up
在板子上使用
ping
命令测试与 Ubuntu 系统的连接性,确保两端是正常互通。ping 192.168.10.8
-
完成第一步的网络连通性测试之后,将 Ubuntu 的地址
192.168.10.8
设置成开发板的网关地址,让开发板能够路由出去:sudo route add default gw 192.168.10.8
配置之后可以通过
route -n
命令对系统路由表进行检查。 -
配置 DNS:
sudo echo "nameserver 114.114.114.114" > /etc/resolv.conf
-
在板子上测试外网连通性:
ping www.baidu.com
配置开发板 (QNX)
网络 IP 配置方法及原理与上面的 Linux 版本类似,路由配置命令有点差异。
-
首先配置
eth1
网卡 IP 地址:ifconfig eth1 192.168.10.10/24 up
在板子上使用
ping
命令测试与 Ubuntu 系统的连接性,确保两端是正常互通。ping 192.168.10.8
-
完成第一步的网络连通性测试之后,将 Ubuntu 的地址
192.168.10.8
设置成开发板的网关地址,让开发板能够路由出去:route -n add default 192.168.10.8
配置之后可以通过
route -n show
命令对系统路由表进行检查。命令正常执行后会输出如下内容:# route -n show Routing tables Internet: Destination Gateway Flags default 192.168.8.15 UG ...
QNX 的
route
命令与 Linux 的不太一样,具体用法可以参考官方文档:「qnx route 命令用法」 -
配置 DNS:
echo "nameserver 114.114.114.114" > /etc/resolv.conf
-
在板子上测试外网连通性:
ping www.baidu.com
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)