配置 4G 模块为WAN口上网

将Linux板卡配置为交换机或路由器,提供类似路由器的上网功能。这里以4G网卡作为WAN进行上网。

一、使用网桥上网

1. 配置4G模块为默认网关

先配置好4G模块为默认路由网关。

这里需要先将4G模块配置为路由模式。4G模块路由模式和网卡模式的区别在于,拨号成功后,路由模式下usb0网卡分配到的IP地址是局域网IP(192.168.x.x),而网卡模式分配的IP是公网IP地址(10.21.26.197)。

断开板卡的有线和无限网络连接,使用ping baidu.com测试,如果能上网说明4G模块网络配置已经正常。否则,需要使用ip route配置4G模块为默认网关,并保证4G模块已经拨号能正常上网。

2. 创建网桥

参考: https://blog.csdn.net/duapple/article/details/127001192?spm=1001.2014.3001.5501

将4G模块的usb0 网卡和其它网口桥接。我这里板卡上有两个以太网口,实验只是用一个网口,因此只桥接一个,用于连接电脑进行测试。

brctl addbr br0
brctl addif br0 usb0
brctl addif br0 eth0
ifconfig eth0 0.0.0.0
ifconfig usb0 0.0.0.0
ifconfig br0 up

然后需要将br0的IP配置成和4G模块在一个网段。第一步骤中usb0上网会有一个局域网IP:192.168.43.100。这里可以将br0的IP配置为这个:

ifconfig br0 192.168.43.100/24

再将br0网卡设置为默认路由:

ip route add default via 192.168.43.1 dev br0

然后应该能ping通4G模块网关192.168.43.1,再ping baidu.com应该也是能通的。

3. PC配置

这里通过以太网将电脑和Linux板卡连接,将PC以太网适配的地址配置为和br0一个网段,网关地址配置为4G模块的网关地址192.168.43.1。DNS地址配置114.114.114.114 。注意禁掉其它能上网的网络适配器,比如无线网卡,防止影响测试。

这个时候可能还无法上网。先在windows上ping Linux板卡的br0网卡地址192.168.43.100,通了以后再ping网关地址192.168.43.1。通了以后再ping baidu.com。通了以后整个网络就通了。开始网络不通的原因可能是地址学习才开始进行导致网络不稳定,开始反复ping baidu.com网络都是时好时坏,甚至丢包。后面稳定了就好了。

在Windows上进行网速测试,和Linux板卡上测试结果差不多,4G还是太慢了。

4. 总结

这个时候,只要使用网线连接Linux板卡,在手动配置一下IP,就可以使用Linux板卡上的4G模块进行上网了。

二、使用NAT上网

参考:https://codeantenna.com/a/4ZBrXkM9Zy

需要使用iptables来配置NAT,完成转发。

1. 配置iptables/netfilter

NAT由内核模块netfilter来完成,iptables是用户空间的工具,两者需要搭配使用。

1.1 netfilter

先在内核中配置netfilter

注意需要开启:<*> IPv4 connection tracking support (required for NAT)才能看到-*- IPv4 NAT<*> iptables NAT support

配置完成后重新编译烧录内核。

1.2 iptables

这个文件系统一般自带有。如果没有,使用交叉编译工具链自己编译,再放到开发板。为避免其它库libmnl 的引入,交叉编译配置加参数--disable-nftables

配置地址转发,先开启转发:

echo "1" > /proc/sys/net/ipv4/ip_forward

然后配置:

iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE

不报错即可。

2. 配置4G模块

依然需要保证4G模块能正常上网。

这里将4G模块配置为网卡模式。以quectel的4G模块为例,AT指令为AT+QCFG="NAT",1,配置完成后需要重启才能生效。重启,完成拨号后,4G模块会分配到类似公网IP的IP地址(10段开头的地址)。

然后将4G模块的usb0网卡配置为默认路由。一般在上面的拨号完成后,系统会自动配置路由表。

root@ATK-IMX6U:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.40.163.52    0.0.0.0         UG    0      0        0 usb0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 usb0
10.40.163.52    0.0.0.0         255.255.255.255 UH    0      0        0 usb0
183.230.126.224 10.40.163.52    255.255.255.255 UGH   0      0        0 usb0
183.230.126.225 10.40.163.52    255.255.255.255 UGH   0      0        0 usb0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

我的系统就被自动配置了多条规则。

然后ping baidu.com没有问题,那么就算是成功了。

root@ATK-IMX6U:~# ping baidu.com
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66: icmp_seq=1 ttl=48 time=59.1 ms
64 bytes from 110.242.68.66: icmp_seq=2 ttl=48 time=57.4 ms
64 bytes from 110.242.68.66: icmp_seq=3 ttl=48 time=55.5 ms
64 bytes from 110.242.68.66: icmp_seq=4 ttl=48 time=67.4 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 55.571/59.903/67.421/4.522 ms

如果ping不同baidu,那么修改/etc/resolv.conf,添加如下内容:

nameserver 114.114.114.114
nameserver 127.0.0.1

再ping就应该没有问题了。

3. 网络配置

除了4G模块的网络配置,还需要配置客户机和客户机相连的网口。

3.1 Linux网口配置

需要将Linux板卡和客户机相连的网口(eth0)配置网关地址,如192.168.10.1。否则,客户机无法上网。

