2.8 网络配置

Linux可以通过两种方式为系统设置网络参数。一种是通过命令设置的方式,另一种是通过修改系统配置文件来实现。

 

2.8.1 命令行设置网络参数

1. 网络接口参数——ifconfig命令

描述:显示或设置网络接口信息

用法:ifconfig interface 选项|地址

设置eth0网卡接口IP地址为192.168.0.31,子网掩码为255.255.255.0

[root@instructor ~]# ifconfig eth0 192.168.0.31 netmask 255.255.255.0

关闭eth0网卡接口:

[root@instructor ~]# ifconfig eth0 down

开启eth0网卡接口:

[root@instructor ~]# ifconfig eth0 up

2. 主机名参数——hostname命令

描述:显示或设置系统主机名

用法:hostname [选项]

[root@instructor ~]# hostname instructor.example.com    设置主机名
[root@instructor ~]# hostname 
instructor.example.com
[root@instructor ~]# hostname -i
192.168.0.254

Hostname -i需要读取/etc/hosts来判断本机IP地址,如果该文件无记录,则提示hostname: Host name lookup failure

3. 路由参数——route命令

描述:显示或设置静态IP路由表

用法:route [选项]查看路由信息

route add 目标网络 gw 网关地址添加路由表记录

route del 目标网络删除路由表记录

添加默认网关为192.168.0.254

[root@instructor ~]# route add default gw 192.168.0.254

添加指定网段的网关:

[root@instructor ~]# route add -net 172.16.0.0/16 gw 192.168.0.254

添加路由记录,指定通过eth0网卡传输到192.56.76.0网段的数据:

[root@instructor ~]# route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0

使用数字地址替代主机名称:

[root@instructor ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask      Flags  Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U      0      0        0 eth0
192.56.76.0     0.0.0.0         255.255.255.0   U      0      0        0 eth0
172.16.0.0      192.168.0.254   255.255.0.0     UG     0      0        0 eth0
0.0.0.0         192.168.0.254   0.0.0.0         UG     0      0        0 eth0

删除默认网关:

[root@instructor ~]# route del default gw 192.168.0.254

删除指定网段的网关记录:

[root@instructor ~]# route del -net 172.16.0.0/16

 

2.8.2 文件修改网络参数

1. 网络接口参数

系统中网卡配置文件为/etc/sysconfig/network-scripts/ifcfg-<iface>,其中,iface为网卡接口名称。

2-9

选项

功能描述

DEVICE

设备名称

eth0eth1...

BOOTPROTO

启动协议

none|dhcp|static

HWADDR

硬件地址

MAC地址

NM_CONTROLLED

网卡是否被NetworkManager控制

yes|no

ONBOOT

开机是否启动该网卡,对虚拟接口无效

yes|no

TYPE

设备类型

ethernet

UUID

IPADDR

IP地址

GATEWAY

默认网关

NETMASK

子网掩码

DNS1,2

DNS服务器,多个服务器使用数字标记

PREFIX

网络位掩码个数,对虚拟接口无效

ONPARENT

真实接口启动后虚拟接口是否启动

yes|no

 

Linux中除了可以为真实的网卡接口配置网络参数外,还可以通过虚拟接口的方式为一个物理网卡配置多个网络参数,虚拟接口的名称一般为iface:n,如eth0:0eth0:1等。注意,默认虚拟接口的配置文件并不存在,需要手动创建新文件并设置参数。

实例:设置eth0网卡虚拟接口为eth0:0IP地址为192.168.1.254、子网掩码为255.255.255.0、网关为192.168.0.254、主DNS192.168.0.254,辅助DNS192.168.1.254

[root@instructor ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE="eth0:0"
#BOOTPROTO="dhcp"
#HWADDR="00:0C:29:55:D7:44"
NM_CONTROLLED="no"
ONBOOT=yes
TYPE="Ethernet"
#UUID="c6fd46ea-853a-4ceb-b7ef-4977337fd2c3"
IPADDR=192.168.1.254
GATEWAY=192.168.0.254
NETMASK=255.255.255.0
DNS1=192.168.0.254
DNS2=192.168.1.254
[root@instructor ~]# ifconfig eth0:0
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:55:D7:44  
          inet addr:192.168.1.254  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

 

2. 主机名参数

主机名配置文件为/etc/sysconfig/network,通过修改其中的HOSTNAME值实现主机名称的设置。

3. 路由参数

通过上面对网卡接口设置网络参数后,可以指定网卡的默认网关,但无法设定通往特定网段的静态路由信息。此时,需要创建指定网卡的路由配置文件(默认文件不存在),配置文件名称为route-<iface-name>,该文件每行对应一条静态路由记录。

实例:为eth0网卡指定去往172.16.0.0/16网段的网关为192.168.0.200

[root@instructor ~]# vim /etc/sysconfig/network-scripts/route-eth0
172.16.0.0/16 via 192.168.0.200
[root@instructor ~]# service network restart
[root@instructor ~]# route    查看结果
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.0.0      192.168.0.200   255.255.0.0        UG    0    0      0  eth0

 

2.8.3 网络故障排错

1. ping

当网络不通时,可以使用简单的ping命令来定位问题节点位置,一般,会按顺序进行ping命令,依次为本地回环、本地IP、网关IP、外网IPping的对象一般都会给予回应,如果没有回应,则表示网络不通(某些环境下,对象主机会被禁止ping),据此判断网络断点的位置。

2. traceroute

一个数据包从本地发送后一般会经过多个路由转发数据,如果有一个数据包进入互联网以后因为中间的某个路由器转发有问题,而导致最终的数据发送失败。这种情况下,我们并不知道问题路由的位置及IP信息,利用traceroute可以帮助我们解决这些问题,它可以跟踪数据包的路由过程,以此判断问题所在。Linux下的traceroute默认使用UDP封装跟踪包,如果希望使用ICMP封装,可以使用-I选项。

 

[root@instructor ~]# traceroute www.baidu.com
traceroute to www.baidu.com (180.97.33.107), 30 hops max, 60 byte packets
 1  192.168.42.2 (192.168.42.2)  0.527 ms  0.451 ms  0.366 ms
 2  192.168.0.1 (192.168.0.1)  56.265 ms  55.942 ms  55.619 ms
 3  192.168.1.1 (192.168.1.1)  55.296 ms  54.957 ms  54.530 ms
 4  111.173.100.1 (111.173.100.1)  54.197 ms  53.831 ms  57.765 ms
[root@instructor ~]# traceroute -I

 

3. nslookup

网络本身是使用IP地址来唯一对应网络资源的,但用户是无法记忆这么多的数字IP信息的。所以,我们一般会通过域名来访问网络资源,此时DNS服务就至关重要了,使用nslookup可以帮助检查本地设置的DNS服务器工作是否正常。输入下面的检查本机设置的DNS服务器是否可以解析www.baidu.com域名

[root@instructor ~]# nslookup www.baidu.com
Server:192.168.42.2
Address:192.168.42.2#53
Non-authoritative answer:
www.baidu.comcanonical name = www.a.shifen.com.
Name:www.a.shifen.com
Address: 180.97.33.107
Name:www.a.shifen.com
Address: 180.97.33.108

本次解析是由192.168.42.2这台DNS服务器提供的,解析结果是www.baidu.com域名对应了多个IP地址。

 

4. dig

Nslookup仅可以查询域名与IP地址之间的对应关系,如果你需要更多关于DNS记录的信息,可以使用dig命令,查看包括MX(邮件记录)、NS(域名服务器记录)等信息。

[root@instructor ~]# dig www.sohu.com
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6 <<>> www.sohu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34922
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.sohu.com.INA
;; ANSWER SECTION:
www.sohu.com.5INCNAMEgs.a.sohu.com.
gs.a.sohu.com.5INCNAMEfshgq.a.sohu.com.
fshgq.a.sohu.com.5INA101.227.172.11
;; Query time: 20 msec
;; SERVER: 192.168.42.2#53(192.168.42.2)
;; WHEN: Sat Aug 16 11:33:40 2014
;; MSG SIZE  rcvd: 85
[root@instructor ~]# dig sohu.com MX     查看sohu.com域的邮件记录

 

5. netstat

如果怀疑有人非法闯入了系统,又不知道此人在哪里时,可以通过netstat强大的网络监控能力找出连接系统的所有人。或者当你启动了一个网络服务后,远程客户无法访问该服务,我们也可以使用netstat命令查看服务对应的端口是否已经正常开启,来判断服务启动是否正常。

[root@instructor ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q   Local Address               Foreign Address             State      
tcp    1      0      192.168.42.128:33628         23.2.16.51:80        CLOSE_WAIT

有一个远程IP23.2.16.51)使用80端口,连接了本地的33628端口。

[root@instructor ~]# netstat -nutlp    查看当前系统开启端口信息