Linux网络服务之网络配置与测试(上)

简介: 1 查看网络配置1.1 ifconfig——查看网络接口信息ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装) :

1 查看网络配置


1.1 ifconfig——查看网络接口信息

ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装) :

[root@localhost ~]# rpm -qi net-tools
 Name        : net-tools
 Version     : 2.0
 Release     : 0.22.20131004git.el7
 Architecture: x86_64
 Install Date: 2022年01月18日 星期二 17时31分40秒
 Group       : System Environment/Base
 Size        : 938986
 License     : GPLv2+
 Signature   : RSA/SHA256, 2017年08月11日 星期五 02时30分02秒, Key ID 24c6a8a7f4a80eb5
 Source RPM  : net-tools-2.0-0.22.20131004git.el7.src.rpm
 Build Date  : 2017年08月03日 星期四 17时17分34秒
 Build Host  : c1bm.rdu2.centos.org
 Relocations : (not relocatable)
 Packager    : CentOS BuildSystem <http://bugs.centos.org>
 Vendor      : CentOS
 URL         : http://sourceforge.net/projects/net-tools/
 Summary     : Basic networking tools
 Description :
 The net-tools package contains basic networking tools,
 including ifconfig, netstat, route, and others.
 Most of them are obsolete. For replacement check iproute package.
复制代码


基本用法:

格式 含义
ifconfig 显示当前主机中已启用(活动)的网络接口信息。
ifconfig -a 显示所有网络接口(包括没有启动的网卡)
ifconfig 具体网卡名称 只显示具体网卡的详细信息(无论是否启用)
ifconfig 网卡名称 up/down 表示开启或关闭指定网卡
ifconfig 网络接口 IP地址[/子网掩码长度] 新建临时IP地址(添加一块虚拟网卡)
ifconfig -s 查看通讯情况


1.1.1 查看所有启用的网络接口信息

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

网卡名称详解:

ens33:第一块以太网的名称详解。

“ens33”中的:

  • “en"是”EtherNet"的缩写,表示网卡类型为以太网;
  • “s"表示热插拔插槽上的设备(hot-plug Slot);
  • 数字“33”表示插槽编号。
