分享
 
 
 

一项实用的技术:Linux下的PPP连接

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

在家庭网络和“家庭办公”一族中,PPP连接是非常实用的一项技术。本文将详细讲解在Linux局域网服务器中如何拨出和拨入的方法与技巧,即如何让Linux服务器成为PPP的客户端和服务器,同时讲解如何设置回拨服务。

Linux下如何拨号上网

在Linux服务器中设置PPP,使其能够拨号,并能连接到ISP,从而将计算机与Internet相连。下面为Linux PPP客户端设置的一般步骤。

1.编译内核使其支持PPP

在大多数情况下,不用重新编译内核。如果不能确认Linux是否需要编译,可以查阅说明文档,注意这个内核是否支持PPP。

2.设置串行端口和调制解调器

(1)串口设备文件

Linux下串口设备文件的命名和DOS的关系如下:

DOC COM1=Linux/dev/cua0(and/dev/ttyS0)

DOC COM2=Linux/dev/cua1(and/dev/ttyS1)

一般来说,/dev/cua*是用来拨出的,/dev/ttyS*是用来拨入的,但现在已经可以不加以区分了,都用的是/dev/ttyS*。如果计算机上没有/dev/ttyS*,则需要用mknod来建立这些设备文件。有个脚本程序MAKEDEV可以简化这个工作:

# cd/dev

# ./MAKEDEV ttyS0

(2)设置中断号和I/O地址

使用如下命令设置中断号:

/sbin/setserial/dev/ttyS0 ieq 3#串行鼠标

/sbin/setserial/dev/ttyS1 ieq 4#MODEM1

使用如下命令来查看系统的中断设置,以确保没有中断冲突:

cat/proc/interrupts

I/O地址与中断一样必须是惟一的,可以设置硬件跳线来改变I/O地址。一般串行口的I/O地址是这样的:

ttyS0 address 0x3f8

可以使用下面命令来查看系统的I/O地址设置,以确保没有冲突:

cat/proc/ioports

(3)设置调制解调器

一般情况下,调制解调器的出厂设置不用改变什么。

3.掌握ISP的信息

需要知道ISP一些基本信息,特别是DNS地址,并自己设置DNS。因为对于Linux来说,它不允许在连线之时动态地指定DNS的IP地址。

4.安装拨号所需软件

PPP客户所需的程序有chat和pppd。还有一个终端通信程序minicom,用来测试拨号用的,也要安装上。

chat程序的用途是拨号,并等待提示,根据提示输入用户名和密码等登录信息。pppd的用途是建立并维持与服务器的PPP连接,并传输数据。

5.手动方式建立ppp连接

整个ppp连接很明显可分成两个步骤:

(1)用pppd建立ppp连接

测试拨号能否成功,退出,然后执行pppd程序如下:

pppd debug lock Modem crtscts defaultroute /dev/ttyS1 115200&

在一个单独的虚拟控制台上运行下面代码:

tail-f/var/log/messages

动态地观察各种日志信息,包括pppd的调试信息。如果看到下面信息就说明PPP连接成功了:

Jun23 16:10:31hxf pppd[1234]:local IP address210.88.131.151

Jun23 16:10:31hxf pppd[1234]:remote IP address192.168.10.21

(2)断开连接

当测试通过后,需要把连接断掉,使用如下命令:

Killall pppd

6.使PPP连接自动化

在经过手动连接测试之后,就要把这些变成自动的,目的是只用一个命令就能实现拨号连接。

要使拨号自动化需要两个程序chat和pppd。要得到自动拨号的效果,具体的可查看相关资料。

7.设置域名解析(DNS)

Linux下设置域名解析不太方便,域名服务器需要自己设定。

(1)设置域名服务器

/ect/resolv.conf文件是存放域名服务器地址的地方,它的内容是这样的:

domain your.isp.domain.name

nameserver202.106.196.152

nameserver202.106.196.115

需要做的事情就是把ISP的域名服务器地址填到这个文件里。

(2)自动化

也许只想在拨号时才加上域名服务器地址,别的时间不需要,因此除了手动之外,还可以让这个过程自动化。可以建立/etc/ppp/ip-up.local和/etc/ppp/ip-down.local两个执行的脚本文件。pppd启动之后,会执行/etc/ppp/ip-up.local里的命令;而pppd结束时,会执行/etc/ppp/ip-down.local里的命令。可以先生成一个包含域名服务器的文件,在ip-up.local中将这个文件改成/etc/resolv.conf,并将/etc/resolv.conf保存下来。在ip-down.local中再将保存的/etc/resolv.conf恢复回来。这样就可以实现添加域名服务器的自动化了。

