Linux 最强的,也是最让人称道的地方,就是他的网络功能了,不论是 Mail server、Web server、Proxy server等等,都好好用喔!但是,我们也常在网络上看到一堆常见的问题,就是在问『我的 Linux 没有办法连上网络,该如何是好....』等等的问题,问来问去的重点大概都是一样的状况!伤脑筋!那鸟哥就把一些在 Linux 上面可能会发生的网络问题把他整理一下,看看您是不是有这方面的问题,参考看看吧! |
其实,网络一出问题的时候,您应该从自己可以检查的地方检查起,因此,最重要的地方,就是您的网络卡是否有工作的问题啦!检查网络卡是否正常工作的方法如下:
- 使用 lsmod 看看网络卡的模块是否已被加载:
除非您曾经自行编译过核心,否则网络卡的驱动程序应该是以模块的型态存在才对!由于网络卡是最基本的网络组件之一啦!没有他,自然也就无法连上 Internet ,所以啰,请先确认一下您的网络卡是否已经被驱动吧!这个时候当然就要使用 lsmod 来看看啦!呵呵!没错!我的网络卡已经挂上去啦!所以没有问题!那么如果没有发现呢?嗯!那么很可能是没有捉到硬件啰!这个时候请先以 dmesg 确认一下是否已经捉到了网络卡啰!
[root@test root]# lsmod
Module Size Used by Tainted: P
ipt_MASQUERADE 1216 1 (autoclean)
iptable_filter 1696 1 (autoclean)
ip_conntrack_irc 2592 0 (unused)
ip_conntrack_ftp 3328 0 (unused)
ip_nat_irc 2400 0 (unused)
ip_nat_ftp 2976 0 (unused)
iptable_nat 13588 3 [ipt_MASQUERADE ip_nat_irc ip_nat_ftp]
ip_tables 11232 5 [ipt_MASQUERADE iptable_filter iptable_nat]
ip_conntrack 13356 3 [ipt_MASQUERADE ip_conntrack_irc ip_conntrack_ftp ip_nat_irc ip_nat_ftp iptable_nat]
ppp_async 6240 1 (autoclean)
8139too 14208 2 <==这个就是我的螃蟹卡模块啦!
usbcore 29632 0 (unused)嗯!确实是有捉到我的网络卡啦!是 Ethernet 的网络卡呦!
[root@test root]# dmesg
....略....
PPP generic driver version 2.4.1
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
Linux IP multicast router 0.06 plus PIM-SM
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
8139too Fast Ethernet driver 0.9.24 <==确实有捉到啰!
eth0: RealTek RTL8139 Fast Ethernet at 0x6100, 00:50:fc:22:9c:57, IRQ 10
eth0: Identified 8139 chip type 'RTL-8139C'
eth1: RealTek RTL8139 Fast Ethernet at 0x6300, 00:50:fc:22:9a:cb, IRQ 11
eth1: Identified 8139 chip type 'RTL-8139C'
eth0: Setting half-duplex based on auto-negotiated partner ability 0000.
eth1: Setting 100mbps full-duplex based on auto-negotiated partner ability 41e1.
- 使用 ifconfig 看看是否有网络卡的运作出现:
在确定网络卡已经被捉到之后,硬件就没有问题了,再来就是网络卡的软件设定问题。通常使用了 ifconfig 之后,会出现目前网络卡的 IP 状态说明,如果没有任何网络硬件被驱动的话,那就以 ifup eth0 来启动,再以 ifconfig 来看看网络设备的运作!如果还是没有办法启动的话,就需要来重新安装网络卡的驱动程序!如何确定网络卡有无正常工作呢?简单的很,就是使用 ifconfig 这个指令来检查一下吧!如上所示,是我的网络的设定,我共有两个网络卡,设备名称分别为 eth0 (对内,私有 IP )及 eth1 (对外),而由于我是使用 ADSL 拨接的,所以就有 ppp0 这个网络接口啰!至于第三个 lo 是主机内部的递归网络,这是每部机器都会有的。如上所述,那我的三个接口都有出来,并且 eth0 的 IP 是 192.168.1.2 这一个,那就表示设备应该没有问题才对!如果想要确定一下到底网络有没有通,您可以使用 ping 的功能:
[root@test root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:FC:22:9A:CB
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:35747 errors:0 dropped:0 overruns:0 frame:0
TX packets:38701 errors:0 dropped:0 overruns:0 carrier:0
collisions:567 txqueuelen:100
Interrupt:11 Base address:0x6300eth1 Link encap:Ethernet HWaddr 00:90:CC:08:49:13
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:79570 errors:0 dropped:0 overruns:0 frame:0
TX packets:69642 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0x6100lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:4553 errors:0 dropped:0 overruns:0 frame:0
TX packets:4553 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0ppp0 Link encap:Point-to-Point Protocol
inet addr:140.116.141.114 P-t-P:140.116.141.253 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:27577 errors:0 dropped:0 overruns:0 frame:0
TX packets:25980 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10如果有响应的话,如上面所示,那就是正常啦!
[root@test root]# ping -c 5 192.168.1.2
PING 192.168.1.2 (192.168.1.2) from 192.168.1.2 : 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=0 ttl=255 time=0.2 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=255 time=0.2 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=255 time=0.2 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=255 time=0.2 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=255 time=0.1 ms--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.2 ms
- 不必拨接的已知固定式 IP 的检查方式:
假如已经知道您的公共 IP 、 通讯闸 (GateWay),且不必拨接的情况 (Giga 的 ADSL 不算这一种!),您可以直接修改 /etc/sysconfig/network 以及 /etc/sysconfig/network-scripts/ifcfg-eth0 这两个档案,然后以 ifup eth0 启动网络卡,并以 ping 您的网络卡 IP 来看看是否有正常工作。例如上面的范例,需要注意的地方是在 GATEWAY=及 GATEWAYDEV=eth0 这个地方 (只需要有一个即可) ,例如成大环工的 gateway IP 是 140.116.44.253 ,那您只要将您的 gate way 设定成那个 IP 就是了(就是 GATEWAY=140.116.44.253 )!而您的公共 IP 的修改方法为:
[root@test root]# vi /etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=your.domain.name在上面的例子中,您的 IP 是 140.116.44.125,则您可以广播的地址共有 140.116.44.1-255( 140.116.44.255那一个 ),而您的子屏蔽网络为 255.255.255.0。好了!都设定完成之后,那就直接以下面的方式来启动:
[root@test root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=140.116.44.255
IPADDR=140.116.44.125
NETMASK=255.255.255.0
NETWORK=140.116.44.0
GATEWAY=140.116.44.253
ONBOOT=yes看看网络卡是否正常的启动了呢?
[root@test root]# /etc/rc.d/init.d/network restart
[root@test root]# ifup eth0
[root@test root]# ping -c 5 140.116.44.125
- 需拨接的网络卡 IP :
通常建议直接在 /etc/sysconfig/network 及 /etc/sysconfig/network-scripts/ifcfg-eth0 中,给予一个虚拟 IP 后,再 ping 您的网络卡 IP 。这是由于拨接式 ADSL 在拨接之前是没有公共 IP 的,所以我们先以私有 IP 来测试看看网络卡是否可以正常启动吧:网友们最常发生问题的地方在于,您是以 eth1 来作为拨接的网络卡,但是却将 GATEWAYDEV 设定成 eth0 ,那样的话,您对外要求的封包将都会透过 eth0 这个私有 IP 的网络卡向外要求数据,由于私有 IP 没有办法连上 Internet ,所以,您的网络就完全上不了 Internet 啦!所以这里的设定要注意一下啰!
[root @test /root]# vi /etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=your.domain.name在上面的例子中,您将网络卡的私有 IP 设定成为 192.168.1.2 这一个!有一个习惯的错误在于将 BOOTPROTO ( 通讯协议 ) 设定成 DHCP ,这是不对的,因为您的网络是透过拨接的方式,在拨接的过程中就会由 rp-pppoe 拨接程序连接到 ISP 以 PPP 协议来设定好您自己的网络参数,所以这里设定 DHCP 是没有意义的!这里只要设定成 none 就行了!千万注意了!然后再以下面的方式来确认网络卡的运作与否:
[root @test /root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=no
GATEWAYDEV=ppp0请注意呦!这个部分不需要修改也没有关系,如果您的设定是『 ONBOOT=no 』,嘿嘿!所以开机的时候并不会启动网络卡,那么实际拨接的时候就不会有干扰啰!如果需要启动拨接系统来确认拨接是否可行,可以按照上面的方式修改完两个档案,然后将 adsl-setup 设定完成,之后以下面的方式来启动 ADSL 试试看:
[root@test root]# /etc/rc.d/init.d/network restart
[root@test root]# ifup eth0
[root@test root]# ping -c 5 192.168.1.2事实上,在 ADSL 拨接之前有没有启动 eth0 都没有关系,不过,有时候就是那么悬疑,启动了 eth0 就是没有办法拨接成功,那么您就可以将 eth0 先关闭再进行拨接试看看,通常就可以成功了。启动之后,再以 ping 的方式来确定一下网络:
[root@test root]# ifdown eth0
[root@test root]# /etc/rc.d/init.d/network restart
[root@test root]# adsl-start如果确定可以连上 Internet 之后,就将 adsl-start 写进 /etc/rc.d/rc.local 中吧!
[root@test root]# ping -c 5 your.IP
[root@test root]# ping -c 5 168.95.1.1
[root@test root]# ping -c 5 tw.yahoo.com
- 重新安装网络卡驱动程序:
如果上面的方式都没有办法来正常启动您的网络卡时,那就只好再捉一次您的网络卡驱动程序了。首先看看驱动程序对不对吧! 假设您买的是螃蟹卡,那么您的 /etc/modules.conf 内容就会有点像这样 ( 在 Red Hat 6.x 以前的档案,档名为 /etc/conf.modules !):在上面的例子中,由于我有两块网络卡,第一块是属于螃蟹卡 (芯片为 RelTeck8139) ,第二块是 VIA 的芯片 ( 直接以 viarhine 来驱动 ) 第三行是将 viarhine 这个芯片驱动的意思。万一您插了两张相同的网络卡,那要如何来区分网络卡的先后次序呢?!例如插了两块 rtl8139 的网络卡,那您可以这样写 ( 增加 io 及 irq 的控制参数 ):
[root@test root]# vi /etc/modules.conf
alias eth0 rtl8139
alias eth1 viarhine上面是说,两块卡的io 与 irq 分别为 0x300, 3 及 0x320, 5。至于这方面的相关信息,您可以进入 windows 系统中看过 ( 所以说,可以安装成多成操作系统啦! ) 再来修改吧!好了,那如果要重新安装网络卡的驱动程序呢?!嗯!翻回连上 Internet 那一章节察看吧!通常的网络卡驱动程序安装方法步骤如下:
[root@test root]# vi /etc/modules.conf
alias eth0 rtl8139
alias eth1 rtl8139
options rtl8139 io=0x300,0x320 irq=3,5
- 下载您的网络卡驱动程序;
- 编译并安装模块;
- 修改 /etc/conf.module 档案;
- 修改 /etc/sysconfig/network 档案;
- 修改 /etc/sysconfig/network-scripts/ifcfg-eth0 档案;
- 以 ifup eth0 来启动您的 网络卡 试试看啰!
您只要将您的网络设备与您的芯片名称写上正确的,再加上将该芯片的驱动程序编译完成,并摆在 /lib/modules/`uname -r`/kernel/drivers/net 里面即可 ( 若核心为 2.2.xx 则需要摆在 /lib/modules/2.X.X/net里面即可啰!)
VBird 的建议: 其实,在架设 Linux 服务器的过程中,大概最麻烦的地方就是在网络的设定这里了,尤其是后续的一些局域网络的联机设定 ( 如果涉及 NAT 主机来分享网络频宽的话,将会更麻烦! ) ,所以这里 VBird 要给大家一个建议,就是遇到网络卡设定的瓶颈的时候,干脆先买一块很便宜,但是支持度很高的螃蟹卡 ( 我去大卖场看过,最便宜的只要 250 不到就有了! ) ,先将网络架设起来再说!否则一个新手花了很多的时间去搞一块莫名的网络卡,常常会磨损一个 Linux 爱好者的耐心!
[root@test root]# ping -c 5 192.168.1.100 |
在一般正常的情况之下,当您下达 route 这个指令的时候,您的路由表 ( route table ) 应该会很快的显示出来,如果万一不幸显示的速度非常之慢,那么通常就是您的网络设定可能『有点怪怪的』,当然啦,如果是您的系统还有设定了 IP alias 的话,那么就真的会有点慢慢的~不过没有关系,我们还是可以来测试一下是否有问题呢!?
[root@test root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
140.116.141.253 * 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 140.116.141.253 0.0.0.0 UG 0 0 0 ppp0
请注意,由于我有两块网络卡( 一块对内一块对外,我的系统架构就如同 图一 所显示的那样! ),加上我是以拨接的方式连上 Internet 的,所以自然就会有 eth0, eth1, ppp0 及本来就会有的 lo 这三个接口,而由于 eth1 这个接口是依附在 ppp0 上面的( 我的 ppp0 的拨接适配卡使用的是 eth1 呦!),所以自然也就没有 eth1 这个接口的设定!好了,那么我的路由接口自然就应该会有 eth0, ppp0, lo 这三个啦!那由于 lo 是 127.0.0.1 ,加上他是 A Class 的网络循环,因此就会得到上面的那一行!同时,我的预设通讯闸自然选择可以连上 Internet 的 ppp0 那块,所以也就成为 default 那一行啰!无论如何,我的 route 可以这样就设定妥当没有问题!
如果发生错的话,最常发生在这个地方的情况就是有点像底下的样子:
[root@test root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
140.116.141.253 * 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.1.2 0.0.0.0 UG 0 0 0 eth0
发现哪里有问题了吗?对啦!那个 default 怎么 gateway 为 192.168.1.2 呢?对啦!唯一有问题的地方就是在那儿!因为预设的 GATEWAY 变成了 192.168.1.2 这个私有 IP ,自然无法连接上 Internet ,那么当您使用『ping -c 5 202.1.237.21』当然也就会显示出封包递送的 IP 为 192.168.1.2 ,呵呵!完全连不出去!怎么办?!很简单啦!除了手动以 route 这个指令修改之外,也可以修改 /etc/sysconfig/network-scripts/ifcfg-eth0 这个档案,将里头的 GATEWAY 或 GATEWAYDEV 的设定修正一下,就可以啦!加油!!
如果通过上面的问题确认,这个时候您的网络情况应该是:该如何是好!?嘿嘿!这时就需要注意您的 DNS 设定了!通常,如果是 DNS 设定的问题的时候,发生的现象是这样的:(我们以雅虎站 tw.yahoo.com, IP:202.1.237.21 来说明)
- 网络卡与室内的联机材料都是好的;
- 并且局域网络内的计算机都可以互通;
- 同时,adsl-start 已经正确的工作了;
- ping IP 可以 ping 的到,但是可能没有办法以浏览器直接浏览网站。
这时就需要改变您的主机的 DNS 设定了!您可以修改 /etc/resolv.conf 档案:
- 以 IP 来 ping 雅虎有数据可以传递:
有点像这样:
[root@test root]# ping -c 5 202.1.237.21
PING 202.1.237.21 (202.1.237.21) from 211.74.152.23 : 56(84) bytes of data.
64 bytes from 202.1.237.21: icmp_seq=0 ttl=246 time=103.6 ms
64 bytes from 202.1.237.21: icmp_seq=1 ttl=246 time=105.3 ms
64 bytes from 202.1.237.21: icmp_seq=3 ttl=246 time=112.8 ms
64 bytes from 202.1.237.21: icmp_seq=4 ttl=246 time=87.7 ms
64 bytes from 202.1.237.21: icmp_seq=5 ttl=246 time=92.0 ms--- 202.1.237.21 ping statistics ---
6 packets transmitted, 5 packets received, 16% packet loss
round-trip min/avg/max = 87.7/100.2/112.8 ms- 以 领域名称 来 ping 却没有响应:
有点像这样:
[root@test root]# ping -c 5 tw.yahoo.com
ping: unknown host tw.yahoo.com
[root@test root]# vi /etc/resolv.conf
nameserver 168.95.1.1
nameserver 139.175.10.20
nameserver 163.28.113.1
上面只是一个简单的表示方法,您的主要的 DNS 主机为 168.95.1.1 (Hinet的 DNS 主机),而备用的 DNS 则为 139.175.10.20 及 163.28.113.1 这两个。何谓备用的 DNS 主机呢?这是由于 168.95.1.1 可能会因为某些正常或不正常原因而停止服务的时候,则您的主机只要侦测不到 主要 DNS 主机,将会继续往下寻找另一个 DNS 主机,直到没有 DNS 主机为止。通常我至少都会设定两个以上。
NAT 可以先简单的想成是一个 IP 分享器,NAT 无法正确的工作原因有很多,不过,如果您确定您的局域网络联机已经正常,而且主机可以正确的连上 Internet,另外,客户端的 DNS 设定也是正确的(这一步常常有人搞错!),那么可能发生的问题大概就是没有将 IPv4 打开吧!虽然 /etc/sysconfig/network 当中已经设定了FORWARD_IPV4=yes 的项目,但是仍然有可能没有开启这一个项目,那么就以下面的指令来开启吧!echo 1 > /proc/sys/net/ipv4/ip_forward您可以将这个指令写入 /etc/rc.d/rc.local 这个档案中。另外,还有一点,就是您的 GateWay 设定错误了!这个在上面的 network 档案说明中已经提到了,您可以再详细的看一看!或者是使用 route -n 这个指令来察看一下您的 route table (路由表)例如:仔细看到上面喔:
[root@test root]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
172.16.11.8 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 172.16.11.8 0.0.0.0 UG 0 0 0 ppp0
- 第六行显示您的对内网域为 192.168.1.0 这一个,且在 Iface 的地方,显示了您的界面卡使用的是 eth0 这一个界面卡;
了解了吗?对内与对外的 route table 是不一样的,如果您的对外 Iface 显示 eth0 的话,那就表示您的路由设定错误了!这时您就必须要修改一下您的 /etc/sysconfig/network-scripts/ifcfg-eth0 档案啰!然后再以
- 另外,您的对外通讯闸(就是最后一行,由于是对外,所以会写出 0.0.0.0 的 Destination )是以 172.16.11.8 这一个,且您的界面是 ppp0 这一个!
/etc/rc.d/init.d/network restart来重新启动!
除了这些问题之外,您的 ipchains/iptables 是否正确的工作呢?这都需要注意的!而在 Red Hat 7.X 的版本之后,由于 ipchains 与 iptables 并存的环境下,会有问题发生,因此您必须取消任何一个防火墙机制才行!如果对于 ipchains 与 iptables 不是很熟悉的话,可以看一下这一篇讨论:小州先生的 iptables 相关 NAT 与安全防护说明:好了!除了这些问题之外,还有一个小问题,就是发生在 Windows 的系统中,可能会有 MTU 的问题存在,也就是说,可能有部分的网站您没有办法连上去,那要如何是好?您可以翻到前一章去看一看如何修改您的 MTU 吧!至于更多的 NAT 功能与错误确认,我们会在 NAT 主机的设定一节再详细的说明喔!
http://linux.vbird.org/linux_server/0150detect_network_1.php
在您确认了上面的几个问题点之后,大概已经可以让您的网络畅通了!不过,如果还是没有办法连上 Internet 呢?那就很有可能是外部的问题了!我们需要注意的大概是这样:基本上,前两点都很好解决,直接看一下 ADSL 的灯号就可以知道是否正常了!第三点才是我们这里所要探讨的!万一您从成大要联机到您高雄家中的以 seednet 作为 ISP 的您的主机时,您可以使用 traceroute 这样做:
- ADSL 的 modem 灯号是否都是正常的?如果不正常的话,先处理 modem 吧!
- 连接到中华电信的 gateway 是否正常?这可以从 ifconfig 当中得到的信息,去 ping 那个 gateway 试试看!再不然的话,直接打电话到中华电信的机房去询问一下是否有问题;
- 是否有部分的 router 出现问题了:
在这样的过程中,您就可以知道,您向您家中要求的数据封包是怎样传送的!而一个一个的去了解到底您的网络传输速度是在哪一个环节被挡了下来而有延迟的问题!又例如我从家里联机到雅虎的网站时,数据封包时如何传送的呢?例如下面的说明:
[root@test root]# traceroute tsai.adsldns.org
traceroute to tsai.adsldns.org (211.74.251.208), 30 hops max, 38 byte packets
1 140.116.44.253 (140.116.44.253) 7.373 ms 8.732 ms 9.560 ms
2 203.72.191.42 (203.72.191.42) 0.932 ms 1.050 ms 0.716 ms
3 203.72.191.218 (203.72.191.218) 0.906 ms 1.209 ms 0.867 ms
4 R56-161.seed.net.tw (139.175.56.161) 2.229 ms 1.877 ms 2.154 ms
5 R58-38.seed.net.tw (139.175.58.38) 3.283 ms 3.639 ms 5.303 ms
6 br011008.seed.net.tw (139.175.11.8) 4.344 ms 3.941 ms 3.602 ms
7 swks251-208.adsl.seed.net.tw (211.74.251.208) 50.058 ms 52.567 ms 53.109 ms最后面出现了 * 的符号,这表示从 203.69.65.65 这一个 router 到下一个 router 的过程中可能有点小问题,所以造成了您的网络有点不是很正常的情况发生!这时您就必须要去了解下原因了。像早先新竹的一条光缆被挖断的时候,由于那条光缆是主要的网络干道之一,所以被挖断了,将使得数据封包必须经过东部的以及备份的网络流量较小的备援网络系统来处理,所以也就造成大塞车的问题了!另外,本站前一阵子由于教育部的 UPS 在进行维护的工程,结果也是导致成大部分的网络流量受阻,造成我们的网友无法联机进来的结果,您可以到鸟哥的私房菜首页(http://linux.vbird.org)看一下在 2001/12/6-10 日之间的公告,这样的检验也可以让我们了解到网络流量的瓶颈喔!
[root@test root]# /usr/sbin/traceroute tw.yahoo.com
traceroute to tw.yahoo.com (202.1.237.21), 30 hops max, 38 byte packets
1 172.16.11.8 (172.16.11.8) 46.181 ms 45.028 ms 39.722 ms
2 139.175.15.1 (139.175.15.1) 37.972 ms 36.554 ms 40.228 ms
3 R58-194.seed.net.tw (139.175.58.194) 45.332 ms 46.370 ms 46.140 ms
4 R58-90.seed.net.tw (139.175.58.90) 46.814 ms 55.286 ms 46.401 ms
5 211.22.41.174 (211.22.41.174) 46.326 ms 57.491 ms 45.398 ms
6 211.22.35.230 (211.22.35.230) 46.813 ms 57.740 ms 46.117 ms
7 211.22.35.169 (211.22.35.169) 46.319 ms 51.316 ms 52.549 ms
8 203.69.65.65 (203.69.65.65) 46.342 ms 46.185 ms 58.698 ms
9 * * *
另外一个常见的问题是,无法登入主机执行『某些』功能,也就是说,您可以 ping 的到网络上的某部主机,但是就是无法执行这个主机的某些特定的功能,例如 FTP, WWW, mail 等等。以鸟哥的某个主机为例,我的主机仅提供 mail 及 www 的服务,因此您使用 telnet 及 ftp 都是没有用的!所以啰,必须先去了解到该主机提供的服务才行!
那如果是您的主机呢?最常见到的就是新版的 Linux 中,ftp 与 telnet 已经预设不开放了!那您当然无法以 ftp 及 telnet 连接到您的主机里面!这时,就必须要到 /etc/xinetd.d 去修改几个服务的设定,以 telnet 为例,您可以在 /etc/xinetd.d/telnet 中看到如下的咚咚:看看上面,请将 disable = yes 改成 disable = no 就可以开启啦!然后再以 /etc/rc.d/init.d/xinetd restart 来启动您的 telnet 服务!不过,基本上也有可能是 firewall 挡住了您的服务通道,这时,就需要先开启防火墙了!
[root@test root]# vi /etc/xinetd.d/telnet
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
还有一个要检查的是各个档案或者是程序的权限了!例如您的 /etc/hosts.allow 中是否有开启?您的 mail server 是否有设定 relay ?您的 httpd.conf 中是否有开放 PHP 或者是 MySQL 的服务,或者是其它相关的 CGI 程序执行的可行性?您的 FTP 是否有开放匿名登入?等等等,都是需要特别的检查的,不过,这都属于一般性的 FAQ 了,这里就不多做说明。