当前位置:Linux教程 - 网络配置 - 网络配置 - linux下如何拨号上网

网络配置 - linux下如何拨号上网

linux下如何拨号上网
2004-04-23 15:18 pm
来自:Linux文档
现载:Www.8s8s.coM
地址:无名

s  linux在去年可谓春风得意,现在风头依然很劲,人们逐渐发现在Windows之外还有更好的选择,Linux被寄予了厚望,希望有一天它将能够取代Windows,它的创始人Linus Torvalds也成为因特网时代的英雄。作为天天面对Windows的电脑爱好者来说,对Windows是既爱又恨,因而怎能错过Linux呢?更何况它是免费的午餐。
  linux是因特网时代的神话,在Linux系统中各种Internet的软件、工具应有尽有也就不足为奇了。但是对大多数用户来说,通过Modem拨号上网是联结Internet的唯一途径,在此笔者以Redhat 5.1为例,详细介绍一种拨号上网的方法,希望Linux的新手能够尽快通过Linux去畅游Internet,体会Linux强大的网络功能,获取更多Linux的知识。
  先假设你的计算机已经安装好了Redhat 5.1或者以上版本的linux,并且Modem已经连接在计算机上。

第一步:准备Modem
  需要确定Modem在计算机的哪个串口上。最简单的办法是启动Windows 95,在控制面板中察看Modem的属性;在linux下有一种简单的办法是:先确认Modem已经连接在计算机上,打开Modem电源,MR、HS灯应该是亮的,然后在提示符下输入以下命令:
echo AT >/dev/ttyS0
如果Modem的TR灯亮了,表明Modem连结在COM1口,否则,再试 /dev/ttyS1、/dev/ttyS2、/dev/ttyS3。

第二步:准备核心
  版本2.0.34的linux核心已经内置了PPP功能,在此需要确认一下Linux的版本,如果是Redhat5.1就可以跳过这一步,因为Redhat5.1的内核版本即是2.0.34。否则就可能需要重新编译Linux内核以便支持PPP。

第三步:准备拨号脚本
  在RedHat5.1中,已经在/usr/doc/ppp-2.3.3/scripts目录下为我们提供了拨号脚本程序的样本,需要我们做的是将其拷贝到正确的目录并将其改为可执行文件,具体操作如下:
cp /usr/doc/ ppp-2.3.3/scripts/ppp-on /usr/sbin
cp /usr/doc/ ppp-2.3.3/scripts/ppp-off /usr/sbin
cp /usr/doc/ ppp-2.3.3/scripts/ppp-on-dialer /etc/ppp
cd /usr/sbin
chmod +x ppp-on
chmod +x ppp-off
cd /etc/ppp
chmod +x ppp-on-dialer
然后根据你的ISP做相应的少许改动。以下是笔者所用的两个脚本ppp-on和ppp-on-dialer的内容:
ppp-on的内容:
#!/bin/sh
#
# Script to initiate a ppp connection. This is the first part of the
# pair of scripts. This is not a secure pair of scripts as the codes
# are visible with the 'ps' command. However, it is simple.
#
# These are the parameters. Change as needed.
TELEPHONE=96340 # ISP提供的上网电话号码
ACCOUNT=yuangq # 账号名称
PASSWORD=654321 # 登录密码,注意修改本文件权限以便保密
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 them so that they will be available at 'ppp-on-dialer' time.
export TELEPHONE ACCOUNT PASSWORD
#
# This is the location of the script which dials the phone and logs
# in. Please use the absolute file name as the $PATH variable is not
# used on the connect option. (To do so on a 'root' account would be
# a security hole so don't ask.)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# Initiate the connection
#
# I put most of the common options on this command. Please, don't
# forget the 'lock' option or some programs such as mgetty will not
# work. The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection. You are welcome to make any changes
# as desired. Don't use the 'defaultroute' option if you currently
# have a default route to an ethernet gateway.
#
exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS1 115200
asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP
noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT &

ppp-on-dialer的内容:
#!/bin/sh
#
# This is part 2 of the ppp-on script. It will perform the connection
# protocol for the desired connection.
#
exec chat -v
TIMEOUT 3
ABORT ' BUSY '
ABORT ' NO ANSWER '
ABORT ' RINGING RINGING '
'' AT
'OK-+++c-OK' ATH0
TIMEOUT 30
OK ATDT$TELEPHONE
CONNECT ''
sername:--sername: $ACCOUNT
assword: $PASSWORD

需要注意的是,在ppp-on脚本的最后一行用exec启动pppd的参数中,/dev/ttyS1代表Modem连结在COM2口上,115200表示Modem的速率,可以根据实际情况进行修改;此外,如果ISP提供的拨号提示不是username,而是login的话,需要将ppp-on-dialer中的sername改为ogin(即把username和login去掉第一个字母)。

第四步:配置DNS
  为了能够使用WWW浏览器、ftp、Telnet,还必须配置DNS,可以使用netconf命令进行配置,也可以直接修改/etc/resolv.conf文件,例如笔者的该文件内容如下:
search szonline.net
nameserver 202.96.154.15
其中第一行表示域名搜索后缀,第二行为ISP提供的DNS服务器的IP地址。

第五步:开始拨号上网
  上述准备工作完成之后,以root权限登录,开启Modem,运行ppp-on,该脚本将负责拨号、送出登录信息并完成协议验证,当看到Modem上的数据指示灯停止闪烁并保持连接状态的话,ppp就已经连接成功了。你可以用netstat -r查看路由表或者pppstats检查ppp的状态,也可以通过Ping你的ISP,或者直接启动Netscape浏览器来检查,如果一切正常的话,那么你的linux已经连接到Internet了。

(我执行ppp-on之后,拨号应该是成功的,从modem的正常拨号音和之后的显示等可以看出,但是去还不能上网,ifconifg显示没有ppp0界面,过了不到一分钟时间就自动短线了,怎么回事呢?谢谢各位高手指点)