Linux下3G脚本拨号上网.docx

上传人:牧羊曲112 文档编号:3160588 上传时间:2023-03-11 格式:DOCX 页数:7 大小:40.88KB
返回 下载 相关 举报
Linux下3G脚本拨号上网.docx_第1页
第1页 / 共7页
Linux下3G脚本拨号上网.docx_第2页
第2页 / 共7页
Linux下3G脚本拨号上网.docx_第3页
第3页 / 共7页
Linux下3G脚本拨号上网.docx_第4页
第4页 / 共7页
Linux下3G脚本拨号上网.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Linux下3G脚本拨号上网.docx》由会员分享,可在线阅读,更多相关《Linux下3G脚本拨号上网.docx(7页珍藏版)》请在三一办公上搜索。

1、Linux下3G脚本拨号上网Linux下3G脚本拨号上网 既然是拨号上网,就不能不提到ppp(point-to-point protocol)协议.ppp协议提供了一种通过串行点对点联接传输数据报的方式.它由三部份组成:一种在串行封装数据报的方式,扩展联接控制协议 LCP,和用来建立和配置不同网络层协议的家族网络控制协议NCP.封装方案由内核驱动代码来提供.pppd(ppp daemon)提供基本的LCP,认证支持,和建立和配置IP的网络控制协议NCP.一个ppp会话分为四个步骤:连接建立、连接质量控制、网络层协议配 置、连接终止;提供了密码认证协议或者邀请握手认证协议来保证连接安全.使用PP

2、P你可以把你的 Linux PC连接到一台ppp服务器上并存取该服务器所连接的网络资源就如同你是直接连接在该网络上一般。你也可以把你的Linux PC设为一台ppp服务器,这样一来其它电脑就可以拨入你的电脑并且存取在你区域网络里的资源。 当然,对于我们最终用户来讲,它是一个 server/client模型的应用。本文主要讨论客户端怎样拨号上网,毕竟对于桌面系统的用户,ppp是日常生活的一个重要组成部分。在这里我想大家 可能对windows下的拨号适配器的简单易用深表敬佩,在这里我不想对其进行具体讨论,微软公司提供的TAPI可以让每一个windows下的程序 员编写一个拨号程序不是一件困难的事,

3、而在linux下呢?无论是gnome下的wvdial还是kde下的kppp,他们与纯脚本ppp-on相比不过 是更直接,更易操作,称他们为图形化的拨号脚本并不为过,因为他们最终都是调用pppd这个功能强大大却不好驾驭的程序。有人告诉我kppp与 windows下的拨号适配器功能差不多,不过我要告诉你kppp对pppd程序的依赖程度大过kppp作为一个独立的拨号程序,甚至/etc/ppp /options下的选项值对kppp的影响也是不可忽视的。 关于linux下脚本拨号的过程:(其实可适用于linux下所有的拨号过程,当然实际过程没有这么简单,如果有兴趣,请阅读源码) 1.由pppd程序调用c

4、hat会话程序 2.chat会话程序负责拨号,启动服务器端的pppd程序,验证身份,然后chat会话程序结束 3.由pppd程序继续chat会话程序的工作,与服务器端的pppd程序进行握手,建立ppp连接 ppp-on脚本包含有pppd程序,而ppp-on-dialer脚本含有chat会话程序,如果说pppd程序完成 的是连接建立、连接质量控制、网络层协议配置、连接终止,那么chat程序完成的是明文或者邀请握手认证协议来保证连接安全,那么还须在/etc/ppp目录下配置pap-secrets或chap-secrets 文件。 关于ppp-on,ppp-on-dialer纯脚本拨号的配置 一个完

5、整的ppp-on文件如下:(这里的实例及ppp-on-dialer文件均以163直通车为例) TELEPHONE=163 # ISP提供的上网电话号码 ACCOUNT=163 # 账号名称 PASSWORD=163 # 登录密码 LOCAL_IP=0.0.0.0 # 本地IP地址,0.0.0.0表示由ISP动态分配 REMOTE_IP=0.0.0.0 # 远端IP地址,一般为0.0.0.0 NETMASK=255.255.255.0 # 子网掩码 export TELEPHONE ACCOUNT PASSWORD DIALER_SCRIPT=/etc/ppp/ppp-on-dialer exe

6、c /usr/sbin/pppd lock modem crtscts /dev/ttyS0 115200 asyncmap 0 kdebug 4 $LOCAL_IP:$REMOTE_IP noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT& 这个文件需要注意的地方: a.注意表示一行完整的结束。 b.尽量把kdebug的级别设置高一些,因为根据kdebug的级别来确定文件/var/log/messages的详细程度。 一个完整的ppp-on-dialer文件如下: exec chat -v TIMEOUT 3 AB

7、ORT nBUSYr ABORT nNO ANSWERr ABORT nRINGINGrnrnRINGINGr ABORT nUsername/Password Incorrectr 此行可缩短由于账号密码不正确的验证时间 rAT OK-+c-OK ATH0 TIMEOUT 30 OK ATDT163 sername:-sername: 163 assword: 163 大家说以上配置对吗?文件配置是对的,但是问题不少。我还是以实际问题来做具体分析吧,在/etc/ppp目录下键入了./ppp-on命令后,出现如下错误: 1.TR的亮,无拨号音。 解决办法: 首先检查ppp-on-dialer文

