如何安装PPPServer
发表于:2007-07-01来源:作者:点击数:
标签:
最近因工作需要,要在 Linux 上装个PPPserver,接受拨接进来的电 话,连上整个公司的ethe .net 网路,再经由router接上internet,过程并 不顺利,整台Linux有许多地方需要设定,为避免大家浪费许多无谓的时间, 所以有这篇FAQ的产生,我所使用的是Linux1.0.9
最近因工作需要,要在
Linux上装个PPPserver,接受拨接进来的电
话,连上整个公司的ethe
.net网路,再经由router接上internet,过程并
不顺利,整台Linux有许多地方需要设定,为避免大家浪费许多无谓的时间,
所以有这篇FAQ的产生,我所使用的是Linux1.0.9这份FAQ并没有完整的介
绍Linux PPP的部份,只针对PPP server的部份,把我安装的经验写出来,
适合已装上PPP,并能用来连接其他PPP server的人。 若想从无到有,你可
以叁考开放系统与网路
杂志1994年,八月份出版, 曾瑞源先生的Internet低
廉上网,再叁考本篇及各种FAQ就可以建立一个PPP server了。 若想更进一
步, 让不同网路的PPP server相连,可以造成一 个router,让两个网路
互通有无,但这部份我没试过,请各位努力研究。要建立PPP server有三个步骤:
1.你的modem必须要能接电话。
2.你的
linux必须能透过serial line显示login prompt。
3.建立呼叫pppd的a
clearcase/" target="_blank" >ccount
一、 如 何 让modem接 电 话。
我不会用linux来设定,所以用
windows 3.1的终端机来设定modem,
执行windows的终端机。对modem下ATS0=1,这是叫modem在电话响一声後就接,
=2就是响两声。AT&W,把刚设的状态存起来,今後每当电话响一声,modem就
接起来了。
二、 如何透过serial line显示login prompt。
在/etc底下,有个inittab,有段内容要设定如下:
# Serial lines 这是我的设定, 可能与你的不同。
#s1:45:respawn:/sbin/getty ttyS0 19200 vt100 s2:45:respawn:/sbin/getty ttyS1
19200 vt100 每一行之前若加上#,代表注解。 意义为
id:runlevel:action:/etc/getty [options] line [speed [term [lined]]]
其getty必须为getty_ps,这部份说明可以在Serial-HOWTO中找到。有了这段设定,
重头开机,并连上後,若下ps aux指令,应可看到一些资料,其中某些栏位已省略。
.... root 88 232 v02 S 10:58 0:00 /sbin/getty tty2 3840
root 88 233 v03 S 10:58 0:00 /sbin/getty tty3 3840
root 92 264 psf S 11:33 0:00 /sbin/getty ttyS1 19200 .. ..
/dev/ttyS1是给拨进来的connection使用的。
/dev/cua1是拨出去用的。
以上两者皆为com2到目前为止,如果用modem拨进来,将可出现login prompt的画面如
下: login:
此时整条serial line已通,可以login,并下一些简单的命令,
但local端和remote端并未开始商议PPP。
三、 为了提供PPP service,我们要建立一个account,如:ppp01,他的login shell可
以把pppd叫起来?nbsp;并和对方沟通。作法如下:下一adduser命令
linux>adduser
----------------------这 以 下 为adduser AP的user interface
Adding a new user. The username should be not exceed 8 characters
in length, or you many run into problems later.
Enter login name for new account (^C to quit): ppp01
Editing information for new user [ppp01]
Full Name: ppp01
GID [100]:100
Checking for an available UID after 500
501...502...503...504...505...506...507...508...
First unused uid is 509
UID [509]:509
Home Directory [/home/ppp01]: /home/usr/ppp01
Shell [/bin/bash]: /etc/ppp/ppplogin
Password [ppp01]:xxxxx
-------------------------以 上 为adduser
一般login shell为/etc/bash或/etc/csh, 但我们为了在login时就执行pppd,
建立一个ppp connection,所以写了一 个executable scrip内容如下:
------------以 下 为/etc/ppp/ppplogin
#!/bin/csh
exec /usr/etc/pppd passive netmask 255.255.255.0 proxyarp :140.xxx.xxx.xxx
------------以 上 为/etc/ppp/ppplogin
passive意思是pppd一开始会尝试negotiate,若没有回应,则等待。
netmask 255.255.255.0设定subnet mask。
proxyarp add an entry to this systems ARP table。
∶140.xxx.xxx.xxx设定拨进来那端的IP
关於pppd这部份的option,可用man pppd来研究。
做了adduser後/etc/passwd的内容如下:
ppp01:(encrypted password):505:100:ppp01:/home/usr/ppp01:/etc/ppp/ppplogin
上述是server端建立的方法,至於client连接ppp server不多做介绍,
只指出要注意的地方,我使用的软体是winspan 3.0,至於Trumpt winsock、linux
pppd,只听过没用来连过,各位就多见谅了,其设定是大同小异的。Winspan里有
个configure,里头有界面卡,选择ppp、设定,设定baud rate等,重要的是local ip
address,这个地方要和ppplogin中所设的:140.xxx.xxx.xxx一样,因为这linux pppd
的设定方法,把这ip固定了,所以要设一样的。至於要dynamic assign IP、或更多
条线,这就叁考其他faq,我并没有尝试。至此大功告成,用ppp01帐号login後,pppd就
开始和对端商议PPP了。但事情真的这麽顺利吗?可能没有,你可能碰到某些状况如下:
1.modem可以接电话了,但接下来没有任何动作,login prompt并不会出现。解法:
/etc/default下, 有getty一开始要读的档案,其内容可能如下:
CLEAR = NO HANGUP=YES INIT="" ATZ\r OK WAITFOR=RING
CONNECT="" ATA\r CONNECT \s\A
你若是用man getty研究其option就知道为什麽不出现prompt,所以我改成
CLEAR = NO
HANGUP=YES
login prompt就出现了。
2.怎麽一切设对,ppp connection也建立起来了,可以从local端telnet到linux上了,
但却无法到其他机器上。原因:pppd的ARP table并没有成功建立,packet无 法route出
去。理论上pppd应可自动建立ARP table,但我不知哪里设错,无法建立。解法:
手动建立ARP table,可叁考NET-2-HOWTO或NET-3-HOWTO的9.Routing。
#
#Proxy ARP for those dialin users who will be using this
#machine as a server
#
/sbin/arp -s 140.xxx.xxx.xxx 00:00:C0:AD:37:1C pub
#End proxy arps
以arp -a指令将可发现? (140.xxx.xxx.xxx) at 00:00:C0:AD:37:1C
这样才可以正确route出去。
注意:00:00:C0:AD:37:1C是ethernet address,也就是网路卡的hardware address,
在linux开机时注意看将可发现。
3.可以正常显示,并当terminal Server,但用ppp帐号login後就断了. 原因:
pppd根本没有执行,可在console以ppp帐号login,看该帐号是否的确可以执行PPPD.
希这篇能给那些想在办公室或实验室装个PPP server的人一点帮助?nbsp;若本篇FAQ有错误
的地方,请多多见谅..
原文转自:http://www.ltesting.net