Linux 使用pppd和ppp程式進行3G/4G撥號
轉載地址:https://www.cnblogs.com/cryhuang/p/5649372.html
試驗環境:Linux marsboard 3.4.90 #9 SMP PREEMPT Thu Mar 3 18:28:43 CST 2016 armv7l armv7l armv7l GNU/Linux (注:A20核心板)
通訊模組,載入成ttyUSB*裝置;
目標:使用通訊模組進行3G4G撥號連線網際網路
方法:使用pppd和ppp程式,進行撥號連線
前提:安裝了ppp、pppd兩個程式
摘要:涉及的檔案ppp的chat-script撥號指令碼(針對不通通訊裝置情況需要有所調整,此處不考慮這些情況,大部分都可以使用)、
步驟:
1、建立ppp程式的撥號指令碼,內容如下:(有兩個,一個是針對移動、聯通和電信4G的,一個是隻針對電信3G的)
# 針對移動、聯通和電信4G的,檔名chat-script
#!/bin/sh
exec chat -v \
TIMEOUT 5 \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO CARRIER" \
'' \rAT \
OK 'AT+CGDCONT=1,"IP","CMNET"' \
OK 'ATDT*99#' \
CONNECT '' \
-----------------不同指令碼分割,請存在不通檔案中-----------------------------------------
# 針對電信3G的,檔名chat-script-ct3g
#!/bin/sh
exec chat -v \
TIMEOUT 5 \
ABORT "BUSY" \
ABORT "ERROR" \
ABORT "NO CARRIER" \
'' \rAT \
OK 'AT+CGDCONT=1,"IP","CMNET"' \
OK 'ATDT#777' \
CONNECT '' \
2、建立兩個撥號指令碼,ppp-on用於撥號連線 ppp-off使用者斷開連線
# 檔案 ppp-on
#! /bin/sh
# $1 串列埠號 $2波特率 $3chat指令碼
pppd modem -d -detach lock $1 $2 kdebug 4 file /etc/ppp/options crtscts noipdefault netmask 255.255.255.0 defaultroute connect $3
------------------------------------------------------
# 檔案 ppp-off
#!/bin/sh
######################################################################
#
# Determine the device to be terminated.
#
if [ "$1" = "" ]; then
DEVICE=ppp0
else
DEVICE=$1
fi
######################################################################
#
# If the ppp0 pid file is present then the program is running. Stop it.
if [ -r /var/run/$DEVICE.pid ]; then
kill -INT `cat /var/run/$DEVICE.pid`
#
# If the kill did not work then there is no process running for this
# pid. It may also mean that the lock file will be left. You may wish
# to delete the lock file at the same time.
if [ ! "$?" = "0" ]; then
rm -f /var/run/$DEVICE.pid
echo "ERROR: Removed stale pid file"
exit 1
fi
#
# Success. Let pppd clean up its own junk.
echo "PPP link to $DEVICE terminated."
exit 0
fi
#
# The ppp process is not running for ppp0
echo "ERROR: PPP link is not active on $DEVICE"
exit 1
3、使用方法
將以上的四個指令碼檔案賦予執行許可權,並使用root許可權執行
./ppp-of /dev/ttyUSB1 115200 chat-script(具體路徑)
使用ifconfig檢視撥號的結果
4、附上一個自己寫的指令碼,其中呼叫的以上的撥號指令碼
#! /bin/sh
WR="/home/marsboard/pppd-net"
# $1 串列埠號 $2波特率 $3chat指令碼 $4 ppp-on日誌
${WR}/ppp-on $1 $2 ${WR}/$3 > ${WR}/$4 &
sleep 8
# 從ppp-on日誌中獲取撥號資訊
INTERFACENAME="Using interface"
ADDRESSIPNAME="local IP address"
GATEWAYNAME="remote IP address "
INTERFACE=`grep "$INTERFACENAME" ${WR}/$4|awk '{print $3}'`
ADDRESSIP=`grep "$ADDRESSIPNAME" ${WR}/$4|awk '{print $4}'`
GATEWAYIP=`grep "$GATEWAYNAME" ${WR}/$4|awk '{print $4}'`
# 判斷撥號是否成功
for n in `seq 3`
do
ping -c 1 ${ADDRESSIP} -I ${INTERFACE} >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "ppp Successed!!"
echo "${INTERFACE}, ${ADDRESSIP}, ${GATEWAYIP}"
return
fi
done
echo "ppp Failed!!"
相關文章
- Linux系統下使用pppd撥號上網Linux
- Linux下pppd撥號指令碼配置Linux指令碼
- linux gprs模組 sim800a 晶片 ppp撥號上網Linux晶片
- 在ARM+LINUX上使用pppd拔號上網(GPRS)流程Linux
- ubuntu18.04進行pppoe撥號Ubuntu
- 3G/4G串列埠伺服器串列埠伺服器
- Win10系統下怎麼使用L2TP方式進行VPN撥號Win10
- Android 3G/4G流量上網原理簡析Android
- 使用Python,OpenCV進行銀行支票數字和符號的OCRPythonOpenCV符號
- win10系統下怎麼進行寬頻撥號上網Win10
- 使用nProbe監控行動網路(2G,3G和LTE)
- linux使用者賬號和組賬號概述Linux
- Strategy Analytics:2G/3G退網及使用者向4G遷移
- 使用springboot對linux進行操控Spring BootLinux
- 在Linux中,如何使用VMware和VirtualBox進行虛擬化?Linux
- 在Linux中,如何使用ELK進行日誌管理和分析?Linux
- 如何使用 apt 進行 Linux 包管理APTLinux
- 使用 Sysbench 進行 Linux 效能測試Linux
- 3G時代的“4G預言”都實現了嗎?
- 在Linux中,如何使用指令碼進行系統配置和部署?Linux指令碼
- 撥號vps,遠端連線撥號vps的方法及其步驟
- 微信小程式如何使用其他應用進行支付,其他商戶號支付微信小程式
- 初步實現使用pppd連線GPRS上網
- 【linux】系統程式設計-1-程式、管道和訊號Linux程式設計
- “PPP模式”加速推進湘潭新型智慧城市建設模式
- HTML input tel 撥號域HTML
- ADSL 撥號代理的搭建
- 什麼是撥號vps
- 在Linux中,如何在Linux中使用LXD進行容器管理?Linux
- Linux 下的程式間通訊:套接字和訊號Linux
- 使用 Linux 命令列與其他使用者進行通訊Linux命令列
- openwrt 撥號失敗問題
- python教程:使用 async 和 await 協程進行併發程式設計PythonAI程式設計
- Laravel 如何監聽 Redis key 過期進行回撥LaravelRedis
- 走進Task(2):Task 的回撥執行與 awaitAI
- Vps撥號伺服器,Vps撥號伺服器的優點及其連線方法伺服器
- Linux中如何使用systemctl進行服務的管理?Linux
- 使用vs2019進行Linux遠端開發Linux