本节的目的是在Linux下设置ppp,使其能拨号并连接到你的ISP,从而将你的机器与Internet相连,进而你就可以在网上为所欲为了。
喜欢条理清晰的文章,所以我写的东西也尽量做到有条理。下面就是linux ppp客户端设置的一般步骤:
1 编译内核使其支持ppp。
2 设置串行端口和调制解调器。
3 掌握你的ISP的信息。
4 安装拨号所需软件并进行设置。
5 手动方式建立ppp连接。
6 使ppp连接自动化。
7 设置域名解析(DNS)。
8 其他问题。
1.1编译内核使其支持ppp
要实现ppp客户,一是需要内核支持ppp,另外就是需要ppp的软件pppd(ppp daemon)。编译内核虽然不难,但也并非简单的一塌糊涂,庆幸的是,在大多数情况下,你不用重新编译你的内核。我使用的是RedHat 6.0,它带的内核就已经支持ppp了。其他各种发布版本的linux内核也是支持ppp的。如果你在使用自己编译的内核,你就要注意这个内核是否支持ppp。编译内核并不是本文的范围,如果你确实要自己重新编译内核,请查阅相关文档。
1.2设置串行端口和调制解调器
串口设备文件
调制解调器是串行设备,外置的需要连到一个串口上,内置自己有一个串口。大家知道,UNIX系统对外设的操作都是通过特定的设备文件完成的,Linux下串口设备文件的命名和DOS的关系如下:
DOS COM1 = Linux /dev/cua0 (and /dev/ttyS0)
DOS COM2 = Linux /dev/cua1 (and /dev/ttyS1)
等等。
一般来说/dev/cua*是用来拨出的,/dev/ttyS*是用来拨入的,但现在好像已经不加以区分了,统统用的是/dev/ttyS*。如果你的机器上没有/dev/ttyS*,你需要用mknod来自己建立这些设备文件,但有个脚本程序MAKEDEV可以简化这个工作:
# cd /dev
# ./MAKEDEV ttyS0
设置中断号和I/O地址你不需要阅读这一节,除非你想要使用三个或更多的串行设备,比如一个串行鼠标,三个 modem 。
一般来讲 COM1 和 COM3 共用 IRQ3 , COM2 和 COM4 共用 IRQ4 ,一个设备必须唯一对应一个 IRQ 号才行,如果有三个以上的串行设备,就要把别处没用的中断号拿过来用了。使用如下命令设置中断号:
/sbin/setserial /dev/ttyS0 irq 3 # 串行鼠标
/sbin/setserial /dev/ttyS1 irq 4 # MODEM 1
/sbin/setserial /dev/ttyS2 irq 5 # MODEM 2
/sbin/setserial /dev/ttyS3 irq 9 # MODEM 3
你有必要将这些命令放在 /etc/rc.d/rc.local 中,使其在 linux 启动时运行。你可以使用:
cat /proc/interrupts
来察看系统的中断设置,以确保没有中断冲突。 I/O 地址与中断一样,必须唯一。你可以设置硬件跳线来改变 I/O 地址。一般串行口的 I/O 地址是这样的:
ttyS0 address 0x3f8
ttyS1 address 0x2f8
ttyS2 address 0x3e8
ttyS3 address 0x2e8
一般情况下,你没有必要改变串行口的 I/O 地址。可以使用命令 cat /proc/ioports
来察看系统的 I/O 地址设置,以确保没有冲突。
设置调制解调器
一般情况下,调制解调器的出厂设置就很合适了,不用改变什么。但如果你把调制解调器搞得一塌糊涂,就需要对它进行从新设置。由于我这方面没有实践经验,如果你真的不幸遇到这种情况,就去看看调制解调器的说明吧。
需要说明的是, linux 不支持所谓 winmodem ,这种 modem 需要特殊的 windows 驱动程序才能使用,目前还没有 linux 下的驱动。据说这种 winmodem 就是所谓的“软猫”,我看有点像。
1.3 掌握你的 ISP 的信息
由于你是通过 ISP 与 Internet 连接的,所以掌握 ISP 的信息对于你拨号是很重要的,下面列出了你应该知道的基本信息:
拨号服务的电话号码
服务器使用动态 IP 地址分配还是静态的 IP?
[1] [2] [3] 下一页
ISP 的域名服务器( DNS ) IP 地址是什么 ?
登录服务器时都要回答什么问题?
如果服务器是 Windows NT ,它是否使用微软的 PAP/CHAP 系统 ?
这里可能会有一个问题 Windows 95 系列的拨号设置允许让 DNS 的地址在连线过程中传到客户端。因此你的 ISP 可能会告诉你不需要知道 DNS 服务器的 IP 地址。对于 Linux 来说,它不允许在连线之时动态地指定 DNS 的 IP 地址。所以你需要知道 DNS 地址并自己设置 DNS 。
对于第 5 点,由于我没有实践经验,并且实际应用比较少见,就不做讨论了。请参阅相关文档。
1.4 安装拨号所需软件
ppp 客户所需的程序有 chat 和 pppd ,如果你的机器上还没有这两个程序,就要安装它们。在 RedHat 中,使用如下命令:
rpm -Uvh ppp-2.3.7-2.i386.rpm
另外还有一个终端通讯程序 minicom ,在我们这里是用来测试拨号用的,也要安装上:
rpm -Uvh minicom-1.82-5.i386.rpm
chat 程序的用途是拨号并等待提示,根据提示输入用户名和密码等登录信息。 pppd 的用途是建立并维持与服务器的 ppp 连接,传输数据。
手动方式建立 ppp 连接
在进行了上面 4 项内容后,我们就要进行拨号了!这一节介绍的是一种手动的方法,目的是用来测试的。不管是手动还是后面要讲的自动方式,整个 ppp 连接很明显的分成两个步骤:
拨通 ISP 的电话,建立物理线路的连接,并启动 ISP 端的 pppd 程序。
启动本机的 pppd 程序与服务器端的 pppd 进行握手,建立 ppp 连接。
你会在以后的叙述中很清楚的看到这两个步骤。
如果你想节约时间,可以越过本节,直接配置自动 ppp 。但是作为 step by step 的建议,你还是应该阅读本节,虽然你并不一定要实际的操作它。
用 minicom 测试拨号
首先我们用 minicom 测试一下,看看能否拨通 ISP 。我使用的是 RedHat6.0 自带的 minicom ,其他版本的 minicom 可能热键不同。在运行 minicom 之前,需要建立 /dev/modem 这个设备文件,比如我的 modem 接在 COM2 上,使用如下命令建立 /dev/modem :
ln /dev/ttyS1 /dev/modem
运行 minicom ,输入 Ctrl-A ,再敲 Z 就可以看到帮助,此时按 D ,就是拨号,会出现一个界面,此时选择 manual (手动),并输入 ISP 的电话号码,调制解调器一阵乱响之后,会有几声音乐响,并在屏幕上提示按任意键继续,按任意一个键,就会出现你 ISP 的信息,并提示输入 username , passWord ,有可能还要提示你选择 ppp 连接还是 slip 连接等等。现在服务器端的 pppd 应该被启动,表现就是会出现如下的垃圾字符: }8}!}$}%U}"}&} } } } }%}& ...}}"}(}"} .~y}
至此,说明你的机器拨号正常,可以与你的 ISP 正常连接。在这一步,你需要记录下拨号服务器的提问,以及你的回答,以便今后实现自动拨号。
用 pppd 建立 ppp 连接
上面只是测试拨号能否成功,下面就是要建立 ppp 连接。
还是用 minicom ,如前所示进行拨号,直到出现垃圾字符,此时退出 minicom(Ctrl-A,Q) ,注意:不是 reset ,只是退出。然后执行 pppd 程序如下:
pppd debug lock modem crtscts defaultroute /dev/ttyS1 115200&
debug 是说要在 /var/log/messages 留下调试信息。 Lock 是说锁定串口设备。 Modem 是说用调制解调器的控制信号。 Crtscts 是说使用硬件数据流控制, defaultroute 是说在本机路由表中加入一项缺省路由,它使你不仅能连到拨号服务器,还能通过它连接整个 Internet 。 /dev/ttyS1 是说 modem 在 COM2 口上, 115200 是串口的速率。 & 是说这个程序在后台执行。
等一段时间, ppp 连接建立之后,运行 ifconfig ,这是你就会看到 ppp0 的网络接口,并能看出你被分配的 ip 地址和对端服务器的 ip 地址。运行 route ,你会看到对端服务器的 ip 地址也被加入了路由表。好了!你的拨号成功了!此时可以 ping 一下 Internet 上的某个主机的 IP 地址,因该是没问题的。
现在还不能使用域名,因为还没配(废话)。
如果你的机器本身是连在局域网上的,你要确保在拨号之前没有缺省路由,就是在 route 命令中看不到 default 或 0.0.0.0 。原因很简单,拨号会产生一个缺省路由,如果原来就有一个,拨号产生的缺省路由就不起作用,你就不能连到 Internet 上,而还是在局域网里。可以用命令:
上一页 [1] [2] [3] 下一页
route del -net default
删除以前的缺省路由,再进行拨号,从而使拨号产生的缺省路由有效。
怎样才能知道 ppp 连接建立了呢?在一个单独的虚拟控制台上运行:
tail -f /var/log/messages
你就可以动态的观察各种日志信息,包括 pppd 的调试信息。当你看到:
Jun 23 16:10:31 hxf pppd[1234]: local IP address 210.78.131.151
Jun 23 16:10:31 hxf pppd[1234]: remote IP address 192.168.10.21
(出处:http://www.sheup.com)
上一页 [1] [2] [3]
你就可以动态的观察各种日志信息,包括 pppd 的调试信息。当你看到:
Jun 23 16:10:31 hxf pppd[1234]: local IP address 210.78.131.151
Jun 23 16:10:31 hxf pppd[1234]: remote IP address 192.168.10.21
(出处:http://www.sheup.com/)
上一页 [1] [2] [3] [4]