一、查看以及测试网络

查看及测试网络配置是管理Linux网络服务的第一步,本节将学习Linux系统中的网络查看以及测试命令。其中讲解的大多数命令以普通用户权限就可以完成操作,但是普通用户在执行“www.qixoo.qixoo.com/Sbin/”目录下的命令时需要指定命令文件的绝对路径。

(一)查看网络配置

  1. 使用ifconfig命令-查看网络接口地址

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

  • 查看活动的网络接口设备

    当ifconfig命令不带任何参数和选项时,将显示当前主机中已启用(活动)的网络接口信息。例如,直接执行ifconfig命令后可以看到eth0、lo这两个网络接口信息。(以下截图均在Red hat Enterprise Linux 7上执行,与其他版本略有不同)

在上述输出结果中,eno16777736对应为第一块物理网卡,lo对应为虚拟的回环接口。virbro为虚拟网卡。

  • eno16777736:第一块以太网的名称。

  • lo:“回环”网络接口,“lo”是“loopback”的缩写,它并不代表真正的网络接口,而是一个虚拟的网络接口,其IP地址默认是“127.0.0.1”。回环地址通常是仅用于对本机的网络测试。

  • virbr0:“virbr0”为虚拟网卡。

  • 查看指定的网络接口信息

当只需要查看其中的某一个网络接口信息的信息时,可以使用网络接口的名称作为ifconfig命令的参数(不论该网卡是否处于激活状态)。例如,执行“ifconfig eno16777736”命令后可以只查看网卡eno16777736的配置信息。

从上述命令显示的结果中,可以获知eno16777736网卡的一些基本信息,如下所述。

  • ether:表示网络接口的物理地址(MAC地址),如“00:0c:29:11:47:04”。网络接口的物理地址通常不能更改,是网卡在生产时确定的全球唯一的硬件地址。

  • Inet:表示网络接口的IP地址,如“192.168.239.128”。

  • broadcas:表示网络接口所在的广播地址,如“192.168.239.255”。

  • netmask:表示网络接口的子网掩码,如“255.255.255.0”。

除此之外,还能通过“TX”、“RX”等信息了解通过该网络接口发送和接收的数据包个数、流量等更多属性。

2.使用hostname命令-查看主机名称

在Linux系统中,相当一部分网络服务都是通过主机名来识别本机,如果主机名配置不当,可能会导致程序功能出现故障。使用hostname命令可以查看当前主机的主机名,不用添加任何的选项或参数。

3.使用route命令-查看路由条目表

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

当目标网段为“default”时,表示此行是默认网关记录;当下一跳为*时,表示目标网段与本机是直接相连的。

若结合“-n”选项使用,可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表中条目比较多的情况下能够加快执行速度。例如,执行“route-n”命令后输出信息中的*地址将显示为“0.0.0.0”,默认网关记录中的“default”也将显示为“0.0.0.0”。

4.使用netstat命令-查看网络连接情况

通过使用netstat命令可以查看当前系统的网络连接状态、路由表、接口统计等信息,是了解网络状态及排除网络服务故障的有效工具。以下是netstat命令常用的几个选项。

  • -a:显示当前主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)

  • -n:以数字形式显示相关的主机地址、端口等信息。

  • -r:显示路由表信息。

  • -l:显示处于监听(listening)状态的网络连接及端口信息。

  • -t:查看TCP协议相关的信息。

  • -u:显示UDP协议相关的信息。

  • -p:显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)。

    通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的TCP连接信息。同时显示对应的进程信息。结合命令管理管道使用“grep”命令,还可以在结果中过滤所需要的特定记录。例如,执行以下命令操作可以查看本机中是否有监听“TCP 22”端口(即SSH)的服务程序,输出信息中包括PID号和进程名称。

(二)测试网络连接

  1. 使用ping命令-测试网络的连通性

使用ping命令可以向目的主机持续的发送测试数据包,并显示反馈结果,知道按Ctrl+C组合键中止测试,并显示最终统计结果。例如,以下操作将测试从本机到另一台主机192.168.195.112的连通性测试,连接正常时会收到返回的数据包。

执行ping测试命令时,若不能获得从目标主机发回的反馈数据包,则表示在本机到目标主机之间存在的网络连通性故障。例如,若看到“Destination Host Unreachable”反馈信息,则表示目的主机不可达,可能目标地址不存在或主机已经关闭;若看到“Network is unreachable”的反馈信息,则表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络。

当网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)时,使用ping命令测试时可能会频繁看到“Request timeout”的反馈结果,表示与目标主机间的连接超时(数据包响应缓慢或丢失)。除此之外,当目标主机中有严格的防火墙限制时,可能收到发回“Request timeout”的反馈结果。

2.使用traceroute命令-跟踪数据包的路由途径

