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/ttyACM0
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的话)。
Modem=/dev/ttySx:用于指定是用的modem,缺省的为/dev/modem。当然,在这里我们的medom是由wvdialconf自动检测并配置的,所以我们可以忽略该变量。
Band=115200:wvdial与modem通信的波特率,同上可以忽略。
Area Code=xxxx : 设置区号
Dial Prefix=x: 假如你正在使用分机,拨外线需拨9时,可设该值为9。
Username=xxxx:登录时的用户名
Password=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中进行引用。下面的示例文件包含了最常用的选项及其相关的说明:
# 如果没有给定本地ip, pppd 将使用主机的第一个ip地址;
# 如果指定了"noipdefault" 选项, pppd将使用拨入方提供的ip地址

# 选定该选项, pppd 将接受拨入方提供的ip地址:ipcp-accept-local
# 选定该选项, pppd 将接受拨入方自己的ip地址:ipcp-accept-remote
# 设置缺省网关:defaultroute
# 在传输数据包之前,让拨入方先自我认证,注意一般的ISP(如169、163)都不包含该机 # 制,故应选中noauth
# 使用硬件流控制:crtscts
#将拨号信息作日志:debug
以上只是options中的常用选项,具体情参考pppd手册。

三、一个实例
    下面让我们来看一个具体的应用,在该应用中我们实现了拨号和断开连接的自动化。涉及到的配置文件有:
/etc/wvdial.conf:wvdial的配置文件
/etc/ppp/option:pppd的配置文件
/etc/ppp/ppp-on:拨号自动化脚本
/etc/ppp/ppp-off:断开连接自动化脚本
步骤一:确保modem已经正确连接,linux已检测并自动配置了该modem
步骤二:运行wvdialconf,生成 /etc/wvdial.conf 文件并修改如下:

[Dialer Defaults]
Modem = /dev/ttyACM0
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-off 便自动断开连接。

LINUX下的拨号利器:wvdial和pppd —— 转载的更多相关文章

  1. linux下ppp拨号无线上网

    linux下用ppp上网需要两个程序:pppd和chat.ubuntu自带pppd和chat,可以使用man查看具体使用方法. 典型的ppp拨号需要准备几个文件: 1. pppd脚本. 2. chat ...

  2. linux下远程管理利器-tmux

    linux下远程管理利器-tmux 1.控制键       控制键就是tmux的主键.当你在tmux环境下按下这个键的时候,tmux就会把你后面输入的指令,解析成它内置的功能.tmux默认的控制键是 ...

  3. Linux下Nagios的安装与配置(转载)

    一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...

  4. Windows下与Linux下编写socket程序的区别 《转载》

     原文网址:http://blog.chinaunix.net/uid-2270658-id-308160.html [[Windows]] [Windows: 头文件的区别] #include< ...

  5. Linux下的硬件驱动——USB设备(转载)

    usb_bulk_msg函数 当对usb设备进行一次读或者写时,usb_bulk_msg 函数是非常有用的; 然而, 当你需要连续地对设备进行读/写时,建议你建立一个自己的urbs,同时将urbs 提 ...

  6. [后渗透]Linux下的几种隐藏技术【转载】

    原作者:Bypass 原文链接:转自Bypass微信公众号 0x00 前言 攻击者在获取服务器权限后,会通过一些技巧来隐藏自己的踪迹和后门文件,本文介绍Linux下的几种隐藏技术. 0x01 隐藏文件 ...

  7. linux下的终端利器 tmux 安装以及使用

    ref :https://www.jianshu.com/p/fd3bbdba9dc9 Introduction 为什么使用tmux? 因为如果我们用terminal连接remote server.发 ...

  8. linux下的终端利器----tmux

    转:tmux 是指通过一个终端登录远程主机并运行后,在其中可以开启多个控制台的终端复用软件.类似GNU Screen,但来自于OpenBSD,采用BSD授权.使用它最直观的好处就是,通过一个终端登录远 ...

  9. Linux下多线程下载利器 axel

    参考 https://teddysun.com/377.html 使用示例: axel -an https://ubuntu-mate.org/raspberry-pi/ubuntu-mate-16. ...

随机推荐

  1. 数论 UVA 11752

    题目大意是在1~2^64-1的范围内找到所有符合条件的数,条件要求这个数字是两个或两个以上不同数字的幂,例如64=8^2=4^3. 对于这一题,分析是:如果一个满足这个条件的数字一定可以转换成i^k, ...

  2. windows下在yii中使用mongodb

    1.编译或下载对应dll动态链接库拓展文件,下载地址:点我,不知道如何编译windows下的dll拓展->点我 2.找到web服务器软件,如apache,nginx等webserver处理浏览器 ...

  3. oracle 常用语法

    一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oraclea.启动ORACLE系统oracle>svrmgrlSVRMG ...

  4. svn服务器迁移(生成dump)

    首先介绍一下dump文件 一定要进入VisualSVN服务端的安装目录里的bin目录下面,然后再执行svnadmin  相关命令. 不然会出现下图中的“svnadmin不是内部命令或外部命令,也不是可 ...

  5. 在IOS输入框中 键盘上显示“搜索”

    移动端web页面上使用软键盘时如何让其显示“前往”(GO)而不是换行?‘ 用一个 form 表单包裹住就会显示前往,单独的一个 input 就会提示换行.下面是测试地址: 有表单:https://js ...

  6. pt-ioprofile分析查看mysql的真实IO情况

    针对IO密集型应用做系统调优的时候,我们通常都需要知道系统cpu  内存  io 网络等系统性能 和 使用率,结合应用本身的访问量,以及 mysql的性能指标来综合分析.比如说:我们将系统压力情况分为 ...

  7. shell问题(转)

    一个同学问我一个问题,说有以下文件内容,要求输出为特定的格式.这里就献丑给出一个处理的方法吧,由于时间关系可能我的答案并不是最好的,但是我尽量将我的答案讲解明白,让你理解处理的方法.如果您有简单明了的 ...

  8. [solr] - IKAnalyzer 分词加入

    1.下载IK Analyzer中文分词器:http://ik-analyzer.googlecode.com/files/IK%20Analyzer%202012FF_hf1.zip 2.解压出zip ...

  9. EXCEL datatable 根据列名自动写入到相应属性、字段或列中

    string path = openFileDialog1.FileName; try { DataTable dt = ExcelHelper.ExcelInput(path); ; ; ; ; i ...

  10. HackerRank "TBS Problem" ~ NPC

    It is marked as a NPC problem. However from the #1 code submission (https://www.hackerrank.com/Charl ...