## 6.2 处理流程
既然知道上面已经谈到的几个小重点了,接下来当然是一个一个的给他处理掉啊! 底下我们就得要一步一脚印的开始检查的流程啊!
* * *
### 6.2.1 步骤一:网络卡工作确认
其实,网络一出问题的时候,你应该从自己可以检查的地方检查起,因此, 最重要的地方就是检查你的网络卡是否有工作的问题啦!检查网络卡是否正常工作的方法如下:
1. 确定网络卡已经驱动成功:
如果网络卡没有驱动成功,其他的,免谈!所以你当然需要驱动你的网络卡才行!确认网络卡是否被驱动,可以利用 lspci 以及 dmesg 这两个咚咚来查询相关的设备与模块的对应。详情请参考:[第四章](http://linux.vbird.org/linux_server/0130internet_connect.php#note_nic)的相关说明。 再次强调,捉不到网卡驱动程序,除了自己编译之外,再购买一张便宜的网卡来应付着用,是不错的想法!
2. 确定可以手动直接建立 IP 参数:
在顺利的加载网络卡的模块,并且『取得网络卡的代号』之后,我们可以利用 [ifconfig](http://linux.vbird.org/linux_server/0140networkcommand.php#ifconfig) 或 [ip](http://linux.vbird.org/linux_server/0140networkcommand.php#ip_cmd) 来直接给予该网络卡一个网络地址试看看! 看能否给予 IP 设定呢?例如:
```
[root@www ~]# ifconfig eth0 192.168.1.100
```
来直接建立该网络卡的 IP ,然后直接输入 ifconfig 看能否查阅到刚刚设定好的参数即可。 如果可以建立起该 IP ,就以 ping 来检测看看:
```
[root@www ~]# ping 192.168.1.100
```
如果有响应的话,那表示这个网卡的设定应该是没有问题了!再来则是开始检测一下局域网络内的各个连接硬件啦!
* * *
### 6.2.2 步骤二:局域网络内各项连接设备检测
在确认完了最重要的网络卡设定之后,并且确定网络卡是正常的之后,再接着下来则是局域网络内的网络连接情况了!假设你是按照 [图 6.1-1](#fig6.1-1) 所设定的星形联机局域网络架构,那么你必须要知道整个『网域』的概念!
1. 关于网域的概念:
能否成功的架设出区网,与网域的概念有关!所以,你要知道所谓的 192.168.1.0/24 这种网域的表达方式所代表的意义, 且子网掩码 (Netmask) 的意义也得了解。如果忘记了,请回去[第二章网络基础](http://linux.vbird.org/linux_server/0110network_basic.php)再翻一翻。
2. 关于 Gateway 与 DNS 的设定:
Gateway 与 DNS 最容易被搞混~这两个并非是填写你的 Linux 主机的 IP 喔!应该是要填写 IP 分享器 (或 NAT 主机) 的 IP 在 Gateway 中,填写 168.95.1.1 在 DNS 的 IP 设定当中!不能够搞错啊!
3. 关于 Windows 端的工作组与计算机名称:
假如你还需要资源共享,那么你就必须在 windows 系统中开放档案分享, 并且建议所有的计算机将『工作组』设定相同,但『计算机名称』则不能相同!不过,这个只与网芳及 SAMBA 服务器有关。
假设你的区网内所有的主机 IP 都设定正确了,那么接下来你就可以使用 ping 来测试两部区网内主机的联机, 这个联机的动作可以让你测试两部主机间的各项设备,包括网络线、Hub/Switch 等等的咚咚! 如果无法测试成功,那就请了解一下:
1. IP 参数是否设定正确:
再次强调,先决定 IP/netmask 是对的!鸟哥在上课的时候常常发现同学无法连到我的主机上, 一经使用 ifconfig 才发现他们与我的 IP 不在同一个网段内,就是会有这样的情况发生啊!唉~
2. 联机的线材问题:
包括我们前面提到的网络线本身折损、过度缠绕造成的讯号衰减问题等等, 另外,有些比较旧的 Hub/Switch 或者是 ADSL 调制解调器,由于没有 [Auto MDI/MDIX](http://linux.vbird.org/linux_server/0110network_basic.php#auto_mdi) 的功能,所以无法自动的分辨跳线与否, 那么当你用错网络线的时候,也就无法接通啦!另外,早期我们常常会说, 最简单判断每部主机是否顺利连接到 Hub/Switch 可以透过连接到 Switch 上的灯号来判断, 不过,由于有时候网络线本身讯号不良,虽然灯号还是会亮,不过就是无法连接到 Switch 的情况 (鸟哥自己就曾发生过啊),此时,跟朋友借一条 OK 的网络线来测试看看吧!
3. 网卡或 Hub/Switch 本身出问题:
有一次鸟哥无法在外部连接到鸟哥的主机,怀疑是挂点了,结果冲到主机所在办公室察看,咦! 主机是好好的嘛!那怎么会无法联机呢?原因是...室内环境通风不良,加上 Switch 所在处温度过高, 加上那部旧的 switch 『刚好』风扇坏了,哈!就这样『 switch 当机 』 在重新启动 switch (拔掉再插上电源线) 后就正常了。所以啰,很多情况都是会发生的, 而局域网络内的环境也很容易影响到联机质量啊!
确定自己主机的 IP 与网卡没有问题,加上内部区网透过 ping 也测试过没有问题,接下来就是要『取得可以对外联机的 IP 参数』啦!这个重要!
* * *
### 6.2.3 步骤三:取得正确的 IP 参数
什么叫『取得正确的 IP 参数』啊?还记得我们谈过如果要顺利的连接上 Internet 的话, 必须要可以跟 public IP 进行沟通才行,而与 public IP 取得沟通的方法,在台湾比较常见的有 ADSL, Cable modem, 学术网络, 电话拨接等等。在 CentOS 当中,我们可以透过修改 /etc/sysconfig/network-scripts/ifcfg-eth0,或者是利用 rp-pppoe 来进行拨接, 无论如何,你就是得要连接到某个 ISP 去就是了~
在你确认所有的区网没有问题之后,参考一下[第四章](http://linux.vbird.org/linux_server/0130internet_connect.php)的介绍,连上之后,立即以 ifconfig 看看有没有捉到正确的 IP 啊? 在台湾如果使用 ADSL 联机的话,你应该可以顺利的取得一组正确的 Public IP 参数的!
**Tips:** 曾有国外的华人朋友来信说到,他们使用 ADSL 拨接之后竟然取得一组 Private IP , 害他们没有办法架站!他们想请问这样的情况是否合理。如果你熟悉路由相关的概念之后, 当然会知道:『这当然合理!』,因为你取得的 IP 只是为了要连接到 ISP 去而已, 而 ISP 与你的主机当然可以透过 Private IP 来联机啊!如果是这样的话,那么你就肯定无法架站了! ^_^
![](https://box.kancloud.cn/2016-05-13_5735736501917.gif)
另外,最常发现无法顺利取得 IP 的错误就是『BOOTPROTO』这个设定值设定错了!因为 static 与 dhcp 协议所产生的 IP 要求是不一样的啊!还记得吧!要特别留在 ifcfg-eth0 里面的设定参数喔!另外,如果你是使用 ADSL 拨接的, 但是老是无法拨接成功,那么建议你可以这样试看看:
* 将 ADSL 的调制解调器整个关机,将 Switch/Hub 也关掉电源;
* 静待十分钟,等这些设备比较『凉快』一点后,再重新插上电源;
* 将 Linux 连接到 ADSL 的那块网卡 (假设为 eth0) 在 ifcfg-eth0 内,『ONBOOT』设定为 no, 重新启动网络 (/etc/init.d/network restart),然后再执行 adsl-start
* 如果还是无法拨接成功,并且你已经确认内部网域没有问题,那请中华电信的工程人员来帮忙你处理吧!
因为很多时候都是由于网络媒体过热,也有可能主机内部的一些网络参数有点问题, 所以,干脆就不要启动网卡,让 adsl-start 自动去启动网卡即可! 如果顺利取得 IP 后,却还是无法顺利连到 Internet 上面时,你觉得还有哪些地方需要处理的呢?
**Tips:** 为了避免 switch 以及 ADSL 调制解调器热当,鸟哥以及一些重度网络用户的朋友,就买了桌上型小电扇,配合定时器 (timer) 来定时的向这两个设备吹风~为啥需要定时器?因为担心电风扇一直开着会烧掉...
![](https://box.kancloud.cn/2016-05-13_5735736501917.gif)
* * *
### 6.2.4 步骤四:确认路由表的规则
如果你已经顺利取得正确的 IP 参数的话,那么接下来就是测试一下是否可以连上 Internet 啊! 鸟哥建议你可以尝试使用 ping 来连连看 Hinet 的 DNS 主机,也就是 168.95.1.1 那部机器啦!
```
[root@www ~]# ping -c 3 168.95.1.1
```
如果有响应,那就表示你的网络『基本上已经没有问题,可以连到 Internet 了!』, 那如果没有响应呢?明明取得了正确的 IP 却无法连接到外部的主机,肯定有鬼!呵呵!没错! 还记得我们在网域内资料的传输可以直接透过 [MAC](http://linux.vbird.org/linux_server/0110network_basic.php#fig_mac) 来传送, 但如果不在区网内的数据,则需要透过路由,尤其是那个预设路由 (default route) 来帮忙转递封包吧! 所以说,如果你的 public IP 无法连接到外部 (例如 168.95.1.1) ,可能的问题就出在路由与防火墙上面了。假设你没有启动防火墙,那问题就缩小到剩下路由啰~ 那路由的问题如何检查?就用 [route -n](http://linux.vbird.org/linux_server/0140networkcommand.php#route) 来检查啊!
例题:假设有个使用 ADSL 拨接的 Linux 主机,他的路由表如下,你觉得出了什么问题?
```
Destination Gateway Genmask Flags Metric Ref Use Iface
59.104.200.1 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
169.254.0.0 0.0.0.0 255.255.0.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 192.168.1.2 0.0.0.0 UG 0 0 0 eth0
```
答:仔细看到上面的路由输出,第一条是 ppp0 产生的 public IP 接口,第二条是 eth0 的内部网域接口,再看到最后一条的 0.0.0.0/0.0.0.0 这个预设路由,竟然是内部网域的 eth0 为 gateway ?不合理,最大的问题应该是出在 ifcfg-eth0 里面不小心设定了『GATEWAY=192.168.1.2』 所致,解决的方法为:
1. 取消 ifcfg-eth0 内 GATEWAY=192.168.1.2 那一行,(该行亦可能出现在 /etc/sysconfig/network 内)
2. 重新启动网络 /etc/init.d/network restart
3. 重新进行拨接: adsl-stop; adsl-start
另外一个可能发生的情况,就是:『忘记设定预设路由』啦!例如使用 ifconfig 手动重新设定过网络卡的 IP 之后,其实路由规则是会被更新的,所以预设路由可能就会不见了!那个时候你就得要利用 route add 来增加预设路由啰!
* * *
### 6.2.5 步骤五:主机名与 IP 查询的 DNS 错误
如果你发现可以 ping 到 168.95.1.1 这个 Internet 上面的主机,却无法使用浏览器在网址列浏览 http://www.google.com 的话,那肯定 99% 以上问题是来自于 DNS 解析的困扰!解决的方法就是直接到 /etc/resolv.conf 去看看设定值对不对啊!一般常见的内容是这样的:
```
[root@www ~]# vim /etc/resolv.conf
nameserver 168.95.1.1
nameserver 139.175.10.20
```
最常见的错误是『那个 nameserver 的拼字写错了!』真是最常见的问题~另外,如果 client 端是 Windows 系统呢?常常初学者会搞错的地方就是在 windows 的设定了!要注意:Windows 端的 DNS 设定与主机端 /etc/resolv.conf 的内容相同即可!很多初学者都以为 TCP/IP 内的 DNS 主机是填上自己的 Linux 主机,这是不对的 (除非你自己的 Linux 上面有 DNS 服务) !你只要填上你的 ISP 给你的 DNS 主机 IP 位置就可以了
另外,每一部主机都会有主机名 (hostname) ,预设的主机名会是 localhost ,这个主机名会有一个 127.0.0.1 的 IP 对应在 /etc/hosts 当中。如果你曾经修改过你的主机名,该主机名却无法有一个正确 IP 的对应, 那么你的主机在开机时,[可能会有好几十分钟的延迟](http://linux.vbird.org/linux_server/0130internet_connect.php#problem_hosts)。 所以啰,那个 /etc/hosts 与你的主机名对应,对于内部私有网域来说,是相当重要的设定项目呢!
* * *
### 6.2.6 步骤六:Linux 的 NAT 服务器或 IP 分享器出问题
NAT 服务器最简单的功能就是 IP 分享器啦!NAT 主机一定是部路由器,所以你必须要在 Linux 上面观察好正确的路由信息。否则肯定有问题。另外, NAT 主机上面的防火墙设定是否合理? IP 分享器上面是否有设定抵挡的机制等等,都会影响到对外联机是否能够成功的问题点。 关于 NAT 与防火墙我们会在后续的章节继续介绍的啦!
* * *
### 6.2.7 步骤七:Internet 的问题
Internet 也会出问题喔!当然啦~没有任何东西是不会出问题的!举例来说,好几年前台湾西岸因为施工的关系, 导致南北网络骨干缆线被挖断,结果导致整个 Internet 流量的大塞车!这就是 Internet 的问题~还有,数年前 [Study Area 网站](http://phorum.study-area.org/)放置的地点由于路由器设定出了点差错, 结果导致连接速度的缓慢。这都不是主机本身出问题,而是 Internet 上面某个节点出了状况。 想要确认是否问题来自 Internet 的话,就使用 [traceroute](http://linux.vbird.org/linux_server/0140networkcommand.php#traceroute) 吧! 查察看问题是来自那个地方再说!
* * *
### 6.2.8 步骤八:服务器的问题
如果上述的处理都 OK ,却无法登入某部主机时,我想,最大的问题就是出现在主机的设定啦!这包括有:
* 服务器并没有开放该项服务:例如主机关闭了 telnet ,那你使用 telnet 去联机,是无法连接上的啦!
* 主机的权限设定错误:例如你将某个目录设定为 drwx------ ,该目录拥有者为 root , 你却将该目录开放给 WWW 来浏览,由于 WWW 无法进入该目录,所以当然无法正确的给客户端浏览啊! 这是最典型的权限设定错误的情况啊!
* 安全机制设定错误:例如 SELinux 是用来更细微控管主机存取的一种核心机制,结果你启动的是系统原先不支持的类型, 那么 SELinux 反而可能会抵挡该服务的提供!而其他例如 /etc/hosts.deny, PAM 模块等等, 都可能造成使用者无法登入的问题!这就不是网络问题,而是主机造成联机无法成功!
* 防火墙问题:防火墙设定错误也是一个很常见的问题,你可以使用 [tcpdump](http://linux.vbird.org/linux_server/0140networkcommand.php#tcpdump) 来追踪封包的流向, 以顺利的了解防火墙是否设定错误。
基本上,一个网络环境的检测工作可不是三言两语就讲的完的~而且常常牵涉到很多经验的问题~ 请你常常到一些讲座的场合去听听看大家的经验,去 google 看看人家的解决方法, 都有助于让你更轻易的解决网络问题的喔! ^_^!鸟哥也将上述的动作规划成一个流程图,参考看看:
![](https://box.kancloud.cn/2016-05-13_5735da4ed9ebb.gif)
图 6.2-1、网络问题解决流程图
* * *
- 鸟哥的Linux私房菜:服务器架设篇 第三版
- 第一部份:架站前的进修专区
- 作者序
- 第一章、架设服务器前的准备工作
- 1.1 前言: Linux 有啥功能
- 1.2 基本架设服务器流程
- 1.3 自我评估是否已经具有架站的能力
- 1.4 本章习题
- 第二章、基础网络概念
- 2.1 网络是个什么玩意儿
- 2.2 TCP/IP 的链结层相关协议
- 2.3 TCP/IP 的网络层相关封包与数据
- 2.4 TCP/IP 的传输层相关封包与数据
- 2.5 连上 Internet 前的准备事项
- 2.6 重点回顾:
- 2.7 本章习题
- 2.8 参考数据与延伸阅读
- 第三章、局域网络架构简介
- 3.1 局域网络的联机
- 3.2 本书使用的内部联机网络参数与通讯协议
- 第四章、连上 Internet
- 4.1 Linux 连上 Internet 前的注意事项
- 4.2 连上 Internet 的设定方法
- 4.3 无线网络--以笔记本电脑为例
- 4.4 常见问题说明
- 4.5 重点回顾
- 4.6 本章习题
- 4.7 参考数据与延伸阅读
- 第五章、 Linux 常用网络指令
- 5.1 网络参数设定使用的指令
- 5.2 网络侦错与观察指令
- 5.3 远程联机指令与实时通讯软件
- 5.4 文字接口网页浏览
- 5.5 封包撷取功能
- 5.6 重点回顾
- 5.7 本章习题
- 5.8 参考数据与延伸阅读
- 第六章、 Linux 网络侦错
- 6.1 无法联机原因分析
- 6.2 处理流程
- 6.3 本章习题
- 6.4 参考数据与延伸阅读
- 第二部分:主机的简易资安防护措施
- 第七章、网络安全与主机基本防护:限制端口, 网络升级与 SELinux
- 7.1 网络封包联机进入主机的流程
- 7.2 网络自动升级软件
- 7.3 限制联机埠口 (port)
- 7.4 SELinux 管理原则
- 7.5 被攻击后的主机修复工作
- 7.6 重点回顾
- 7.7 课后练习
- 7.8 参考数据与延伸阅读
- 第八章、路由观念与路由器设定
- 8.1 路由
- 8.2 路由器架设
- 8.3 动态路由器架设:quagga (zebra + ripd)
- 8.4 特殊状况:路由器两边界面是同一个 IP 网段: ARP Proxy
- 8.5 重点回顾
- 8.6 本章习题
- 8.7 参考数据与延伸阅读
- 第九章、防火墙与 NAT 服务器
- 9.1 认识防火墙
- 9.2 TCP Wrappers
- 9.3 Linux 的封包过滤软件:iptables
- 9.4 单机防火墙的一个实例
- 9.5 NAT 服务器的设定
- 9.6 重点回顾
- 9.7 本章习题
- 9.8 参考数据与延伸阅读
- 第十章、申请合法的主机名
- 10.1 为何需要主机名
- 10.2 注册一个合法的主机名
- 10.3 重点回顾
- 10.4 本章习题
- 10.5 参考数据与延伸阅读
- 第三部分:局域网络内常见的服务器架设
- 第十一章、远程联机服务器SSH / XDMCP / VNC / RDP
- 11.1 远程联机服务器
- 11.2 文字接口联机服务器: SSH 服务器
- 11.3 最原始图形接口: Xdmcp 服务的启用
- 11.4 华丽的图形接口: VNC 服务器
- 11.5 仿真的远程桌面系统: XRDP 服务器
- 11.6 SSH 服务器的进阶应用
- 11.7 重点回顾
- 11.8 本章习题
- 11.9 参考数据与延伸阅读
- 第十二章、网络参数控管者: DHCP 服务器
- 12.1 DHCP 运作的原理
- 12.2 DHCP 服务器端的设定
- 12.3 DHCP 客户端的设定
- 12.4 DHCP 服务器端进阶观察与使用
- 12.5 重点回顾
- 12.6 本章习题
- 12.7 参考数据与延伸阅读
- 第十三章、文件服务器之一:NFS 服务器
- 13.1 NFS 的由来与其功能
- 13.2 NFS Server 端的设定
- 13.3 NFS 客户端的设定
- 13.4 案例演练
- 13.5 重点回顾
- 13.6 本章习题
- 13.7 参考数据与延伸阅读
- 第十四章、账号控管: NIS 服务器
- 14.1 NIS 的由来与功能
- 14.2 NIS Server 端的设定
- 14.3 NIS Client 端的设定
- 14.4 NIS 搭配 NFS 的设定在丛集计算机上的应用
- 14.5 重点回顾
- 14.6 本章习题
- 14.7 参考数据与延伸阅读
- 第十五章、时间服务器: NTP 服务器
- 15.1 关于时区与网络校时的通讯协议
- 15.2 NTP 服务器的安装与设定
- 15.3 客户端的时间更新方式
- 15.4 重点回顾
- 15.5 本章习题
- 15.6 参考数据与延伸阅读
- 第十六章、文件服务器之二: SAMBA 服务器
- 16.1 什么是 SAMBA
- 16.2 SAMBA 服务器的基础设定
- 16.3 Samba 客户端软件功能
- 16.4 以 PDC 服务器提供账号管理
- 16.5 服务器简单维护与管理
- 16.6 重点回顾
- 16.7 本章习题
- 16.8 参考数据与延伸阅读
- 第十七章、区网控制者: Proxy 服务器
- 17.1 什么是代理服务器 (Proxy)
- 17.2 Proxy 服务器的基础设定
- 17.3 客户端的使用与测试
- 17.4 服务器的其他应用设定
- 17.5 重点回顾
- 17.6 本章习题
- 17.7 参考数据与延伸阅读
- 第十八章、网络驱动器装置: iSCSI 服务器
- 18.1 网络文件系统还是网络驱动器
- 18.2 iSCSI target 的设定
- 18.3 iSCSI initiator 的设定
- 18.4 重点回顾
- 18.5 本章习题
- 18.6 参考数据与延伸阅读
- 第四部分:常见因特网服务器架设
- 第十九章、主机名控制者: DNS 服务器
- 19.1 什么是 DNS
- 19.2 Client 端的设定
- 19.3 DNS 服务器的软件、种类与 cache only DNS 服务器设定
- 19.4 DNS 服务器的详细设定
- 19.5 协同工作的 DNS: Slave DNS 及子域授权设定
- 19.6 DNS 服务器的进阶设定
- 19.7 重点回顾
- 19.8 本章习题
- 19.9 参考数据与延伸阅读
- 第二十章、WWW 伺服器
- 20.1 WWW 的簡史、資源以及伺服器軟體
- 20.2 WWW (LAMP) 伺服器基本設定
- 20.3 Apache 伺服器的進階設定
- 20.4 登錄檔分析以及 PHP 強化模組
- 20.5 建立連線加密網站 (https) 及防砍站腳本
- 20.6 重點回顧
- 20.7 本章習題
- 20.8 參考資料與延伸閱讀
- 第二十一章、文件服务器之三: FTP 服务器
- 21.1 FTP 的数据链路原理
- 21.2 vsftpd 服务器基础设定
- 21.3 客户端的图形接口 FTP 联机软件
- 21.4 让 vsftpd 增加 SSL 的加密功能
- 21.5 重点回顾
- 21.6 本章习题
- 21.7 参考数据与延伸阅读
- 第二十二章、邮件服务器: Postfix
- 22.1 邮件服务器的功能与运作原理
- 22.2 MTA 服务器: Postfix 基础设定
- 22.3 MRA 服务器: dovecot 设定
- 22.4 MUA 软件:客户端的收发信软件
- 22.5 邮件服务器的进阶设定
- 22.6 重点回顾
- 22.7 本章习题
- 22.8 参考数据与延伸阅读