移远EC20/EC200T 4G模块PPP拨号实战:Ubuntu 16.04下5步完成网络配置与DNS修复

在物联网设备开发中,4G模块的网络连接稳定性直接关系到设备远程通信的可靠性。本文将详细介绍如何在Ubuntu 16.04系统下,通过PPP协议为移远EC20/EC200T 4G模块配置稳定的网络连接,并解决常见的DNS解析问题。

1. 环境准备与驱动确认

在开始配置前,需要确保系统环境满足以下要求:

  • 操作系统 :Ubuntu 16.04 LTS(内核版本4.4.0-210-generic)
  • 交叉编译器 :arm-linux-gnueabihf-gcc-4.9.4
  • 硬件平台 :ARM架构嵌入式设备(如i.MX6UL)

首先检查USB驱动是否正常加载:

ls /dev/ttyUSB*

正常应显示3个设备节点:

  • /dev/ttyUSB1 :GPS数据通信
  • /dev/ttyUSB2 :AT指令通道
  • /dev/ttyUSB3 :PPP拨号通道

若未出现设备节点,需检查内核配置:

dmesg | grep usb

确认输出包含类似以下信息:

cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
option 1-1.4:1.2: GSM modem (1-port) converter detected

2. PPP拨号脚本配置

移远官方提供的PPP脚本包通常包含以下文件:

quectel-pppd.sh  
quectel-chat-connect  
quectel-chat-disconnect  
ip-up

关键配置步骤

  1. 将脚本包解压到 /etc/ppp/peers/ 目录
  2. 修改 quectel-pppd.sh 中的APN配置(以中国移动为例):
#!/bin/sh
APN="cmnet"
USER=""
PASSWORD=""
  1. 设置 quectel-chat-connect 拨号脚本:
TIMEOUT 15
ABORT 'NO CARRIER'
ABORT 'ERROR'
ABORT 'NO DIALTONE'
'' AT
OK AT+CGDCONT=1,"IP","$APN"
OK ATD*99#
CONNECT ''

注意:不同运营商APN需相应调整:

  • 中国移动:cmnet
  • 中国联通:3gnet
  • 中国电信:ctnet

3. DNS配置优化

PPP拨号成功后常遇到的DNS解析问题可通过以下方案解决:

方案一:使用ip-up脚本自动更新DNS

#!/bin/sh
echo "nameserver 114.114.114.114" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf

方案二:禁用resolvconf服务(适用于Ubuntu系统)

sudo apt-get purge resolvconf
sudo ln -sf /etc/resolv.conf /etc/resolvconf/resolv.conf.d/head

DNS测试命令

nslookup baidu.com
dig @114.114.114.114 baidu.com

4. 典型错误排查指南

错误现象 根因分析 解决方案
SSL peer certificate错误 系统时间与基站时间偏差超过1天 sudo ntpdate cn.pool.ntp.org
network not connect 时区设置错误 sudo timedatectl set-timezone Asia/Shanghai
拨号频繁断开 路由优先级冲突 配置路由表优先级: sudo ip route add default via 10.64.64.64 dev ppp0 metric 100
无ttyUSB设备 驱动未加载 检查内核配置: CONFIG_USB_SERIAL_OPTION=y
信号强度差 天线接触不良 使用 AT+CSQ 检查信号值(10-31为正常)

心跳检测脚本示例 (30秒检测一次网络):

#!/bin/bash
while true; do
    if ! ping -c 1 -W 2 114.114.114.114 >/dev/null; then
        sudo killall pppd
        sudo /etc/ppp/peers/quectel-pppd.sh &
    fi
    sleep 30
done

5. 多网卡路由优先级配置

在同时存在eth0、ppp0、wlan0接口的设备上,需合理配置路由优先级:

  1. 查看当前路由表:
ip route show
  1. 设置优先级策略:
# 有线网络最高优先级
sudo ip route add default via 192.168.1.1 dev eth0 metric 10

# 4G网络中等优先级  
sudo ip route add default via 10.64.64.64 dev ppp0 metric 100

# WiFi最低优先级
sudo ip route add default via 192.168.0.1 dev wlan0 metric 200
  1. 持久化配置(Ubuntu系统):
sudo vi /etc/network/interfaces.d/ppp0

添加内容:

auto ppp0
iface ppp0 inet ppp
    provider quectel
    post-up /sbin/ip route add default via 10.64.64.64 dev ppp0 metric 100

路由测试工具

mtr -n 8.8.8.8  # 可视化路由跟踪
tracepath baidu.com  # 路径探测

实际项目中发现,路由配置不当会导致4G模块在WiFi连接后自动断开。通过设置合理的metric值可确保多网络接口的智能切换。

更多推荐