本篇内容实验环境为Redhat 6.5系统
一、查看及测试网络
查看及测试网络配置时管理Linux网络服务的第一步。其中本篇中大多数命令以普通用户权限就可以完成操作。
1、查看网络配置
1.1)、使用ifconfig命令查看网络接口地址
主机的网络接口卡(网卡)通常称为“网络接口”。在Linux系统中,使用ifconfig命令可以查看网络接口的地址配置信息。
查看活动的网络接口设备
当ifconfig命令不带任何选项和参数时,将显示当前主机中已启用(活动)的网络接口信息。
[root@twgdh ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:8B:68:54 inet addr:192.168.10.131 Bcast:192.168.10.255 Mask:255.255.255.0 ……//省略部分内容 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 ……//省略部分内容
在上述输出结果中,eth0对应为第一块物理网卡,lo对应为虚拟的回环接口。
■ eth0:第一块以太网卡的名称。“eth0”中的“eth”是“ethernet”的缩写,表示网卡类型为以太网,数字“0”表示第1块网卡。由于大多数主机中只有一块物理网卡,因此“eth0”代表系统中唯一的网络接口。如果有多个物理网卡,则第2块网卡表示为“eth1”,第3块网卡表示为“eth2”,依次类推。
■ lo:“回环”网络接口,“lo”是“loopback”的缩写,它并不代表真正的网络接口,而是一个虚拟的网络接口,其ip地址默认是“127.0.0.1”。回环地址通常仅用于对本机的网络测试。
查看指定的网络接口信息
当只需要查看其中某一个网络接口的信息时,可以使用网络接口的名称作为ifconfig命令的参数(不论该网络接口是否处于激活状态)。
[root@twgdh ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:8B:68:54 inet addr:192.168.10.131 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe8b:6854/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:120 errors:0 dropped:0 overruns:0 frame:0 TX packets:67 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:11224 (10.9 KiB) TX bytes:8427 (8.2 KiB)
上述命令显示的结果中,其中eth0网卡的一些基本的信息如下
■ “HWaddr”:表示网络接口的物理地址(MAC地址),如“00:0C:29:8B:68:54”。网络接口的物理地址通常不能更改,是网卡在生产时确定的全球唯一的硬件地址。
■ “inet addr”:表示网络接口的IP地址,如“192.168.10.131”。
■ “Bcast”:表示网络接口所在网络的广播地址,如“192.168.10.255”。
■ “Mask”:表示网络接口的子网掩码,如“255.255.255.0”。
除此以外,还能通过“TX”、“RX”等信息了解到通过该网络接口发送和接收的数据包个数、流量等更多属性。
1.2)、使用hostname命令查看主机名称
在Linux系统中,相当一部分网络服务都会通过主机名来识别本机,如果主机名配置不当,可能会导致程序功能出现故障。使用hostname命令可以查看当前主机的主机名,不用添加任何选项或参数。
[root@twgdh ~]# hostname twgdh
1.3)、使用route命令查看路由表条目
Linux系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。直接执行route命令可以查看当前主机中的路由表信息,在输出结果中,Destination列对应目标网段的地址,Gateway列对应下一跳路由器的地址,Iface列对应发送数据的网络接口。
[root@twgdh ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.10.0 * 255.255.255.0 U 0 0 0 eth0 default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
当目标网段为“Default”时,表示此行是默认网关记录;当下一跳为“*”时,表示目标网段是与本机直接相连的。例如,从上述输出信息中可以看出,当前主机与192.168.1.0/24网段直接相连,使用的默认网关地址是192.168.10.1.
若结合“-n”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。
[root@twgdh ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
1.4)、使用netstat命令查看网络连接情况
通过netstat命令可以查看当前系统的网络连接状态、路由表、接口统计等信息,是了解网络状态及排除网络服务故障的有效工具。netstat命令的常用选项包括以下几项。
■ –a:显示当前主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
■ –n:以数字的形式显示相关的主机地址、端口等信息。
■ –r:显示路由表信息。
■ –l:显示处于监听(Listening)状态的网络连接及端口信息。
■ –t:查看TCP协议相关信息。
■ –u:查看UDP协议相关信息。
■ –p:显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)。
通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的TCP连接信息,同时显示对应的进程信息。结合命令管道使用“grep”命令,还可以在结果中过滤出所需要的特定记录。例如,执行以下操作可以查看本机中是否有监听“tcp 80”端口的服务程序,输出信息中包括PID号和进程名称。
[root@twgdh ~]#netstat –anpt | grep ":80" tcp 0 0 :::80 :::* LISTEN 26556/httpd
2、测试网络连接
2.1)、使用ping命令测试网络连通性
使用ping命令可以向目的主机持续地发送测试数据包,并显示反馈结果,知道按Ctrl+C组合键后终止测试,并显示最终统计结果。
[root@twgdh ~]# ping 192.168.10.11 PING 192.168.10.11 (192.168.10.11) 56(84) bytes of data. 64 bytes from 192.168.10.11: icmp_seq=1 ttl=128 time=0.367 ms 64 bytes from 192.168.10.11: icmp_seq=2 ttl=128 time=0.500 ms ^C ……//按Ctrl+C组合键中止执行 --- 192.168.10.11 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1813ms rtt min/avg/max/mdev = 0.367/0.433/0.500/0.069 ms
执行ping测试命令时,若不能获得从目标主机发回的反馈数据包则表+示在本机到目标主机之间存在网络连通性故障。例如,若看到“Destination Host Unreachable”的反馈信息,则表示目的主机不可达,可能目标地址不存在或者主机已关闭;若看到“Network is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关),无法达到目标主机所在网络。
[root@twgdh ~]# ping 192.168.10.120 PING 192.168.10.120 (192.168.10.120) 56(84) bytes of data. From 192.168.10.131 icmp_seq=1 Destination Host Unreachable From 192.168.10.131 icmp_seq=2 Destination Host Unreachable …….//省略部分内容
当网络中存在影响通信过程稳定性因素(如网卡故障、病毒或网络攻击等)时,使用ping命令测试可能会频繁看到“Request timeout”的反馈结果,表示与目标主机间的连接超时(数据包响应缓慢或丢失)。除此以外,当目标主机有严格的防火墙限制时,也可能收到发回“Request timeout”的反馈结果。
2.2)、使用traceroute命令跟踪数据包的路由途径
使用traceroute命令可以测试从当前主机到目的主机之间经过了哪些网络节点,并显示个中间节点的连接状态(相应时间)。对于无法相应的节点,连接状态将显示为“*”。
[root@twgdh ~]# traceroute 192.168.20.7 traceroute to 192.168.20.7 (192.168.20.7),30 hops max,40 byte packets 1 (192.168.10.1) 7.740 ms 15.581 ms 15.881 ms 2 (192.168.20.7) 19.652 ms 19.995 ms 19.942 ms ^C ……//按Ctrl+C组合键中止执行
traceroute命令能够比ping命令更加准确地定位网络连接的故障点(中断点),执行速度也因此会比ping命令稍慢。在网络测试与排错过程中,通常会先使用ping命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用traceroute命令跟踪查看是在哪个中间节点存在故障的。
2.3)、使用nslookup命令测试DNS域名解析
当域名解析出现异常时,将无法使用域名的形式访问网络中的web站点、电子邮件系统等服务。nslookup命令时用来的测试域名解析的专用工具。例如执行“nslookup www.51cto.com”命令后,nslookup程序将提交查询请求,询问站点www.51cto.com对应的IP地址是多少。
[root@twgdh ~]# nslookup www.51cto.com server: 219.238.164.7 Non-authoritative answer: Name: r3yqkx5kwhhscpnv65gwty5uu5dfmpys.yundunwaf.com Address: 59.110.244.199 Aliases: www.51cto.com
若能够成功反馈要查询域名的IP地址,则表示域名解析没有问题,若出现下面的提示则表示不能连接指定的DNS服务器。
[root@twgdh ~]# nslookup www.51cto.com ;; connection timed out; trying next origin ;; connection timed out; no servers could be reached
二、设置网络地址参数
在Linux主机中,手动修改网络配置包括两种最基本的方法。
■ 临时配置:通过命令直接修改当前正在使用的网络地址,修改后立即可以生效,这种方式操作简单快速、执行效率高,一般在调试网络的过程中使用。但由于所做的修改并没有固定地存放在静态的文件中,因此当重启network服务或重启主机后将会失效。
■ 固定配置:通过配置文件来存放固定的各种网络地址,需要重启network服务或重启主机后才会生效。这种方式操作上相对要复杂一些,但相当于“永久配置”,一般在需要为服务器设置固定的网络地址时使用。
一)、临时配置
1、使用网络配置命令
1.1)、使用ifconfig命令修改网卡的地址、状态
ifconfig 命令不仅可以用于查看网卡配置,还可以修改网卡的IP地址、子网掩码,也可以绑定虚拟网络接口、激活或停用网络接口。
■ 修改网卡的IP地址、子网掩码
[root@twgdh ~]# ifconfig eth0 192.168.10.131/24
或者
[root@twgdh ~]# ifconfig eth0 192.168.10.131 netmask 255.255.255.0
如果命令末尾不加子网掩码,默认按有类地址算!
■ 禁用、激活网络接口
需要临时禁用或者重新激活指定的网络接口,需要结合“down”、“up”开关选项。网络接口被禁用以后,将无法使用该网络接口与其他主机进行连接。
[root@twgdh ~]# ifconfig eth0 down ……//禁用网卡eth0 [root@twgdh ~]# ifconfig eth0 up ……//启用网卡eth0
■ 为网卡绑定虚拟接口
在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的IP地址,但是又不能覆盖原有IP地址而导致服务程序不可用。这时可以为网卡绑定一个虚拟的网络接口,然后再为虚拟接口设置新的IP地址(相当于一块网卡配多个IP地址)。
[root@twgdh ~]# ifconfig eth0:0 172.17.17.17 ……//第一个虚拟地址 [root@twgdh ~]# ifconfig eth0:1 10.0.0.1 ..….//第二个虚拟地址 [root@twgdh ~]# ifconfig ……//查看网卡信息 eth0 Link encap:Ethernet HWaddr 00:0C:29:8B:68:54 inet addr:192.168.10.131 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe8b:6854/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:295 errors:0 dropped:0 overruns:0 frame:0 TX packets:227 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:30618 (29.9 KiB) TX bytes:26611 (25.9 KiB) eth0:0 Link encap:Ethernet HWaddr 00:0C:29:8B:68:54 inet addr:172.17.17.17 Bcast:172.17.255.255 Mask:255.255.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth0:1 Link encap:Ethernet HWaddr 00:0C:29:8B:68:54 inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
可以根据需要添加更多的虚拟接口。
2、使用route命令添加、删除静态路由记录
route命令不仅可以用于查看路由表信息,还可以用来添加、删除静态的路由表条目,其中也包括设置默认网关地址(默认网关记录是一条特殊的静态路由条目)。
2.1)、添加、删除到指定网段的路由记录
通过“route add”操作可以添加路由记录,结合“-net“选项指定目标网段的地址,结合“gw”选项指定下一跳路由器的IP地址。
[root@twgdh ~]# route add -net 192.168.20.0/24 gw 192.168.10.1 [root@twgdh ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.20.0 192.168.10.1 255.255.255.0 UG 0 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
通过“route del”操作可以删除路由记录,只要结合“-net”选项指定对应路由记录中的目标网段的地址即可。
[root@twgdh ~]# route del -net 192.168.20.0/24 [root@twgdh ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
2.2)、添加、删除默认的网关记录
添加、删除默认网关记录时,与添加、删除静态路由记录的命令格式类似,但是指定目标网段时只需简单地使用“default”表示即可,无须再使用“-net”选项指明网段地址。
[root@twgdh ~]#route | grep “default” default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0 [root@twgdh ~]# route del default gw 192.168.10.1 ……//删除默认网关记录 [root@twgdh ~]# route | grep "default" ……//检索时无输出结果 [root@twgdh ~]# route add default gw 192.168.10.1 ……//添加新的默认网关记录 192.168.10.1 [root@twgdh ~]# route | grep "default" ……//确认新的默认网关记录 default 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
需要注意的是,在同一个主机的路由表中只应有一条默认网关记录。若同时存在多条默认网关记录,可能会导致该主机的网络连接出现故障。
2.3)、使用hostname命令修改主机的名称
hostname命令不仅可以显示当前主机的名称,还可以修改当前主机的名称。在新登录的用户会话(Shell环境)中,命令提示符中的主机名部分也会出现相应的变化。
[root@twgdh ~]# hostname twgdh [root@twgdh ~]# hostname hlj [root@twgdh ~]# hostname hlj [root@twgdh ~]# bash [root@hlj ~]# hostname hlj
二)、固定配置
1、修改网络配置文件
当需要为Linux服务器设置固定的网络地址时,若还是用ifconfig、hostname等网络命令来进行设置,将会大大降低服务器运行的可靠性。若要使Linux主机在重启系统以后任然能够使用相同的网络配置,那么直接修改配置文件时最好的方法。
1.1)、网络接口配置文件
网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为“ifcfg-XXX”,其中”XXX”是网络接口的名称。
[root@hlj ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:8B:68:54 TYPE=Ethernet UUID=7f7dfd5b-5533-40ff-94d2-2696bc002320 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.10.131 NETMASK=255.255.255.0 GATEWAY=192.168.10.1 DNS1=202.106.0.20 DNS2=202.106.46.151
上述各配置项的含义及作用如下。
■ DEVICE:设置网络接口的名称。
■ ONBOOT:设置网络接口是否在Linux系统启动时激活。
■ BOOTPROTO:设置网络接口的配置方式,值为“static”时表示使用静态指定的IP地址,为“dhcp”时表示通过DHCP的方式动态获取地址。
■ IPADDR:设置网络接口的IP地址。
■ NETMASK:设置网络接口的子网掩码。
■ GATEWAY:设置网络接口的默认网关地址
■ DNS1:设置第一个DNS服务器的地址。
■ DNS2:设置第一个DNS服务器的地址。
2.2)、启用、禁用网络接口配置
在RHEL系统中,当修改了网络接口的配置文件以后,若要使新的配置生效,可以重新启动network服务或者重启主机。默认情况下,重启network服务将会先关闭所有的网络接口,然后再根据配置文件重新启用所有的网络接口。
[root@hlj ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 [root@hlj ~]# service network restart
如果只是想禁用、启用摸一个网络接口(而不是所有接口),可分别使用两个接口控制脚本ifdown、ifup。
[root@hlj ~]# ifdown eth0 [root@hlj ~]# ifup eth0
2.3)、主机名称配置文件
若要永久修改Linux系统的主机名,可以修改配置文件/etc/sysconfig/network。在此文件中,“HOSTNAME”行用于设置主机名,而“NETWORKING”行用于设置IPv4网络的默认启用状态。
[root@hlj ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=twgdh
2.4)、域名解析配置文件
■ 指定为本机提供DNS解析的服务器地址
/etc/resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。Linux系统中最多可指定3个不同的DNS服务器地址(第三个以后的将被忽略),优先使用第一个DNS服务器。
[root@hlj ~]# vim /etc/resolv.conf search localdomain nameserver 202.106.0.20 nameserver 202.106.46.151
resolve.conf文件中的“search localdomain”行用来设置默认的搜索域(域名后缀)。例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”。
■ 本地主机映射文件
/etc/hosts文件中记录着一份主机名与IP地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向DNS服务器查询。
[root@hlj ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 119.75.216.20 www.baidu.com
当主机访问网站www.baidu.com.时,将会直接向IP地址119.75.216.20发送Web请求
对于经常访问的一些网站,可以通过在/etc/hosts文件添加正确的映射记录,减少DNS查询过程,从而提高上网速度。当然,若添加了错误的映射记录,则可能会导致网站访问出现异常。
另外,正因为hosts文件只保存在本地,所以其中的映射记录也只用于当前主机。
原文:http://blog.51cto.com/houliangjin/2064847