在局域网中设置拨入服务器

在局域网中设置拨入服务器目的就是将Linux局域网设置成跟ISP一样的拨号服务器。假设用户在公司用Linux设置了拨号服务器,然后在家里通过拨号连到公司的拨号服务器上,进而访问公司的局域网,如此就可以实现“家庭办公”。如果公司的服务器是连在Internet上的,用户就可以浏览Internet了。“设置基本的拨号服务器”将告诉用户怎样实现这一功能。“回拨(Callback)”将讲述怎样节省联网所需的电话费。

因为已经介绍如何用Linux服务器做PPP客户端,所以这一节用Windows 98做客户端来配合讲述Linux服务器。

1.设置基本的拨号服务器

如果安装了PPP服务,可以将/etc/sysconfig/network文件里FORWARD_IPV4=false改成true就行了。之后需要重启以激活IP转发。

(1)使Liunx能够接受电话拨入

现在要做的就是使Modem所接的那个串口可以接受外来连接。打开/etc/inittab,会看到这样的几行代码:

#Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

在这几行之后,加上如下一行代码:

3:2345:respawn:/sbin/mgetty ttyS1

它的意思就是让Mgetty的串口ttyS1上监听,等待连接,如果有连接请求,Mgetty就向用户提示输入用户名和密码。

修改好之后,要使修改有效,可以运行如下代码:

init q

为了从远端登录,还要有一个账号,用useradd命令加一个叫ppp的用户,并用passwd命令为它设置口令。

(2)启动pppd与客户建立PPP连接

打开/etc/passwd文件,找到用户ppp的那一行,应该是这样的:

ppp:x:500:500::/home/ppp:/bin/bash

由此可以看出,用户ppp使用的shell程序是bash,现在要做的就是用pppd换掉这个bash。这样当用ppp登录时,就不会执行bash,而是执行pppd。如此,pppd就在服务器端启动了。

具体可以在/etc/ppp建立一个ppplogin文件,内容如下:

#!/bin/sh

exec/usr/sbin/pppd debug passive asyncmap 0 proxyarp lock Modem crtscts

chmod+x ppplogin

用ppplogin替换用户ppp的登录shell,就像如下代码:

ppp:x:500:500::/home/ppp:/etc/ppp/ppplogin

由于pppd执行必须要root权限,所以还要将pppd设成以root权限执行:

chmod u+s/usr/sbin/pppd

替换了登录shell和修改pppd属性之后,可以试一试。与前面介绍方法一样进行拨号,在输入用户名和密码之后,如果能看到pppd所特有垃圾字符,并且一行一行的没完,就说明服务器端pppd已经启动了。接着单击“继续”按钮,也就是启动客户端的pppd,与服务器的pppd进行握手。过了一段时间,就会看到登录网络成功,其标志就是熟悉的绿色小计算机出现了。

(3)针对Windows 98客户的特殊设置

Windows 98要求域名服务器在连接的时候传给它。pppd有个参数ms-dns,就是用来传DNS给客户的。在ppplogin里加上这个参数就可以了,比如:

#!bin/sh

exec/usr/sbin/pppd debug passive asyncmap 0 proxyarp lock

Modem crtscts ms-dns 202.106.0.20

这两个DNS中,第一个DNS是主,第二个DNS是辅的。

2.回拨(Callback)

Callback就是当用户拨号连到拨号服务器时,服务器先断掉连接,然后再拨回给用户。用户的Modem接收这个呼叫,从而建立拨号连接。这样就给“家庭办公”创造了有利条件,可以在家里用回拨的方式连到公司进行办公。

(1)服务器端设置

在设置之前,应该确保Mgetty的Callback程序安装好了。将下面这行内容加到/etc/mgetty+sendfax/login.config中:

call_hxf--/usr/sbin/callback-d-l ttyS1-s 115200 -S 62345678

前面的call-hxf是指为Mgetty增加一个名为call_hxf的用户入口。这个用户只是Mgetty用来启动Callback程序的,而不是Linux系统中的用户,不要真的用useradd添加一个call_hxf用户,这个call_hxf用户名只是Mgetty用的,不是系统的。用户通过Modem连到Linux上,Mgetty提示输入用户名时,如果输入的是call_hxf,Mgetty就调用/usr/sbin/callback程序来处理回拨。参数-b是指在/var/log/mgetty.ttyS1留下调试信息;-1 ttyS1是指使用ttyS1为拨出设备;-s 115200是串口速率;-S 62345678是指定的回拨电话号码。如果没有-S

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有