LINUX网络性能之管理工具三剑客
本文是介绍管理Linux系统网络性能技巧的文章,主要介绍了route、netstat、tcpdump三种网络管理测试工具的使用方法及其可实现的功能。
route
在配置网络时,要为机器指定接收数据包时该包要经过的路径。在Linux系统中,提供一个命令route,这个命令可以为ifconfig命令配置的网卡设置静态路由。这种设置工作通常在/etc/rc.d/rc.inet1中引入,在系统引导时进行。
我们通过几个例子来说明如何使用route命令:
route add -net 127.0.0.0
这个命令将向路由表中添加一个指定地址或者网络的路由。注意此时网络为A类地址,掩码被设置为255.0.0.0,这个新添加的条目被连接到lo设备上。
route add -net xxx.xxx.xxx.xxx netmask 255.255.255.0 dev eth0
这个命令为IP地址为xxx.xxx.xxx.xxx的主机增加一个路由,它的网络掩码被设置为255.255.255.0。
route del -net xxx.xxx.xxx.xxx
此命令将删除xxx.xxx.xxx.xxx这个网络的路由。
使用route命令还可以很方便地对整个网络的路由信息进行管理,其输出结果是网络的路由表。如下所示:
引用
-----------------------------------------------------------------
[root@lee /root]#route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.8.224 * 255.255.255.255 UH 0 0 0 eth0
10.10.8.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default dgc8.njupt.edu 0.0.0.0 UG 0 0 0 eth0
default dgc8.njupt.edu 0.0.0.0 UG 1 0 0 eth0
[root@lee /root]#
-----------------------------------------------------------------
输出结果中各个字段的含义是:
·Destination表示路由的目标IP地址。
·Gateway表示网关使用的主机名或者是IP地址。上面输出的"*"表示没有网关。
·Genmask表示路由的网络掩码。在把它与路由的目标地址进行比较之前,内核通过Genmask和数据包的IP地址进行按位"与"操作来设置路由。
·Flags是表示路由的标志。可用的标志及其意义是:U表示路由在启动,H表示target是一台主机,G表示使用网关,R表示对动态路由进行复位设置;D表示动态安装路由,M表示修改路由,!表示拒绝路由。
·Metric表示路由的单位开销量。
·Ref表示依赖本路由现状的其它路由数目。
·Use表示路由表条目被使用的数目。
·Iface表示路由所发送的包的目的网络。
通过查看这些输出信息,我们就可以方便地管理网络的路由表了。
netstat
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。在计算机上执行netstat后,其输出结果如下所示:
引用
-----------------------------------------------------------------
[root@lee /root]#netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Types State I-Node Path
Unix 5 [ ] DGRAM 460 /dev/log
Unix 0 [ ] STREAM CONNECTED 173 @00000014
Unix 0 [ ] DGRAM 662
Unix 0 [ ] DGRAM 631
Unix 0 [ ] DGRAM 544
Unix 0 [ ] DGRAM 484
Unix 0 [ ] DGRAM 470
[root@lee /root]#
-----------------------------------------------------------------
从整体上看,netstat的输出结果可以分为两个部分:第一部分:是Active Internet connections,称为有源TCP连接,在上面的输出结果中,这一部分没有内容,表示暂时还没有TCP连接。第二部分:是Active UNIX domain sockets,称为有源Unix域套接口。输出结果显示的是Unix域套接口的连接情况:
·Proto显示连接使用的协议。
·RefCnt表示连接到本套接口上的进程号。
·Types显示套接口的类型。
·State显示套接口当前的状态。
·Path表示连接到套接口的其它进程使用的路径名。
可以用netstat -a来查看所有套接字的状态,这在您调试网络程序的时候是非常有用的。netstat -r将显示路由表的内容,一般还要同时指定"-n"选项,这样可以得到数字格式的地址,也可显示默认路由器的IP地址。使用netstat -i则将显示所有的网络接口信息。使用netstat还可以获得当前的网络状态以及网络的拓扑结构,这在实际中是非常有用的。
tcpdump
tcpdump命令用于监视TCP/IP连接并直接读取数据链路层的数据包头。您可以指定哪些数据包被监视、哪些控制要显示格式。例如我们要监视所有Ethernet上来往的通信,执行下述命令:
tcpdump -i eth0
即使是在一个相对平静的网络上,也有很多的通信,所以我们可能只需要得到我们感兴趣的那些数据包的信息。在一般情况下,TCP/IP栈只为本地主机接收入站的数据包绑定同时忽略网络上的其它计算机编址(除非您使用的是一台路由器)。当运行tcpdump命令时,它会将TCP/IP栈设置为 promiscuous模式。该模式可接收所有的数据包并使其有效显示。如果我们关心的只是我们本地主机的通信情况,一种方法是使用“-p”参数禁止 promiscuous模式,还有一种方法就是指定主机名:
tcpdump -i eth0 host hostname
此时,系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
tcpdump -i eth0 src host hostname
下面的命令可以监视所有送到主机hostname的数据包:
tcpdump -i eth0 dst host hostname
我们还可以监视通过指定网关的数据包:
tcpdump -i eth0 gateway Gatewayname
如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
tcpdump -i eth0 host hostname and port 80
该命令将显示从每个数据包传出的头和来自主机hostname对端口80的编址。端口80是系统默认的HTTP服务端口号。如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。
分享到:
相关推荐
Linux网络性能之管理工具三剑客(iftop、nethogs和vnstat)为我们提供了实时的网络流量监控和问题排查手段。而traceroute和tcpdump则帮助我们深入了解数据包在网络中的传输过程,诊断路由问题和网络通信异常。熟练...
Prometheus三剑客是用于高效监控现代云原生环境的关键工具。这个压缩包包含了Grafana、Prometheus和node_exporter,它们都是监控服务器和服务器集群性能的重要组件。以下是对这三个组件的详细介绍: 1. **...
尽管可能面临兼容性和性能挑战,但其强大的图形设计和原型构建功能使其成为Linux平台上不可多得的工具。对于那些希望在Linux环境下保持一致设计流程的设计师来说,Fireworks MX无疑是一个值得尝试的选择。
在Web开发领域,这三个工具的组合非常常见,被称为LAMP(Linux, Apache, MySQL, PHP)或WAMP(Windows, Apache, MySQL, PHP)环境。 1. **PHP**:全称“超文本预处理器”(Hypertext Preprocessor),是一种开源的...
通过实践,你可以了解如何创建、配置和管理虚拟机,设置网络和存储,以及如何利用高可用性和灾难恢复功能来保障业务连续性。 在提供的文件"企业级虚拟机应用实战:玩转VMware+VI、Hyp..."中,读者可以深入学习这些...
CuteFTP是一款知名的FTP(File Transfer Protocol)客户端软件,被誉为FTP三剑客之一,与LeapFTP和FlashFXP齐名。它在FTP传输领域具有较高的性能和稳定性,深受用户喜爱。CuteFTP的主要功能是帮助用户在本地计算机和...
- Linux系统管理:如用户管理、权限设置、服务控制、日志分析等。 - 使用sed、awk等工具进行文本处理。 4. **其他相关技术**: - DevOps:持续集成/持续部署(CI/CD)工具,如Jenkins、Docker和Kubernetes。 - ...
ELK全家桶,全称Elasticsearch、Logstash和Kibana,是日志管理和分析领域的一款强大工具组合。这个组合被广泛应用于日志收集、处理、存储、搜索和可视化,帮助企业快速理解并利用其系统产生的大量日志数据。 ...
10. **项目管理**:敏捷方法论(Scrum、Kanban)、项目规划工具(如 Jira、Trello),以及质量管理、风险管理等。 11. **信息安全**:密码学基础、防火墙设置、入侵检测、安全编码实践等,可能还会包括最新的安全...
主要类型有Windows、Linux、macOS等。理解操作系统的进程管理、内存分配、文件系统和用户接口是IT学习的基础。 2. **编程语言**:编程语言是编写计算机程序的工具,如Python、Java、C++、JavaScript等。每种语言有...
这可能涉及构建过程、静态资源的托管、CDN(内容分发网络)的使用、HTTPS配置以及性能优化等环节。 以上就是基于题目信息推测的几个关键知识点,涵盖了网页样式设计、前端开发、文件压缩、版本控制和问题排查等多个...
它支持T-SQL(Transact-SQL)语言,提供了丰富的安全性和性能优化工具,适合大型企业级应用。 总结的这些知识点涵盖了Web开发的前端和后端技术,包括了网页内容展示、交互、服务器处理以及数据库管理等多个层面,是...
3. **操作系统**:可能会有关于Linux、Windows、macOS等操作系统的管理、命令行操作、系统调用、进程管理等知识。熟悉操作系统能帮助你更好地理解程序运行的底层机制。 4. **数据库管理**:数据库是数据存储的关键...
11. 系统与网络运维:学习Linux操作系统、Shell脚本编写、监控工具(如Prometheus、Grafana)、自动化工具(Ansible、Chef)等,可以提升系统的稳定性和运维效率。 12. 信息安全:了解常见的攻击手段如DDoS、SQL...
Sublime Text是一款备受推崇的文本编辑器,尤其在前端开发者中广受欢迎,它适用于Windows、Mac和Linux等操作系统。Sublime_win10_64位指的是专为64位Windows 10系统设计的版本。这款软件以其高效、轻便和高度可定制...
4. 操作系统原理:学习Linux操作系统是IT专业人士的重要技能,包括进程管理、内存管理、文件系统等。 5. 网络技术:理解TCP/IP协议栈,HTTP协议,以及网络安全概念,对于网络编程和系统设计至关重要。 6. 软件工程...