目录
1.6、测量命令的执行时间或者系统资源的使用情况--------time
引言:Linux网络配置是服务的基础,如果要服务器正常工作,首先我们就是要将网络配置做好,网络优化做好。下面就介绍一些Linux网络配置方面的相关信息。
1、查看网络配置
1.1、查看网络接口信息-------ifconfig
执行 ifconfig 命令
查看指定网络信息 ifconfig + 网络接口
主机的网络接口卡(网卡)通常称为网络接口。在 Linux 操作系统中,使用 ifconfig 命令可以查看网络接口的地址配置信息(Interface Configuration)
例:ifconfig #显示已启用的网络接口,不包括禁用的设备
ens33:第一块以太网卡的名称。“ens33”中的“en”是“EtherNet”的缩写,表示网卡类型为以太网,“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号
lo:“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其 IP 地址默认是“127.0.0.1”,子网掩码为8位,表示本机。用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道
virbr0:是一个虚拟的网络连接端口,默认为0号虚拟网络连接端口;一般在通过虚拟机进行移植操作系统时,默认会以nat的网络地址转移,但是可以选择桥接或者是无网络连接也是可以的(因为用的是centos镜像的虚拟机,所以会有这一行)
例:查看指定网络信息
ens33:第一块网卡的名称(33是网卡编号)
inet:IP地址
netmask:子网掩码
broadcast:广播地址
ether : 表示为网卡的MAC地址 Ethernet :(以太网)表示连接类型
Rx Packets :接收数据包个数、大小统计信息
Rx errors :异常接收包的个数、丢包信息、错误等
Tx Packets :发送数据包个数、大小统计信息
Tx errors :发送包的个数、丢包量、错误等
添加虚拟网络接口地址
临时修改网卡IP
临时关闭某个网卡
重新开启某个网卡
禁用网卡(状态为开启,但是没有IP地址)
启动网卡
1.2、查看主机名称--------hostname
主机名:在 Linux 操作系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出现故障
查看或设置当前主机名
hostname 主机名
临时设置主机名
永久设置主机名(2种方法)
hostnamectl set-hostname 主机名
或 vim /etc/hostname(设置完后需重启系统才生效)再输入新主机名(只有第一行有效)
1.3、查看路由表条目--------route
route 命令
查看或设置主机中路由表信息
其中:当目标网段为“default”时,表示此行是默认网关记录
当下一跳为“gateway”时,表示目标网段是与本机直接相连的
但是,直接执行“route”命令无法直接看出默认网关地址
route -n #查看路由,使用-n可以将路由记录中的地址显示为数字形式,这可以跳过解析主机名的过程,在路由表条目较多的情况下能够加快执行速度
Destination 列对应目标网段的地址
Gateway 列对应下一跳路由器的地址
Iface 列对应发送数据的网络接口
查看路由配置
添加静态路由
删除静态路由条目
设置默认路由
删除默认路由
1.4、查看网络连接情况--------netstat
netstat 命令
查看系统的网络连接状态、路由表、接口统计等信息
netstat [选项]
常用选项
-n :以数字的形式显示相关的主机地址、端口等信息
-r :显示路由表信息
-a :显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l :显示处于监听(Listening)状态的网络连接及端口信息
-t :查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息
-u :显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息
-p :显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限)
Proto显示连接使用的协议
RefCnt表示连接到本套接口上的进程数量
Types显示套接口的类型
State显示套接口当前的状态
Path表示连接到套接口的其它进程使用的路径名
例:
通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息
配合管道符grep过滤出特定的记录
1.5、获取socket统计信息--------ss
ss 命令 socket :传输层和应用层的中间层 (通过IP和端口)
查看系统的网络连接情况,获取socket统计信息
ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。要想使用ss命令是Linux CentOS7中iproute软件包的一部分,默认已经安装,如果没安装,额可以通过yum安装(几乎所有的Linux系统都会默认包含netstat命令,但并非所有系统都会默认包含ss命令。)
常用选项
-h: 通过该选项获取更多的使用帮助
-V: 显示软件的版本号
-t: 显示 TCP 协议的 sockets
-u: 显示 UDP 协议的 sockets
-n: 不解析服务的名称,如 "22" 端口不会显示成 "ssh"
-l: 只显示处于监听状态的端口
-p: 显示监听端口的进程
-a: 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
-r: 把 IP 解释为域名,把端口号解释为协议名称
-o: 选项可用于显示计时器信息。该信息向我们展示了诸如重新传输计时器值、已经发生的重新传输的数量以及已发送的keepalive探测的数量
-w: 用于字符串精确匹配
1.6、测量命令的执行时间或者系统资源的使用情况--------time
Linux 手册中是这样介绍 time 命令的:“time a simple command or give resource usage”,即测量命令的执行时间,或者给出系统资源的使用情况
real:从进程1s开始执行到完成所耗费的cPU_总时间。该时间包括_1s进程执行时实际使用的CPU时间,1s进程耗费在阻塞上的时间(如等待完成I/o操作)和其他进程所耗费的时间(Linux是多进程系统,1s在执行过程中,可能会有别的进程抢占CPu)
user:进程 ls 执行用户态代码所耗费的 CPU 时间。该时间仅指 ls 进程执行时实际使用的 CPU 时间,而不包括其他进程所使用的时间和本进程阻塞的时间
sys:进程 ls 在内核态运行所耗费的 CPU 时间,即执行内核系统调用所耗费的 CPU 时间
2、测试网络连接-------ping
ping 命令
测试网络的连通性
ping [选项] 目标主机
使用ping命令可以向目标主机持续地发送测试数据包,并显示反馈结果,直到按ctrl +c组合键后中止测试,并显示最终统计结果
ping 192.168.58.30 #最常用是后面跟ip地址和域名
ping -c 5 192.168.58.30 #-c :表示指定ping的次数
ping -i 0.5 192.168.58.30 #-i :秒数 每隔多少秒ping一次 (默认为1秒)
ping -w 5 192.168.58.30 #表示ping时间为5s,意思是只ping5秒,5秒后结束
若看到"Destination Host Unreachable"的反馈信息,则表示目的主机不可达,可能目标地址不存在或者主机已经关闭若看到"Network is unreachable"的反馈信息,则表示没有可用的路由记录(如默认网关),无法达到目标主机所在的网络。当目标主机有严格的防火墙限制时,或者当网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)时,可能收到Request timeout”的反馈结果
3、追踪数据包------traceroute
traceroute 命令
测试从当前主机到目标主机之间经过的网络节点
traceroute 目标主机地址
traceroute命令能够比 ping 命令更加准确地定位网络连接的故障点(中断点),因此执行速度会比 ping 命令稍慢。在网络测试与排错过程中,通常会先使用 ping 命令测试与目的主机的网络连接,如果发现网络连接有故障,再使用traceroute命令跟踪查看是在哪个中间结点存在故障
4、域名解析-------nslookup
nslookup 命令
测试DNS域名解析
nslookup 目标主机地址 [DNS服务器地址]
建议关闭NetworkManager服务,否则有时启动network会报错
systemctl stop NetworkManager
systemctl disable NetworkManager
4.1、域名解析配置文件
/etc/resolv.conf 文件
保存本机需要使用的NDS服务器的IP地址
resolv.conf 文件中的“search localdomain”行用来设置默认的搜索域(域名扩展名)。 例如,当访问主机“localhost”时,就相当于访问“localhost.localdomain”
/etc/resolv.conf 文件中记录了本机默认使用的 DNS 服务器的地址信息,对该文件所做 的修改将会立刻生效。Linux 操作系统中一行一个DNS,最多可以指定 3 个(第 3 个以后的将被忽略)不同 的 DNS 服务器地址,优先使用第一个 DNS 服务器
CentOS 7需要在NetworkManager.conf文件main段内设置dns=none,并重启NetworkManager服务,或者使用CentOS7新添加nmcti命令进行设置
4.2、本机主机映射文件
/etc/hosts 文件
保存主机名与IP地址的映射记录
etc/hosts 文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询
hosts文件和DNS服务器的比较
默认情况下,系统首先从hosts文件查找解析记录
hosts文件只对当前的主机有效
hosts文件可减少DNS查询过程,从而加快访问速度
5、设置网络参数的方式
临时配置——使用命令调整网络参数
简单、快速,可直接修改运行中的网络参数
—般只适合在调试网络的过程中使用
系统重启以后,所做的修改将会失效
固定设置——通过配置文件修改网络参数
修改各项网络参数的配置文件
适合对服务器设置固定参数时使用
营重奉载网络服务或者重启以后才会生效
实验
需求:ss和netstat命令的区别 netstat 与ss 速度对比
ss与netstat的对比
netstat将state放在最后一列,而ss将其放在第一列
ss能够显示更多更详细的有关TCP和连接状态的信息
ss增加了Port(端口类型)
ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效
time ss -a 用ss命令显示出所有的sockets
time netstat -a 用netstat命令显示出主机中所有活动连接信息
对比结果得知,ss比netstat更快速更高效,当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢, ss利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效
6、总结
我们通过这篇文章可以查看网络配置和一些基本命令(ifconfig、hostname、route、netstat、ss)以及用来测试网络连接的命令(ping、traceroute、nslookup、dig)以及设置网络地址参数,临时配置以及永久配置,同时我们还描述了ss命令和netstat命令的区别以及ss命令和netstat命令的速度。
原文链接:https://blog.csdn.net/weixin_56270746/article/details/124099706
此处评论已关闭