wvdial是linux下的智能化拨号工具,利用wvdial和ppp可以实现linux下的轻松上网。在整个过程中wvdial的作用是拨号并等待提示,并根据提示输入相应的用户名和密码等认证信息;ppp的作用是与拨入方协商传输数据的方法并维持该连接。

一、wvdial及其相关配置
wvdial的功能很强大,会试探着去猜测如何拨号及登录到服务器,同时它还会对常见的错误智能的进行处理,不象chat一样,要求你去写登录脚本。wvdial只有一个配置文件 /etc/wvdial.conf。wvdial的启动过程是这样的:首先载入wvdial.conf配置文件,然后再初始化modem并拨号,拨号后等待拨入方的响应,收到拨入方响应后则启动pppd。

可以用wvdialconf程序自动生成wvdial.conf配置文件,自行该程序的格式为:
wvdialconf /etc/wvdial.conf
在执行该程序的过程中,程序会自动检测你的modem的相关配置,包括可用的设备文件名,modem的波特率,初始化字符等等相关的拨号信息,并根据这些信息自动生成wvdial.conf配置文件。如果/etc/wvdial.conf文件已经存在时,再次执行该命令只会改变其中的 modem、band、init等选项。一个典型的自动生成的配置文件可能是这样的:

[dialer defaults]

modem = /dev/ttys1
baud = 115200

init1 = atz

init2 = atq0 v1 e1 s0=0 &c1 &d2 s11=55 +fclass=0

;phone =

;username =

;password =

wvdial的执行格式为:
wvdial --help | --version | section
相关的说明如下:
--help:显示简单的帮助信息
--version:显示wvdial的版本号
section:这里的section有点象windows里的ini文件,一个wvdial.conf配置文件可以有好多个section,每一个section由一些变量组成,即由 变量=值 的语句组成,如上所示。使用wvdialconf自动生成配置文件时将会自动生成一些常用的变量说明如下:

inherits=inheritedsection:
使用wvdialconf自动生成配置文件时将会自动生成[dialer defaults],除此之外,你还 可以自定义你自己的section。程序运行时,首先载入[dialer defaults],然后再用指 定的section的相应选项覆盖[dialer defaults]的相应选项。比如,我们在 wvdial.conf中还有[dialer tom],假如我们运行wvdail tom,则系统将先读入[dialer defaults],然后再用[dialer tom]覆盖[dialer defaults]的相应选项。如果除了以上 的section之外还有[dialer 169]并且内容如下:
[dialer tom]
username=tom
password=xxx
inherits=169
[dialer 169]
phone=169
如果这时候我们执行wvdial tom则系统将先读入[dialer defaults],然后再用[dialer tom]覆盖[dialer defaults]的相应选项,最后再用[dialer 169]的相应选项来覆盖前二者的相应选项。由此可见,利用wvdial,我们可以很方便地在不同的isp或modem之间来回移动(假如你有几个isp或medom的话)。

medom=/dev/ttysx:用于指定是用的medom,缺省的为/dev/medom。当然,在这里我们的medom是由wvdialconf自动检测并配置的,所以我们可以忽略该变量。

band=57600:wvdial与modem通信的波特率,同上可以忽略。

area code=xxxx : 设置区号

dial prefix=x: 假如你正在使用分机,拨外线需拨9时,可设该值为9。

username=xxxx:登录时的用户名

passwd=xxxxxx:登录密码

phone=xxxxx: 所拨的号码

pppp path=:设置pppd所在的路径,缺省为/usr/sbin/pppd

force address=x.x.x.x :设置静态ip,一般的isp都会为你分配动态的ip地址。

new pppd= 1 or 0: pppd 2.3.0及其以上版本需要/etc/ppp/peers/wvdial文件,如果你的pppd是2.3.0以上版本请设为1.

auto reconnect=on :断线时是否自动重新连接,缺省设为是。

以上只是wvdial.conf中的常用选项,具体情参考wvdial手册。

二、pppd及其相关配置
pppd的配置选项相对要复杂得多,你可以用命令行的形式引用有关的选项,也可以把要引用的选项写到/etc/ppp/options中进行引用。
下面的示例文件包含了最常用的选项及其相关的说明:
# /etc/ppp/options

# 主机名称
mng.null.edu.cn

# 如果没有给定本地ip, pppd 将使用主机的第一个ip地址;
# 如果指定了"noipdefault" 选项, pppd将使用拨入方提供的ip地址

noipdefault

# 选定该选项, pppd 将接受拨入方提供的ip地址

ipcp-accept-local

# 选定该选项, pppd 将接受拨入方自己的ip地址

ipcp-accept-remote

# 设置缺省网关
defaultroute

# 在传输数据包之前,让拨入方先自我认证,注意一般的isp(如169、163)都不包含该机 # 制,故应选中noauth
noauth

# 使用硬件流控制
crtscts

#将拨号信息作日志
debug

以上只是options中的常用选项,具体情参考pppd手册。

三、一个实例
下面让我们来看一个具体的应用,在该应用中我们实现了拨号和断开连接的自动化。涉及到的配置文件有:
/etc/wvdial.conf :wvdial的配置文件
/etc/ppp/option : pppd的配置文件
/etc/ppp/ppp-on :拨号自动化脚本
/etc/ppp/ppp-of : 断开连接自动化脚本

步骤一:确保modem已经正确连接,linux已检测并自动配置了该modem

