红联Linux门户
Linux帮助

Linux作PPP接入服务器(2)

发布时间:2006-04-14 01:09:39来源:红联作者:CMK
当你觉得所有必要的功能被添加或按需做成模块后,可以试着运行如下指令:

#make dev;make clean;make zlmage;

若系统最后提示新的内核存在于/usr/src/linux/arch/i386/boot中则表示编译内核成功

若是提示“内核太大了”等内容时,可以接着键入

#make bzlmage 以生成一个压缩的核,通常这样做就行了。

随后就是安装模组了

make modules

make modules_install

#depmod -a     (为模块建立正确的依赖关系 )

通过察看/etc/lilo.conf 来知道你的Linux用哪个目录的那个文件作为image目录。

例如: image = /boot/vmlinuz

将 /usr/src/linux/System.map 复制到 /boot 目录中。

将 /usr/src/linux/arch/i386/boot/zImage(或bzImage)新核心制到 /boot 目录中,

执行Lilo后以新核心重启你的计算机。

技巧提示:保留旧的核心
你在未能证实新核心可以稳定运行之前保留旧的核心是个好主意。推荐的做法是:

在解压新核心之前将/usr/src下的linux 更名。(如改为linux.old),然后创建一新空目录,
如linux2.2.14

然后用ln -s linux2.2.14 linux为其创建一个linux的符号链接。

之后再解压原始代码包,这样做的好处是在你以后的核心更新中,只要简单地更新符号链接就可以了,并且永远是有效的/usr/src/linux目录名。

在将新核心复制到/boot之前为其取一个代表性的可记忆的新核心名,如取成vmlinuz.ppp.2.2.14
然后编辑 /etc/lilo.conf,修改后的 lilo.conf 如下:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt timeout=50
default=linux
image=/boot/vmlinuz
label=linux
root=/dev/hda1 read-only
image=/boot/vmlinuz-2.2.14
label=linux214
root=/dev/hda1 read-only
other=/dev/hda2
label=dos
table=/dev/hda
别忘了执行#lilo ,然后系统提示以下信息:

Added linux * Added linux214 Added dos

#reboot

当执行lilo命令时,系统将加入另一个新的可引导的核心,若你在系统引导(即出现lilo时)忘了新核心的名字,可以用按tab键来显示所有可启动的项,由Label定义.

ok,现在你就已经多了一种选择了,这样当新核心不能引导或不正常时可以随时用旧核心。

推荐您使用英文原版的Rad Hat6.2发行套件,因为用它来敲敲打打我的核心很是得力。但相对来说,那些标榜xx核心汉化技术,世界第一的所谓中文linux套件,在重编译核心时都会或多或少的遇上麻烦。对于它们,我只取其可取之处,如独立的中文处理包。

(关于核心的更多信息可以参见第6节中的相关文档)


安装、配置和启动pppd软件包

通常现行的linux发行版中都包含了pppd软件包,如果你没有这些包或你想用另一类的pppd工具包,推荐你下载和使用mgetty软件包,该软件支持数据和传真功能。而Linux自带的getty不支持传真功能。它可以在freesoft.cei.gov.cn 上取得,现以mgetty为例,作具体说明。

注意:对于不同的PPP软件包,其具体配置存在着一些差异,通常的做法是,查看相应的手册页或Readme文档。

验证mgetty软件包:

如果你在相应目录下找不到文件如/sbin/mgetty, /etc/mgetty+sendfax/login.config,则你需要安装 mgetty RPM包。



配置mgetty软件包:

现假设你用COM1与COM2来接收外来的拔号,其上各外挂一只Acer 56 Surf Modem。对Modem的配置可以参见“小资料:LINUX下如何配置MODEM”。同样假设现已将其设为自动驳接外线呼叫。

1、在/etc/inittab文件中加入以下二行:

s0:345:respawn:/sbin/mgetty -a -m "" ATS0=1 OK -D -x 3 ttyS0 vt100 

s1:345:respawn:/sbin/mgetty -a -m "" ATS0=1 OK -D -x 3 ttyS1 vt100

参数说明:

id:runlevel:action:/sbin/mgetty [options] line [speed [term [lined]]] .

上句中各种参数以‘:'来分隔。各参数的具体意义为:

345:指明它是在哪一个runlevel下调用该行,一般23足够了,也可以写成2345.
runlevel 2 : 不带NFS支持的多用户模式
runlevel 3 : 普通的多用户模式
选项 -a: 波特率自动适配.
-m: 传送给串口设备/dev/ttyS0的初始化字符串,这里的是AT命令,设置modem在震铃一次后,接通. mgetty等待设备/dev/ttyS0返回的OK字符串,进入下一步处理.
ttyS0: linux中对串口定义的设备文件名:/dev/ttyS0 对应COM1; /dev/ttyS1 对应COM2;
vt100设置终端的类型
然后,运行 /sbin/init q 让改动生效。   

2、配置mgetty的配置文件:

在/etc/mgetty+sendfax/login.config文件中,去掉含有AutoPPP的一行的行头的注释. /AutoPPP/ - a_ppp /etc/ppp/ppplogin

其中: /AutoPPP/是登录与/dev/ttyS0相连的mgetty生成终端的用户的终端名, a_ppp 是基于/dev/ttyS0的物理连接上的PPP连接的连接名.

3、修改/etc/ppp/ppplogin 文件:

/etc/ppp/ppplogin 是登录以后自动运行的脚本(script)文件,例如:

#!/bin/sh
if [-f /etc/ppp/options.$TTY];
then exec /usr/sbin/pppd
else
exec /usr/sbin/ppd -detach
fi
或者只需简单的添加以下的行到/etc/ppp/ppplogin中:

#!/bin/sh

/usr/sbin/pppd auth -chap +pap login  

注:参数login表示用/etc/passwd中的用户名和密码进行PAP认证.  

而如果你不需要在拨入后做用户名和密码验证,只要去掉参数auth即可。     

然后保存文件,且给它执行权限 :

chmod +x /etc/ppp/ppplogin



4、现在改动/etc/ppp/options 文件,象下面:

   -detach

   modem

   lock

   crtscts

   asyncmap 0

   netmask 255.255.255.0

   proxyarp

   mtu 296

   mru 296

   ms-dns 192.168.10.25

注:192.168.10.25 是我的LAN上的一台DNS服务器,192.168是通常的LAN设置,至于采用10.25而非0.1则是因为10.25是我的生日,这样对我来说好记些且有自已的个性标志。如你没有可不设,你可以给拨入用户自动分配DNS。

附注:mtu/mru 两行设定建立PPP连接后,传输的包的尺寸,这里用296(256+40),也可以设为552(512+40),40代表空的没有任何数据的包的大小,设为比较小的值是为了假如一个PPPD进程建立后要传输很大的文件,可降低每个包的尺寸,以防其它的进程速度变慢,尽管减少了传输的每个包的尺寸,但不影响总体传输的速度。你也可以不设这两行。        



5、创建另外两个文件/etc/ppp/options.ttyS0 和 /etc/ppp/options.ttyS1

(后缀与相应的串口对应,为每一个串口定义不同的PPP连接参数):

刚开始可以在每个文件中各自加入以下的行, 其它的都注释掉.等调试通过后,再根据需要加入相应的参数.

# more options.ttyS0

   192.168.10.3:192.168.10.242   

# more options.ttyS1

   192.168.10.3:192.168.10.243  

注:192.168.10.3是我这台Linux 服务器的IP地址,

而192.168.10.242和192.168.10.243是我指定给拨入用户的两个PPP地址。



现提供一个仅供参考的配置文件:

# more options.ttyS0

asyncmap 0 netmask 255.255.255.0 #Local IP : Remote IP 192.168.1.100:192.168.1.101 lock noauth crtscts modem -detach debug proxyarp 



6、至于/etc/ppp/pap-secrets,你可以加入下面的行:

   * * "" 192.168.10.242   * * "" 192.168.10.243   

到此为止, 设置完成。   

溅了这么多的口沫,听起来似乎很烦,其实在实际操作中,只要三下五除二,一下子就搞定了。

呵呵,祝你好运。

启动pppd软件包

只要您成功地安装与设置了PPP包后,要启动PPPD只要在任意时刻键入pppd就行了。我通常是在机器启动时就启动它。

现以TurboLinux中文版4.0为例做个简单说明:

#turboservice

只要选中pppd一项,你就可以让机器在下次启动时自动运行pppd服务了。

对于RH及与其兼容的发行版本来说,这个命令就是使用setup,然后选用“系统服务”一项。

我不知道为什么会使用不同的命令名! :-(

小结:

在mgetty中的一些重要的相关文件:

/sbin/mgetty
/etc/mgetty+sendfax/login.config
/etc/inittab
/etc/ppp/ppplogin
/etc/ppp/options
/etc/ppp/options.$TTY(其中,$TTY的值为你所用的串行接连端口号)
/etc/ppp/pap-secrets
用户拨入成功建立PPP连接后,如果你需要访问LAN上其它服务器,那么你必须打开该PPP服务器的IP转发功能,echo 1 /proc/sys/net/ipv4/ip_forward .   

如你需要在空闲一段时间后自动解除连接,如20分钟,那么加入idle 1200到/etc/ppp/options。   

高屋建领:PPP链接配置的类型与特点
链接配置有四种类型:

专用型链接。
动态输入型链接。
动态输出型链接,透明起动。
动态输出型链接,手工起动。
各种链接各有不同的特点和其最宜的应用环境,系统中PPP的链接配置的数目和内容取决于系统预期的PPP通信类型。这些文件可手工编辑,也可以利用相应的工具来完成设置。

专用型链接的特点。

此配置要求用一条专用串行线链接一台远程主机,包括两个建筑物之间的租用线和链接两台PC间的串行电缆等。

要求将一条串行线专门用于一个PPP链接。
允许本地或远程主机发起链接。
必须由本机指定本地及远程主机的IP地址,远程主机必须接受这些地址。
注意:
如果远程主机必须分配IP地址,则需使用动态类型的链接配置。
对专用型链接要使用非modem控制的串行线。
动态输入型链接。

当需要在动态获得的串行线上接受远程主机的链接请求时,可以采取此类型。

要求动态获得串行线,串行线可共享。
要求由远程主机通过注册程序发起链接。
用于识别本地及远程主机的IP地址可任由本地主机或远程主机指定。
动态输出型链接,透明起动。

如果本地主机通过动态获得的串行线发起与远程主机的PPP链接,且本地主机能够分配链接内本地主机和远程主机的IP地址,则可以采用此类型。

要求动态获得串行线,串行线可共享。
要求由本地主机发起链接。当出现传往远程主机IP地址的IP包时,此链接将自动启动。
要求本地及远程主机的IP地址必须由本地主机指定,由远程主机接受。
动态输出型链接,手工起动。

如果本地主机通过动态获得的串行线发起与远程主机的PPP链接,且远程主机能够分配链接内本地主机和远程主机两者或两者之一的IP地址,则可以采用此类型。


要求动态获得串行线,串行线可共享。
要求由本地主机发起链接。只有手工执行相应指令后,此链接才被启动。
识别本地及远程主机的IP地址可任由本地主机或远程主机指定。
文章评论

共有 0 条评论