使用traceroute命令可以测试从当前主机到目的主机之间经过了哪些网络节点,并显示各中间节点的连接状态(响应时间)。对于无法响应的结点,连接状态将显示为“*”。例如,通过以下操作结果可以看出,从本机到目标主机192.168.195.之间,中间需跨越一个路由器

traceroute命令能够比ping命令更加准确的定位网络连接的故障点(中断点),执行速度也因此会比ping命令稍慢。在网络测试与排错过程中,通常会先使用ping命令测试与目的主机的网络连接,如果发现网络连接有故障,在使用traceroute命令跟踪查看是在哪个中间点存在故障的。

Linux 基础网络设置的更多相关文章

  1. Linux基础网络设置

    查看Linux网络参数 ifconfig—-查看网络接口 > [root@localhost ~]# ifconfig eth1 Link encap:Ethernet HWaddr 00:0C ...

  2. Linux学习笔记(9)linux网络管理与配置之一——Linux基础网络命令与学习大纲(0)

    大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配置DNS客户端 4.配置名称解析顺序 5.配置路由与默认网关 6.双网卡绑定 [1] ping [2]net ...

  3. linux虚拟机网络设置(本机使用wiff,自己的网)

      一.linux虚拟机网络设置(https://jingyan.baidu.com/album/4e5b3e1957979d91901e24f1.html?picindex=16) 选中虚拟机,点击 ...

  4. Linux基础网络配置

    目录 Linux基础网络配置 参考 IP配置 Route配置 DNS指向 ss命令 *网络排查工具 Linux基础网络配置

  5. 036.集群网络-K8S网络模型及Linux基础网络

    一 Kubernetes网络模型概述 1.1 Kubernetes网络模型 Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的 ...

  6. Linux高级网络设置——将多个网卡设置成一个网卡

    Linux下可以设置网卡模式 模式0:负载均衡 模式1:主备模式,不提高网络带宽 模式3:多网卡同时发送相同的数据 准备实验环境: Redhat 6.4 企业版64位,最小化安装. 给虚拟机添加网卡 ...

  7. VirtualBox Linux虚拟机 网络设置 centos

    VirtualBox网络设置成桥接 进去系统打开终端 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 用Vim编辑器打开配置文件,输入命令:vi /etc ...

  8. Linux虚拟机网络设置问题

    使用的是VM 工作站15 和以前的不一样 没有什么虚拟机网络设置 :打开Edit->Virtual NetWork editor, 选中VMnet8,然后点击NAT Setting按钮,再点击D ...

  9. 自学linux——5.网络设置

    网络设置 1.网卡配置文件位置:ls /etc/sysconfig/network-scripts/ 2.网卡配置文件命名:ifcfg-网卡名称 3.查看网卡配置文件:cat /etc/sysconf ...

随机推荐

  1. [原创]CI持续集成系统环境---部署Gitlab环境完整记录

    Gitlab是一个代码托管平台,在实际工作中,对代码管理十分有用. 废话不多说,下面是对我自己搭建的Gitlab环境做一记录: (1)安装 ------------------------------ ...

  2. final-----finalize----finally---区别

    一.性质不同 (1)final为关键字: (2)finalize()为方法: (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标识常量的关键字,final标识的关 ...

  3. 【MFC】序列化(Serialize)、反序列化(Deserialize)

    1.首先在头文件里面声明 DECLARE_SERIAL(CSelectionSerial) 2.重写CObject的Serialize函数 virtual void Serialize(CArchiv ...

  4. Linux Linux程序练习十一(网络编程大文件发送UDP版)

    //网络编程发送端--大文件传输(UDP) #include <stdio.h> #include <stdlib.h> #include <string.h> # ...

  5. Java 8新特性——default方法(defender方法)介绍

    我们都知道在Java语言的接口中只能定义方法名,而不能包含方法的具体实现代码.接口中定义的方法必须在接口的非抽象子类中实现.下面就是关于接口的一个例子: 1 2 3 4 5 6 7 8 9 10 11 ...

  6. JS原生父子页面操作

    var api = frameElement.api;  //当前 W = api.opener;//父页面 W.setPerSel(jsonStr); api.close(); //关闭窗口 js操 ...

  7. FTP登录/目录破解

    l临时简单的验证,还需要优化... 登录: import ftplib usr = open('usr.txt','r') ftp = ftplib.FTP("*************&q ...

  8. main函数中argc和argv含义

    在main函数中经常可以看到int main(int argc, char ** argv)的函数头,这里的形参int argc, char ** argv究竟是啥含义呢? &1 int ar ...

  9. [CareerCup] 3.1 Implement Three Stacks using Array 使用数组来实现三个栈

    3.1 Describe how you could use a single array to implement three stacks. 这道题让我们用一个数组来实现三个栈,书上给了两种方法, ...

  10. 清除sql server 登录的时候记住的账户

    SQl 2008如何清除登陆过的服务器名称   C:\Users\Administrator\AppData\Roaming\Microsoft\Microsoft SQL Server\100\To ...