少于 1 分钟阅读 次阅读

问题描述

使用EC200M 4G模组,客诉ifconfig看到的usb0节点为局域网ip,希望看到的是公网ip。

解决方式

  • 打开终端,进入root账户
    sudo su
    
  • 查看当前网卡工作模式
    echo -e 'AT+QCFG="nat"\r' >/dev/ttyUSB2 && cat /dev/ttyUSB2
    

    输出如下 ``` AT+QCFG=”nat” +QCFG: “nat”,0

OK

此处的0代表网卡工作在路由模式,会经过一层NAT,所以ifconfig获取到的是局域网的IP。

- 对于EC200M,可以使用下面的命令将网卡的工作模式配置为网卡模式(EC20不支持此操作)
```bash
echo -e 'AT+QCFG="nat",1\r' >/dev/ttyUSB2 && cat /dev/ttyUSB2
  • 屏蔽开机脚本/etc/rc.local中这个命令
    # 延迟10s执行4G拨号初始化
    ( sleep 10; init_4g ) &
    
  • 配置自动拨号
    echo -e 'AT+qnetdevctl=3,1,1\r' >/dev/ttyUSB2 && cat /dev/ttyUSB2
    
  • 重启
    reboot
    
  • 重启后断电硬复位 注:重启和断电硬复位可以多做几次,确保修改生效

  • 查看当前网卡工作模式
    echo -e 'AT+QCFG="nat"\r' >/dev/ttyUSB2 && cat /dev/ttyUSB2
    

    输出如下 ``` AT+QCFG=”nat” +QCFG: “nat”,1

OK

这里的`1`就代表配置正确了。

- 此时查看下usb0的ip,是公网ip就对了
```bash
ifconfig
  • 尝试ping下外网,如
    ping 223.5.5.5 -I usb0
    
  • 如果ping不通,查看有没有usb0的路由表
    route -n
    
  • 如果没有,手动触发下dhcp,再次查看路由表并看下能否Ping通外网
    dhcpc -i usb0
    
  • 到此,配置成功,可以将上面手动操作的部分加入开机脚本/etc/rc.local

留下评论