[root@localhost ~]# ifconfig
 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 192.168.72.10  netmask 255.255.255.0  broadcast 192.168.72.255
         inet6 fe80::a5da:ff58:2c32:2b5f  prefixlen 64  scopeid 0x20<link>
         ether 00:0c:29:18:b5:ff  txqueuelen 1000  (Ethernet)
         RX packets 54379  bytes 4648603 (4.4 MiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 102028  bytes 28282331 (26.9 MiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         inet6 ::1  prefixlen 128  scopeid 0x10<host>
         loop  txqueuelen 1  (Local Loopback)
         RX packets 106  bytes 9256 (9.0 KiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 106  bytes 9256 (9.0 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
         inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
         ether 52:54:00:e6:f6:65  txqueuelen 1000  (Ethernet)
         RX packets 0  bytes 0 (0.0 B)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 0  bytes 0 (0.0 B)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
复制代码


ens33网卡信息每行详细解释:

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 #ens33:网卡名称
 #UP:该接口已启用
 #BROADCAST:支持广播
 #RUNNING:正在允许
 #MULTICAST:支持组播
 #mtu 1500:网络传输时的最大传输单元,单位字节。这里为1500字节。
 inet 192.168.72.10  netmask 255.255.255.0  broadcast 192.168.72.255
  #这一行是网络接口的IP地址、子网掩码、广播地址       
 inet6 fe80::a5da:ff58:2c32:2b5f  prefixlen 64  scopeid 0x20<link>
 #这一行是IPV6地址、子网长度、作用域(link小时仅该接口有效)
 ether 00:0c:29:18:b5:ff  txqueuelen 1000  (Ethernet)
 #这一行是mac地址、传输队列长度(传输缓存大小)、接口类型
 RX packets 54379  bytes 4648603 (4.4 MiB)
 #接收报文个数、总字节数
 RX errors 0  dropped 0  overruns 0  frame 0
 #接收错误个数、丢弃个数、溢出个数、冲突帧数
 TX packets 102028  bytes 28282331 (26.9 MiB)
 #发送报文个数、总字节数
 TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 #发送错误个数、丢弃个数、溢出个数、载荷数、冲突数
复制代码


1.1.2 查看/开启/关闭/设置指定网卡

ifconfig 网卡名称 [up|down]

1)查看ens33网卡

[root@localhost ~]# ifconfig ens33
 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 192.168.72.10  netmask 255.255.255.0  broadcast 192.168.72.255
         inet6 fe80::a5da:ff58:2c32:2b5f  prefixlen 64  scopeid 0x20<link>
         ether 00:0c:29:18:b5:ff  txqueuelen 1000  (Ethernet)
         RX packets 97597  bytes 8390076 (8.0 MiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 187394  bytes 51899032 (49.4 MiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
复制代码


2)关闭、开启ens33网卡:


[root@localhost ~]# ifconfig ens33 down     //关闭
 [root@localhost ~]# ifconfig ens33 up       //开启
复制代码


3)设置临时虚拟网卡:

[root@localhost ~]# ifconfig ens33:0 192.168.72.20      //设置虚拟网卡ens33:0
 [root@localhost ~]# ifconfig ens33:0
 ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 192.168.72.20  netmask 255.255.255.0  broadcast 192.168.72.255
         ether 00:0c:29:18:b5:ff  txqueuelen 1000  (Ethernet)
复制代码


网络异常,图片无法展示
|


4)查看通讯情况

[root@localhost ~]# ifconfig -s     //查看通讯情况
 Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
 ens33     1500   104223      0      0 0        201081      0      0      0 BMRU
 ens33:0   1500      - no statistics available -                        BMRU
 lo       65536      142      0      0 0           142      0      0      0 LRU
 virbr0    1500        0      0      0 0             0      0      0      0 BMU
复制代码


网络异常,图片无法展示
|


5)增加临时网卡

[root@localhost ~]# ifconfig ens37 192.168.72.37/24
复制代码


增加临时网卡也可使用 ip address实现:

ip address add 192.168.72.37/24 dev ens37
 ip address del 192.168.72.37/24 dev ens37
复制代码


1.2 hostname——查看主机名称

查看或设置当前主机名

hostname [主机名]
复制代码


示例:

1)查看主机名称

[root@localhost ~]# hostname
 localhost.localdomain
复制代码


网络异常,图片无法展示
|


2)临时修改主机名称

[root@localhost ~]# hostname yuji
 [root@localhost ~]# su
 [root@yuji ~]# hostname
 yuji
复制代码


网络异常,图片无法展示
|


永久修改主机名称,修改后重启生效:

  • 法一:编辑配置文件/etc/hostname,该文件只对第一行生效。
  • 法二:使用 “hostnamectl set-hostname 新主机名” 命令,该命令实际是修改了配置文件。

1.3 route——查看路由表条目

服务器可以当路由使用。

命令格式:

route           //打印路由表
 route -n        //以数字形式显示路由信息
 route add -net  网段地址 gw IP地址     //添加指定网段的路由记录
 route del -net 网段地址               //删除指定网段的路由记录
 route add default gw IP地址          //向路由表中添加默认网关记录
 route del default gw  IP地址         //删除路由表中默认的网关记录
复制代码


示例:

[root@yuji ~]# route
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 default         gateway         0.0.0.0         UG    100    0        0 ens33
 192.168.72.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
 [root@yuji ~]# route -n      //以数字形式展示,不允许显示别名
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 0.0.0.0         192.168.72.2    0.0.0.0         UG    100    0        0 ens33
 192.168.72.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33
 192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
复制代码


网络异常,图片无法展示
|


1.4 netstat——查看网络连接情况

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。


命令格式:

netstat  [选项]
复制代码


常用选项

选项 作用
-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
-n 拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。
-t 查看TCP协议相关的信息。
-u 显示UDP协议相关的信息。
-p 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
-r 显示路由表信息。
-l 显示处于监听状态(Listen)的网络连接及端口信息。


常用搭配:

netstat -a       //列出所有端口
 netstat -at      //列出所有TCP端口
 netstat -au      //列出所有UDP端口
 netstat -ax      //列出所有unix端口
 netstat -lt      //列出处于监听状态的TCP端口
 netstat -tnlp   //直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名