3.2 客户机网络配置

这里客户机使用PC Windows。客户机需要和Linux板卡相连的IP设置在同一个网段,如192.168.10.200,网关地址设置为192.168.10.1。此时已经可以上网,qq能网络是通的。

但是ping baidu不成功,浏览器访问baidu也不成功,这里把DNS地址设置一下,设置成114.114.114.114。然后再ping baidu,发现已经可以通了,浏览器访问也没有问题了。

C:\Users\28328>ping baidu.com正在 Ping baidu.com [110.242.68.66] 具有 32 字节的数据:
来自 110.242.68.66 的回复: 字节=32 时间=58ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=79ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=73ms TTL=47
来自 110.242.68.66 的回复: 字节=32 时间=55ms TTL=47110.242.68.66 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):最短 = 55ms,最长 = 79ms,平均 = 66ms

注意:一样的,测试时需要禁用掉其他能上外网的网卡,防止影响测试。

配置 4G 模块为WAN口上网相关推荐

  1. OpenWrt下通过EC20 R2.0 4G模块实现qmi拨号上网

    OpenWrt下通过EC20R2.0 4G模块实现qmi拨号上网 1.本文档参考资料为Quectel_WCDMA&LTE_Linux_USB_Driver_User_Guide_V1.6.pd ...

  2. 树莓派搭载EC200U 4G模块(USB网卡上网和PPP拨号上网)

    文章目录 一.EC200U模块4G模块介绍 二.USB转串口驱动设置 (1)打开树莓派的串口 (2)lsusb是否有EC200U模块 (3)添加 VID 和 PID 信息 三.USB网卡驱动上网 四. ...

  3. Linux系统下使用4G模块EC20实现拨号上网

    驱动的实现过程 实现4G功能分为两步,第一步内核能成功识别出该设备,第二步实现拨号上网.最后提一下自带的定位功能 一.添加内核USB驱动 这里直接使用内核已经存在的USB驱动,只需要让内核能识别出该U ...

  4. linux网卡EC20型号,Linux系统下使用4G模块EC20实现拨号上网

    驱动的实现过程 实现4G功能分为两步,第一步内核能成功识别出该设备,第二步实现拨号上网.最后提一下自带的定位功能 一.添加内核USB驱动 这里直接使用内核已经存在的USB驱动,只需要让内核能识别出该U ...

  5. linux怎么使用4g模块的网络,在ARM-linux上实现4G模块PPP拨号上网(示例代码)

    在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下.当然,除此之 ...

  6. 在ARM-linux上实现4G模块simcom7100c 的PPP拨号上网

    转http://blog.sina.com.cn/s/blog_7880d3350102wb92.html 在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成 ...

  7. 怎么在Linux内核模块加打印,在ARM-linux上实现4G模块PPP拨号上网

    在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚是高兴,现将此过程整理如下.当然,除此之 ...

  8. 树莓派如何使用工业4G模块上网

    树莓派使用工业4G模块的起因 我之所以要在树莓派上使用工业4G模块,是因为,我们使用电信的4G卡经常掉线,我们先来看看这两种4G模块的外观区别: 上是华为4G模块,下面是电信4G模块. 好了,我们再来 ...

  9. 4g模块与51单片机通信

    本文硬件选自忆佰特的4g模块和老陈的上官一号 第一步先使用电脑配置4g模块,配置好后再与51单片机进行接线完成通信,需要提前插入SIM卡,接线如下 通电后模块右下角会亮起红灯,并且右上角四颗lcd灯会 ...

最新文章

  1. Angular从零到一1.2 环境配置要求
  2. 阿里云数据库RDS环境搭建
  3. MySQL关联更新update
  4. spark 算子使用类变量_自己工作中超全spark性能优化总结
  5. 一、 promise
  6. 刘浩(专业打劫三十年)20155307的预备作业02:
  7. CompletableFuture详解~thenAccept
  8. Check the difficulty of problems - poj 2151 (概率+DP)
  9. pppoe服务器虚拟机,Hyper-V 批量建立虚拟机自动改IP并配置PPPOE拨号
  10. VRRP技术原理与注意点
  11. 【python】编程语言入门经典100例--23
  12. OpenStack峰会喊你回家吃饭
  13. AtCoder Beginner Contest 043题解(ABCD)
  14. 打开IDEA遇到:The license has been cancelled
  15. python邮箱密码_python 模拟登陆163邮箱
  16. 亚马逊 MWS上传数据 API部分的相关内容 amazon api 文档
  17. 苹果状态栏HTML,iphoneX 适配客户端H5页面的方法教程
  18. 行人重识别的挑战 与 最新进展 (35页PPT整理)
  19. 苹果怎么换行打字_2周内将你的打字速度提高3倍的方法
  20. react 监听键盘事件及多按键事件

热门文章

  1. 图像 异常检测算法_检测图像异常的算法
  2. FH8626V100添加Uboot串口
  3. 我能抽象出整个世界。。。
  4. Python获取系统时间
  5. 【笔记】大数据技术之你需要了解的常识(一)
  6. sallen-因果图法设计测试用例
  7. CentOS 7.6 配置静态IP
  8. python抓包之后、如何解析包_python如何抓包
  9. 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
  10. Android 三种方式播放视频和百度直播