现在您已经创建了您的/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 |
其中
inet addr:10.144.153.10 是您链路端的 IP 地址。
P-t-P:10.144.153.5 是服务器的 IP 地址。
(当然,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 接口。
第一个是 HOST 路由(由 H 标志指示),它允许我们看到我们连接到的主机 - 但仅此而已。
第二个是默认路由(通过给 pppd 选项建立defaultroute)。这是告诉我们的 Linux PC 将任何不以本地以太网为目标的包(我们有特定的网络路由到这些以太网)发送到 PPP 服务器本身的路由。然后,PPP 服务器负责将我们的数据包路由到 Internet 上,并将返回的数据包路由回给我们。
如果您没有看到包含两个条目的路由表,则说明有问题。特别是,如果您的 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 从您在其中指定的 DNS 获取您“ping”的完全限定主机名的 IP 地址/etc/resolv.conf- 所以不用担心(但您会看到您的调制解调器指示灯闪烁)。很快您将收到类似以下的输出
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 的一个好方法是使用另一个操作系统进行连接。如果您可以使用另一个操作系统连接到 ISP 之外,则问题出在您这边。
如果一切正常,请通过键入以下命令关闭连接:-
ppp-off |
短暂暂停后,调制解调器应该会自行挂断。
如果这不起作用,请关闭调制解调器,或启动您的通信软件并使用 +++ 中断调制解调器,然后在收到调制解调器的 OK 提示后使用 ATH0 挂断。
您可能还需要清理 pppd 创建的锁文件。
rm -f /var/lock/LCK..ttySx |