Linux常用命令(十三)基础网络设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令(十三)基础网络设置相关的知识,希望对你有一定的参考价值。

Linux常用命令(十三)基础网络设置

本篇内容实验环境为Redhat 6.5系统

一、查看及测试网络

查看及测试网络配置时管理Linux网络服务的第一步。其中本篇中大多数命令以普通用户权限就可以完成操作。

 

1、查看网络配置

1.1)、使用ifconfig命令查看网络接口地址

主机的网络接口卡(网卡)通常称为“网络接口”。在Linux系统中,使用ifconfig命令可以查看网络接口的地址配置信息。

 

查看活动的网络接口设备

ifconfig命令不带任何选项和参数时,将显示当前主机中已启用(活动)的网络接口信息。

[[email protected] ~]# 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命令的参数(不论该网络接口是否处于激活状态)。

[[email protected] ~]# 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命令可以查看当前主机的主机名,不用添加任何选项或参数。

[[email protected] ~]# hostname
twgdh


1.3)、使用route命令查看路由表条目

Linux系统中的路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。直接执行route命令可以查看当前主机中的路由表信息,在输出结果中,Destination列对应目标网段的地址,Gateway列对应下一跳路由器的地址,Iface列对应发送数据的网络接口。

[[email protected] ~]# 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”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度。

[[email protected] ~]# 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号和进程名称。

[[email protected] ~]#netstat –anpt | grep ":80"
tcp        0      0 :::80                :::*              LISTEN      26556/httpd


2、测试网络连接


2.1)、使用ping命令测试网络连通性

使用ping命令可以向目的主机持续地发送测试数据包,并显示反馈结果,知道按Ctrl+C组合键后终止测试,并显示最终统计结果。

[[email protected] ~]# 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”的反馈信息,则表示没有可用的路由记录(如默认网关),无法达到目标主机所在网络。

[[email protected] ~]# 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命令可以测试从当前主机到目的主机之间经过了哪些网络节点,并显示个中间节点的连接状态(相应时间)。对于无法相应的节点,连接状态将显示为“*”。

[[email protected] ~]# 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地址是多少。

[[email protected] ~]# 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服务器。

[[email protected] ~]# 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地址、子网掩码

[[email protected] ~]# ifconfig eth0 192.168.10.131/24


或者

[[email protected] ~]# ifconfig eth0 192.168.10.131 netmask 255.255.255.0


如果命令末尾不加子网掩码,默认按有类地址算!


禁用、激活网络接口

需要临时禁用或者重新激活指定的网络接口,需要结合“down”、“up”开关选项。网络接口被禁用以后,将无法使用该网络接口与其他主机进行连接。

[[email protected] ~]# ifconfig eth0 down                ……//禁用网卡eth0
[[email protected] ~]# ifconfig eth0 up                  ……//启用网卡eth0


为网卡绑定虚拟接口

在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的IP地址,但是又不能覆盖原有IP地址而导致服务程序不可用。这时可以为网卡绑定一个虚拟的网络接口,然后再为虚拟接口设置新的IP地址(相当于一块网卡配多个IP地址)。

[[email protected] ~]# ifconfig eth0:0 172.17.17.17           ……//第一个虚拟地址
[[email protected] ~]# ifconfig eth0:1 10.0.0.1                  ..….//第二个虚拟地址
[[email protected] ~]# 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地址。

[[email protected] ~]# route add -net 192.168.20.0/24 gw 192.168.10.1
[[email protected] ~]# 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”选项指定对应路由记录中的目标网段的地址即可。

[[email protected] ~]# route del -net 192.168.20.0/24
[[email protected] ~]# 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”选项指明网段地址。

[[email protected] ~]#route | grep “default”
default      192.168.10.1 0.0.0.0 UG  0    0    0    eth0
[[email protected] ~]# route del default gw 192.168.10.1  ……//删除默认网关记录
 [[email protected] ~]# route | grep "default"         ……//检索时无输出结果
[[email protected] ~]# route add default gw 192.168.10.1 ……//添加新的默认网关记录 192.168.10.1
[[email protected] ~]# route | grep "default"                ……//确认新的默认网关记录
default         192.168.10.1    0.0.0.0         UG    0      0        0 eth0


需要注意的是,在同一个主机的路由表中只应有一条默认网关记录。若同时存在多条默认网关记录,可能会导致该主机的网络连接出现故障。

2.3)、使用hostname命令修改主机的名称

hostname命令不仅可以显示当前主机的名称,还可以修改当前主机的名称。在新登录的用户会话(Shell环境)中,命令提示符中的主机名部分也会出现相应的变化。

[[email protected] ~]# hostname
twgdh
[[email protected] ~]# hostname hlj
[[email protected] ~]# hostname
hlj
[[email protected] ~]# bash
[[email protected] ~]# hostname
hlj


二)、固定配置


1、修改网络配置文件

当需要为Linux服务器设置固定的网络地址时,若还是用ifconfighostname等网络命令来进行设置,将会大大降低服务器运行的可靠性。若要使Linux主机在重启系统以后任然能够使用相同的网络配置,那么直接修改配置文件时最好的方法。

1.1)、网络接口配置文件

网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为“ifcfg-XXX”,其中”XXX”是网络接口的名称。

[[email protected] ~]# 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服务将会先关闭所有的网络接口,然后再根据配置文件重新启用所有的网络接口。

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[[email protected] ~]# service network restart


如果只是想禁用、启用摸一个网络接口(而不是所有接口),可分别使用两个接口控制脚本ifdownifup

[[email protected] ~]# ifdown eth0
[[email protected] ~]# ifup eth0


2.3)、主机名称配置文件

若要永久修改Linux系统的主机名,可以修改配置文件/etc/sysconfig/network。在此文件中,“HOSTNAME”行用于设置主机名,而“NETWORKING”行用于设置IPv4网络的默认启用状态。

[[email protected] ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=twgdh


2.4)、域名解析配置文件

指定为本机提供DNS解析的服务器地址

/etc/resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,对该文件所做的修改将会立刻生效。Linux系统中最多可指定3个不同的DNS服务器地址(第三个以后的将被忽略),优先使用第一个DNS服务器。

[[email protected] ~]# 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服务器查询。

[[email protected] ~]# 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文件只保存在本地,所以其中的映射记录也只用于当前主机。


以上是关于Linux常用命令(十三)基础网络设置的主要内容,如果未能解决你的问题,请参考以下文章

第十三天(linux常用的基础命令 )

Linux基础系统优化及常用命令

Linux系统基础优化及常用命令

Linux系统基础优化以及常用命令

Linux系统基础优化及常用命令

Linux系统基础优化及常用命令