现在你已经建立你的 /etc/ppp/options
以及 /etc/resolv.conf
文档(以及,如果有需要,还有 /etc/ppp/pap|chap-secrets
文档),你可以藉由手动设立 PPP 连线来测试这些设定(一旦我们使手动连线能运作,我们将会自动化该过程)
要做这件事,你的通讯软件必须能在不重置你的数据机的情况下结束
Minicom 可以做到 - ALT Q
(或者在比较旧的 minicom 版本是使用 CTRL A Q
)
确定你以 root 签入
启动你的通讯软件(像是 minicom),拨接到 PPP 伺服器并且像平常一样的签入 如果你需要发出某个指令来起动伺服端上的 PPP,那么就做吧 你将会看见你以前看过的垃圾
如果你使用 PAP 或 CHAP 的话,那么只是连线到硬件系统应该就会起动在硬件上的 PPP 而且你将在没有签入的情况下就见到这些垃圾(虽然这在某些伺服器上不会发生 - 试著按下 Enter 看看能否看到这些垃圾)
现在,在不要重置数据机的情况下结束通讯软件(在 minicom 使用 ALT Q
或 CTL A Q
)并且在 Linux 的提示符号下(以 root 的身分)键入
pppd -d -detach /dev/ttySx 38400 &
-d
这个选项开启侦错功能 - ppp 连线起动时的”交谈”将会记录到你的系统记录里去 - 如果你遇上麻烦这会很有用的
你数据机的灯现在应该要闪烁,因为要建立 PPP 连线 PPP 连线的建立将会花点时间
此时你可以观察 PPP 界面,藉由发出这个指令
ifconfig
在你所拥有的任何乙太网路以及回授设备之外,你应该会看见像这样的信息:
ppp0 Link encap:Point-Point Protocol inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.0 UP POINTOPOINT RUNNING MTU:552 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0
其中
(自然, ifconfig 不会报告这些 IP 号码,而是你的 PPP 伺服器上使用的 )
注意: ifconfig 也告诉你该连结已经起动并且正在执行!
如果没有 ppp 装置列出或得到的是像这样的信息:
ppp0 Link encap:Point-Point Protocol inet addr:0.0.0.0 P-t-P:0.0.0.0 Mask:0.0.0.0 POINTOPOINT MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:0 errors:0 dropped:0 overruns:0
你的 PPP 连线并没有建立... 参阅稍后有关错误排除的章节!
你还可以看到这部硬件机器(及其后的)的递送路径 要做到这点,下这个指令
route -n
你应该看到像这样的:-
Kernel routing table Destination Gateway Genmask Flags MSS Window Use Iface 10.144.153.3 * 255.255.255.255 UH 1500 0 1 ppp0 127.0.0.0 * 255.0.0.0 U 3584 0 11 lo 10.0.0.0 * 255.0.0.0 U 1500 0 35 eth0 default 10.144.153.3 * UG 1500 0 5 ppp0
特别注意这里,我们有两个项目指到我们的 ppp 装置
第一项是主机递送(以 H 旗号表示)并且允许我们看到这部我们正在连接的主机 - 但再来就没有了
第二项是预设递送路径(由 pppd 的 defaultroute
选项所建立的)
这份递送路径告诉我们的 Linux PC 将任何不在内部乙太网路的封包送到那里 - 到我们指定的网路 - 也就是到 PPP 伺服器本身
而 PPP 伺服器有责任为我们将封包递送到网际网路并将回应的封包送回给我们
如果你在递送表格中没看到两个项目,有些事不对劲 特别是如果你的系统记录(syslog)显示一信息告诉你 pppd 无法取代已存在的预设递送路径,那么你已有一预设递送路径指向你的乙太网路界面 - 而这必须由指定的网路递送来取代: 你只能有一个预设递送路径!!!
你必须检查一下你系统的起始文档以找出预设递送是在那里建立的(这是由 route add default...
指令指定的)
将它改成像这样的 route add net...
现在藉由 ifconfig 之输出所回报的 IP 号码来 'ping' 一下该伺服器以测试这个连结,像这样
ping 10.144.153.51
你应该会接收到像这样的输出
PING 10.144.153.51 (10.144.153.51): 56 data bytes 64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms 64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms 64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms 64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms
这将会一直列印下去 - 按下 CTRL C
终止它,那时你将会接收到更多信息:
--- 10.144.153.51 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 170.7/219.2/328.3 ms
到目前都很好
现在试著藉由名称 ping 某台主机(不是 PPP 伺服器它自己的名称,而是在另一个地方的一台你知道可能已经起动而且正在运作的主机) 例如
ping sunsite.unc.edu
这时会有一点停顿,因为 Linux 从你在 /etc/resolv.conf
里指定的 DNS 取得你要 'ping' 的完整主机名称所对应的 IP 位址 - 所以不要担心(但是你将会看见你的数据机灯号闪烁)
在短暂的时间后你将会接收到像这样的输出
PING sunsite.unc.edu (152.2.254.81): 56 data bytes 64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms 64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms 64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms 64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms 64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms
再一次,藉由按下 CTRL C
终止输出并取得统计资料...
--- sunsite.unc.edu ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max = 169.8/176.3/190.1 ms
如果你没有收到任何回应,试著 ping 一下你的 ISP 提供的 DNS 的 IP 位址
如果你从这里得到肯定的结果,那么看起来问题在你的 /etc/resolv.conf
文档里
如果这样会没有结果,问题出在网路递送上,或者是你的 ISP 在将封包递送回给你时出了问题 检查上面的递送表格,如果没问题,和你的 ISP 联络 一个测试 ISP 的好方法是用另一种作业系统来连接 如果这样就可以动,那么问题就在你这边
如果一切正常,藉由键入这个指令终止该连线
ppp-off
一段短暂的停顿之后,数据机应该会自己挂断电话
如果这个指令无法动作的话,那么不是关掉你的数据机就是起动你的通讯软件并且以 +++
中断数据机然后当你接收到数据机的 OK 提示时以 ATH0
挂断电话
你可能也得清除 pppd 所建立的锁定档
rm -f /var/lock/LCK..ttySx