步骤二:运行wvdialconf,生成 /etc/wvdial.conf 文件并修改如下:
[dialer defaults]

modem = /dev/ttys1
baud = 115200

init1 = atz

init2 = atq0 v1 e1 s0=0 &c1 &d2 s11=55 +fclass=0

new pppd= 1
[dialer tom]
phone =
169
username =
tom
password = *******

步骤三:编辑并配置/etc/ppp/options,如下所示:
noipdefault

ipcp-accept-local

ipcp-accept-remote

defaultroute

noauth

crtscts

debug

步骤四:编写自动化脚本
1.拨号脚本 /etc/ppp/ppp-on:
#!/bin/sh
# this script initiates the ppp connections by wvdial
wvdial tom &

2.断开连接自动化脚本/etc/ppp/ppp-off:
#!/bin/sh

#!stop wvdial
killall wvdial
# if the ppp0 pid file is present then the program is running. stop it

if [ -r /var/run/ppp0.pid ]; then

kill -int `cat /var/run/ppp0.pid`

echo "ppp link to ppp0 terminated."

else

echo "error: ppp link is not active on ppp0"

exit 0

fi

exit 1

编辑完后,执行 chmod u+x /etc/ppp/ppp* 改变文件权限。到此大功告成,以后只要运行 /etc/ppp/ppp-on 便自动拨号,执行 /etc/ppp/ppp-of 便自动断开连接。

用wvdial和ppp轻松上网相关推荐

  1. 使用wvdial启动ppp协议拨号上网

    使用wvdial启动ppp协议拨号上网 二.pppd及其相关配置 pppd的配置选项相对要复杂得多,你可以用命令行的形式引用有关的选项,也可以把要引用的选项写到/etc/ppp/options中进行引 ...

  2. 第三节 树莓派EC20之PPP拨号上网

    EC20 ppp拨号上网步骤 1. 准备工作 2.安装软件 3.上网测试 树莓派内核现在已集成了EC20的驱动,不需要再去进行驱动移植,虽然没有MiniPcie的接口,但用usb转minipcie也是 ...

  3. sim7600ce 拨号上网测试_SIM7600CE TCP/IP连接与PPP拨号上网 4G上网

    SIM7600CE联网测试分为两部分: 1.TCP/IP连接 2.PPP拨号上网 实验环境:ubuntu-meta 16.04 硬件:树莓派3B,SIM7600CE 上网卡:移动的NB-IOT物联网卡 ...

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

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

  5. sim900芯片—GPRS模块ppp拨号上网

    --------------------------------------- 主机操作系统:Centos 6.7 交叉编译器环境:arm-linux-gcc-4.5.4  开发板平台: FL2440 ...

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

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

  7. SIM7600CE TCP/IP连接与PPP拨号上网

    SIM7600CE联网测试分为两部分: 1.TCP/IP连接 2.PPP拨号上网 实验环境:ubuntu-meta 16.04 硬件:树莓派3B,SIM7600CE 上网卡:移动的NB-IOT物联网卡 ...

  8. 【原创】ppp拨号上网总结

    [原创]ppp拨号上网总结 Author: chad Mail: linczone@163.com 本文可以自由转载,但转载请务必注明出处以及本声明信息. 一.开发环境简述 GPRS模块 MC52I ...

  9. linux 串口4g ppp,在ARM-linux上实现4G模块PPP拨号上网

    原标题:在ARM-linux上实现4G模块PPP拨号上网 在ARM平台上实现 的 ,参考网上的资料和自己的理解,从一无所知到开发完成花了一周多.最后看到ARM板ping通www.baidu.com时甚 ...

最新文章

  1. 闰年流程图(18网三袁昳)
  2. SVN-项目 XXX 受源代码管理。向源代码管理注册此项目时出错。建议不要对此项目进行任何修改...
  3. 微信小程序python数据交换代码_一个微信小程序通过 DDP 协议和 Meteor 后端交换数据的简单例子...
  4. 也说说“从Adapter模式到Decorator模式”
  5. ON DUPLICATE KEY UPDATE 用法与说明
  6. mysql share mode_mysql锁:mysql lock in share mode 和 select for update
  7. arcgis 将栅格值提取到点_ArcGIS教程:值提取至点 (空间分析)
  8. CKEditor4x word导入不保存格式的解决方案
  9. eclipse安装包
  10. ESP8266WiFi模块实现代码
  11. 第二章笔记:计数初步
  12. android手机双开微信方法,安卓黑科技:一机同时双开多个QQ/微信
  13. unity如果编辑器意外崩溃了,但场景未保存,怎么办
  14. about a day and a story
  15. 深度学习知识点总结:深度学习常用公式总结
  16. 宏基因组分析-基于组装
  17. Python3读写txt文件
  18. DEVC++的几个实用小技巧
  19. 如何用键盘重启计算机,总算发现键盘和鼠标如何重启电脑
  20. windows10软件图标去除小盾牌

热门文章

  1. 网络营销中的几个常见基本术语
  2. php 中输出字符串时怎么换行?
  3. 前端自学day04——css基础
  4. 解决phpStudy端口占用的问题
  5. 什么是 UI 自动化测试?
  6. ContentProvider总结与简单Demo
  7. 如何在三天内使用Thinkphp搭建商城系统(一)
  8. Java的封装继承多态简介与实例
  9. (c++)两道关于日期相减的题目
  10. 一文让你了解数据采集