道格拉斯先生:您好!

Douglas wrote:

> 在看了这个新闻组一段时间后,我决定冒昧向您请教!
> 不为别的,您的回信比较认真细致,不敷衍了事或自恃高手而寥寥数语打发别人。

谢谢您对我的信任和鼓励。

> 我是一个还站在 Linux 门外的人。我安装的是 RedHat 4.2 版本。对于 Linux 这种操
> 作系统我是第一次接触,所以几乎是一无所知。相关的书籍买了几本(老外写的,前言
> 不搭后语的跳跃式写法,对于我这种没有任何 Linux 基础的人来讲困难重重!)。所
> 以从安装到现在半年来一直都无法继续前进一步。

其实只要有任何一种UNIX的经验Linux唾手可得。 :-)

> 先向您请教一个问题:如何配置 PPP 从而与我的 ISP 联接访问 Internet。这样我就
> 可以在 Linux 下直接上网学习了,而不必在 Linux 和 Windows 之间换来换去。

您这个愿望很好也很现实,ppp通了以后就可以使用netscape了。
 

> 请您尽量详尽简单一些(Step by step)。(把我当成白痴好了)

您别这么说。我尽力而为吧。

您别把事情想得太复杂了,其实很简单。只要您的调制解调器和串
行口都工作,剩下的就是一条命令的事了。下面一行是一个组合命令
用了pppd和chat两个命令完成ppp连接。

pppd  debug lock modem crtscts /dev/cua0  38400 connect \
'chat ABORT BUSY "" "atdt63355555" "" "login:" "abc" \
"Password:" "a1b3k5"

其中abc和a1b3k5分别是您在ISP的用户名和口令。

这条命令是说:起动pppd程序,记录调试信息,锁定串口设备,用调
制解调器控制信号,使用硬件数据流控制,用/dev/cua0(com1)串口,
速率为38400,用chat程序和ISP对话。对话内容为:

1,首先拨号63355555,(把它改成您的ISP号码)
2,等待收到的字符串为login:,(这login:是ISP提示您输入您的用
  户名,您的ISP如果用别的提示符您就应该把login:改成相应的字
  符串)回答您的用户名abc
3,等待收到Password:(如果您的ISP提示password您得相应的改成
  password)回答您的口令a1b3k5(改成您真正的口令)

如果您的ISP在起动ppp之前还有别的对话,您如法炮制就行了。例如
登录成功后他给出以下提示符:

onix$

您得说ppp才能开始ppp那您就加上下面一对儿东西就行了:

"onix$" "ppp"

当需要关断ppp时只要说killall pppd就行了。

以上是基本的工作原理。

Redhat-4.2中有几个关于ppp的脚本,你不能直接使用,得把您的真
实参数填进去才能正常工作。

其中/etc/ppp和/etc/sysconfig/network-scripts一组比较烦琐,和
系统设置牵扯较多,初学者可能不大摸得到头绪。另一组较为简单易
懂,和上述介绍非常一致。这一组脚本在以下目录中:

/usr/doc/ppp-2.2.0f-3/scripts

以下三个比较重要:

ppp-on
ppp-on-dialer
ppp-off

您需要改动的应该只是ppp-on一个脚本而已。

TELEPHONE=555-1212      # The telephone number for the connection
将555-1212改成您ISP的电话号码

ACCOUNT=george          # The account name for logon (as in 'George Burns')
将george改为您的用户名

PASSWORD=gracie         # The password for this account (and 'Gracie Allen')
将gracie改为您的口令

LOCAL_IP=0.0.0.0        # Local IP address if known. Dynamic = 0.0.0.0
REMOTE_IP=0.0.0.0       # Remote IP address if desired. Normally 0.0.0.0
这两行不用动,pppd会从您的ISP得到

NETMASK=255.255.255.0   # The proper netmask if needed
这行注释掉,pppd会从您的ISP得到

exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
        asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \
        noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT
改为:

exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \
        kdebug 0 $LOCAL_IP:$REMOTE_IP \
        noipdefault defaultroute connect $DIALER_SCRIPT

如果您的ISP要求更多的对话则改动ppp-on-dialer即可实现。

祝您好运,并新年好!

(一些细节可能不准确,特别是关于网络掩码。如有问题望指出)

> 要浪费您不少时间,您若有空就给我讲讲。
> 祝圣诞及新年快乐!!
> Douglas Su
> 1997.12.22
>
> 另,我想学 Linux 的原因只是想了解一下 Windows,OS/2 以外的操作系统,业余爱
> 好。这种初衷的人您肯教我吗?

技术的发展往往和业余爱好者的贡献是分不开的,短波无线电通信的能力就是业余无线电爱好者揭示的。Linux本身就是从“业余爱好”发展起来的。希望不久能够看到大量我们中国的高水平的“业余爱好者”。
:-) 我认为业余爱好者比唯利是图的人可爱多了!

宫敏

----
NT=No Thanks, WWW=World Wide Wait
Does PnP mean "Plug and Pray"?

既然是讲入门问题,忍不住补充两句.早些时候拨号上网用slip,用dig程序来做,配置起来很简单(想当初我
还不会配置ppp,只好用dig).有些远端接入设备如annex,在你输入用户名/口令之后还要选择ppp/slip等.
有些服务端并不使用login:/password:提示符,也可能是username:/password:,也可能第一个字母是大写.
关于ppp的网络掩码,我记得以前的文档说应该是255.255.255.255,点到点连接嘛,这个很容易理解,但是现
在拨到有些ISP后,掩码为255.255.255.0,难道是这些ISP使用了IP地址伪装的原因?还望高手来讲一讲.
 

本文转自中文Linux论坛