8、件的权限,设为chmod 7 ppp-on-dialer 然后查看ppp-on-dialer文件,每行后面的 是否存在 最后查看倒数第三行ok ATDT$TELEPHONE的电话号码是否设置正确,注意这里需设为实际电话号码,不是变量 2.在/var/log/messages文件中出现如下提示: 21:13:32 ken pppd657: CCP terminated by peer 21:13:32 ken pppd657: Compression disabled by peer. 或直接出现connect scripts fail提示 注 意:在ppp-on-dialer文件的chat -

9、v表示通过syslogd将客户端与服务器端建立连结的会话信息写入了/var/log/messages文件,如果你要查看这个会话信息,请键入 tail -f /var/log/messages或者tailf /var/log/messages,这些信息对于正确配置拨号脚本文件很有用. 解决办法: 首先检查账号密码是否正确 然后就可能是chat会话程序本身的问题,大家看一下面一个例子: 成都天府热线163在minicom下的提示: * *Quidway A8010 Internet Server *welcome! * please input username: please input pas

10、sword: 成都天府热线169在minicom下的提示: * Welcome To TianFu Online EeYing01-11 ! * login: password: 大家可能注意到有什么不同了吧!也就是不同拨号服务器对于账号密码输入提示的不同,用过windows拨号终端的朋友可能会知道,那么windows拨号 为什么没有这个问题,因为这是chat程序本身的问题:不能根据拨号服务器对于账号密码的提示不同而send账号和密码,解决办法:用minicom去得 到正确的提示,根具提示修改ppp-on-dialer文件最后两行的配置,这里以成都天府热线163,169在minicom下的提示

11、为例: 163: sername:-sername: 163 assword: 163 169: ogin:-ogin: liujien assword: liujien 这样就完了吗,没有,这里的配置还要根据你的isp的要求(hint),用minicom N次去得到正确的提示,不过你还要冒着你的isp修改账号密码提示的风险,所以我劝你放弃chat会话程序吧。因为kppp,wvdial都不存在这个问 题.chat会话程序是force,而wvdial,kppp却是guess.带着这个问题我读了ppp-2.4.1源码的说明文件,其实作者已在 ppp-2.3.11版就已提供了PLUGINS PASS

12、PROMPT(注:ppp-2.3.10版已提供插件支持,大家用redhat6.2自带了ppp-2.3.11的RPM包,至于插件一般的国内 的LINUX网站上提供的ppp源码包都附带有),这个插件提供给第三方程序将账号密码发送给你的isp的调用功能。相关内容的英文如下: A new passprompt plugin is included, thanks to Alan Curry, which makes it possible for pppd to call an external program to get the PAP password to send to the peer.

13、那么到底如何使用这个plugin呢?在包含pppd.h头文件的目录下编译passprompt.c文件 gcc -c -O passprompt.c gcc -shared -o passprompt.o 大家就可得到一个passprompt.so的共享链接文件,将之拷贝到/etc/ppp/plugins目录下,修改/etc/ppp/options 文件,加入一行plugin /etc/ppp/plugins/passprompt.so,然后你就可修改ppp-on文件的将DIALER_SCRIPT指向你所要指定的脚本文 件,可自编程序或者在网上去下载一个第三方程序。 我给大家提供了一个简单方法,

14、大家可安装wvdial拨号程序,然后在gnome下将/etc/wvdial.conf文件配置好,在/etc/ppp目 录下新建一个脚本,命名为wvdial,内容如下wvdial 163 (163是你所要拨号的电话号码),然后chmod 7 wvdial,修改ppp-on文件,如:DIALER_SCRIPT=/etc/ppp/wvdial 3.客户端已得到一个ip地址(用ifconfig 命令即可看到),通过域名无法浏览网页,通过ip地址可以。 解决办法: 一般的办法:去查isp给你提供的手册,得到域名服务器的ip地址,修改/etc/resolv.conf文件如下:nameserver 61.1

15、39.2.69(我以成都163为例),还可以在windows下用ipconfig /all命令也能得到dns服务器地址,因为windows的拨号程序默认设置为:自动获得dns服务器地址。 软件作者给我们提供的办法: what was new in ppp-2.3.6. * Added new option usepeerdns, thanks to Nick Walker . If the peer supplies DNS addresses, these will be written to /etc/ppp/resolv.conf. The ip-up script can then b

16、e used to add these addresses to /etc/resolv.conf if desired (see the ip-up.local.add and ip-down.local.add files in the scripts directory). 软件作者在ppp-2.3.6版即提供了类似于windows 拨号程序的选项:usepeerdns,如果你的isp提供dns服务器地址,将在/etc/ppp/resolv.conf文件及/etc /resolv.conf文件中写入主要域名服务器地址和辅助域名服务器地址,如下: nameserver 61.139.2.69 nameserver 202.103.4.5 如何设置:修改/etc/ppp/options文件,添加一行usepeerdns 后记: 在这里笔者抛砖引玉,对linux脚本拨号上网并没有作太多深入的探讨,只是就围绕几个常见的问题进行了分析并提供了比较简单的解决办法.希望大家能够多 读一些软件作者给我们提供的英文说明文件,因为国内的有些资料太过陈旧,不要没有耐心去读man pages,他们很有用,不过去读一读某些网站的文章是一个不错的选择。如果大家对我的文章有不同的看法,请给我写信,不吝赐教,谢谢.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号