【RK3588】【Ubuntu22.04】4G 共享网络至WiFi热点
1. 安装工具
1 | sudo apt-get update |
2. 开启AP热点



点击Turn On开启AP热点

通过手机输入WiFi热点密码正常连接(此时还未共享4G网络)
3. 将4G网络共享至AP热点
3.1. 4G拨号
执行以下命令,等待4G成功拨号
1 | quectel-CM & |


确认拨号成功后,4G模块可以成功ping通外网

注:这里需要先将4G模块配置为路由模式。4G模块路由模式和网卡模式的区别在于,拨号成功后,路由模式下usb0网卡分配到的IP地址是局域网IP(192.168.x.x),而网卡模式分配的IP是公网IP地址(10.21.26.197)。
这里使用的4G模块为EC20,默认为开发板的/dev/ttyUSB2节点。
EC20有4种上网模式,可以通过如下指令切换模式。
1 | $ cat /dev/ttyUSB2 & |
四种模式分别为:
- 0 RMNET接口,通过QMI工具发的QMI命令,获取公网IP。
- 1 ECM接口,通过标准的CDC-ECM发起data call,是发送标准的ECM命令,获取局域网ip。
- 2 MBIM接口,Mobile Broadband Interface Model,正宗的移动宽带接口模型,专门用于3G/4G/5G模块的,只在win8以上的windows上使用。
- 3 RNDIS接口,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡获取局域网ip。
也可以通过以下命令查看当前模块为哪种模式下:
1 | $ cat /dev/ttyUSB2 & |
若要将4G模块配置为路由模式,可以指定4G模块上网模式为ECM模式。
1 | $ cat /dev/ttyUSB2 & |
等待模块重启,在ECM模式下不需要执行quectel-CM命令手动拨号。
模块成功重启,4G网卡名称可能变为enxxx,执行以下命令可以解决4G网卡名称变为enxxx问题。
1 | $ ln -srf /dev/null /etc/udev/rules.d/80-net-setup-link.rules |
3.2. 共享网络
将wwan0网口的数据转发到wlan0,使AP设备能通过以太网上网:
1 | echo "1" > /proc/sys/net/ipv4/ip_forward |
若执行iptables命令有如下报错信息iptables/1.8.7 Failed to initialize nft: Protocol not supported,通常是因为系统默认使用了nftables而不是 iptables,但内核并不支持 nftables。
解决方法:
可以通过切换到iptables-legacy来解决这个问题。
1 | sudo update-alternatives --set iptables /usr/sbin/iptables-legacy |
切换成功后,回到起初报错的指令重新执行即可。
完成以上步骤,4g热点即可共享至wifi热点,重新连接WiFi后也可访问外网。

All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