复制代码


示例:

1)netstat -lt,列出处于监听状态的TCP端口。

[root@localhost ~]# netstat -lt   //列出处于监听状态的TCP端口
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State      
 tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN     
 tcp        0      0 localhost.locald:domain 0.0.0.0:*               LISTEN     
 tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
 tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
 tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
 tcp        0      0 0.0.0.0:shell           0.0.0.0:*               LISTEN     
 tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
 tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
 tcp6       0      0 localhost:ipp           [::]:*                  LISTEN     
 tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
 tcp6       0      0 [::]:shell              [::]:*                  LISTEN
复制代码


网络异常,图片无法展示
|


2)netstat -tnlp,直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名。

[root@localhost ~]# netstat -tnlp
 Active Internet connections (only servers)
 Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
 tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
 tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1462/dnsmasq        
 tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1113/sshd           
 tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1111/cupsd          
 tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1394/master         
 tcp        0      0 0.0.0.0:514             0.0.0.0:*               LISTEN      798/rsyslogd        
 tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
 tcp6       0      0 :::22                   :::*                    LISTEN      1113/sshd           
 tcp6       0      0 ::1:631                 :::*                    LISTEN      1111/cupsd          
 tcp6       0      0 ::1:25                  :::*                    LISTEN      1394/master         
 tcp6       0      0 :::514                  :::*                    LISTEN      798/rsyslogd        
复制代码


1.5 ss(socket statistics)——查看网络连接情况

ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。

但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。

当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。

选项 含义
-t tcp协议相关
-u udp协议相关
-w 套接字相关
-x unix sock相关
-l listen状态的连接
-a 所有
-n 数字格式
-p 相关的程序及PID
-e 扩展的信息
-m 内存用量
-o 计时器信息
-r --resolve 把 IP 解释为域名,把端口号解释为协议名称


示例:

查看TCP协议下的21端口是否开启

[root@localhost ~]# ss -ntap |grep 21       //查看TCP协议下的21端口
 LISTEN     0      32          :::21                      :::*                   users:(("vsftpd",pid=84913,fd=3))
复制代码


网络异常,图片无法展示
|


相关文章
|
1天前
|
监控 网络安全
LabVIEW开发干扰对无线网络基础设施进行隐蔽影响测试
LabVIEW开发干扰对无线网络基础设施进行隐蔽影响测试
|
2天前
|
Linux 测试技术 Windows
LabVIEW对NI Linux RT应用程序性能进行基准测试
LabVIEW对NI Linux RT应用程序性能进行基准测试
|
2天前
|
JSON 监控 安全
LabVIEW测试和调试Web服务
LabVIEW测试和调试Web服务
|
3天前
|
Linux 编译器 调度
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
本文介绍了如何将POSIX应用程序编译为在Xenomai实时内核上运行的程序。
18 1
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
|
3天前
|
消息中间件 测试技术 Linux
linux实时操作系统xenomai x86平台基准测试(benchmark)
本文是关于Xenomai实时操作系统的基准测试,旨在评估其在低端x86平台上的性能。测试模仿了VxWorks的方法,关注CPU结构、指令集等因素对系统服务耗时的影响。测试项目包括信号量、互斥量、消息队列、任务切换等,通过比较操作前后的时戳来测量耗时,并排除中断和上下文切换的干扰。测试结果显示了各项操作的最小、平均和最大耗时,为程序优化提供参考。注意,所有数据基于特定硬件环境,测试用例使用Alchemy API编写。
10 0
linux实时操作系统xenomai x86平台基准测试(benchmark)
|
4天前
|
域名解析 网络协议 Linux
linux网络配置详解
linux网络配置详解
13 0
|
5天前
|
网络协议 Java Linux
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
【探索Linux】P.29(网络编程套接字 —— 简单的TCP网络程序模拟实现)
11 0
|
5天前
|
存储 网络协议 算法
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)
11 0
|
5天前
|
网络协议 算法 Linux
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
14 0
|
5天前
|
存储 算法 网络协议
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
【探索Linux】P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )
12 0