Linux系统中已经可用的重要的网络和故障排除命令

在Linux系统中,网络设置、问题查找和故障修复是系统管理的重要技能,对于开发人员来说,了解Linux故障排除命令对于日常任务十分有帮助。

本文将介绍在Linux系统中已经可用的重要的网络和故障排除命令。

以下是已经存在于Linux机器上的故障排除命令列表:

命令                  描述
| hostname     | 检查和设置服务器的主机名
| host         | 检索给定主机的DNS详细信息
| ping         | 使用ICMP检查远程服务器的可达性,并显示往返时间
| curl         | 用于数据传输的通用工具,用于故障排除网络问题
| wget         | 下载文件,解决代理连接和连通性问题
| ip           | 替代ifconfig,配置和检索有关网络接口的信息
| arp          | 管理和查看ARP缓存
| ss/netstat   | 检查端口和Unix套接字上的连接和PID
| traceroute   | 使用ICMP查找到目标服务器的跃点,并显示跃点之间的时间
| mtr          | 结合ping和traceroute,提供额外的信息,如中间主机
| dig          | 检索与域名相关的DNS记录
| nslookup     | 类似于dig,用于DNS查询
| nc           | 用于调试TCP/UDP套接字的实用工具
| telnet       | 在端口上测试远程连接
| route        | 检索路由表信息
| tcpdump      | 捕获用于分析网络问题的网络数据包
| lsof         | 列出打开的文件和关联的进程信息

本文中提到的每个命令或实用程序都带有各种选项和标志。要了解这些选项和标志,可以参考每个命令的手册页。手册页提供了有关命令功能及其使用方法的详细信息。只需在终端中键入man,然后输入命令即可访问指南,并查看适合大家需求的可用选项和标志。

1 hostname

hostname命令可帮助检查机器的当前主机名,并支持给其指定新的主机名。

要查看当前名称,请键入:

hostname

如果想更改名称,可以使用以下方式使用hostname命令:

sudo hostname example.com

注意:使用此命令进行的更改是临时的。在重新启动机器后,会恢复为保存在文件中的原始名称(例如/etc/hostname)。

但是,如果想永久更改主机名,可以使用/etc/hosts文件或服务器上存在的hostname文件:

  • 对于Ubuntu,请编辑/etc/hostname file

  • 对于RHEL、CentOS和Fedora,请在 /etc/sysconfig/network file中进行更改。

2 ping

ping网络工具用于检查远程服务器是否可达。其主要目的是验证连接性并排除网络问题。

它提供以下信息:

  • 发送和接收的字节数

  • 发送、接收和丢失的数据包

  • 往返时间的大致时间(以毫秒为单位)

ping命令的语法:ping IPADDRESS or DOMAINANME

例如:

ping medium.com

要ping一个IP地址:

ping 1.1.1.1

如果想在不使用Ctrl+C的情况下限制ping输出,可以使用带有数字的-c标志,如下所示:

ping -c 1 medium.com

3 curl

curl工具主要用于与服务器之间传输数据。然而,它也非常适用于网络故障排除。

对于故障排除,curl支持多种协议,如DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、MQTT、POP3、POP3S、RTMP、RTMPS、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、TELNET和TFTP。

例如,可以使用curl通过telnet检查22端口的连接性:

curl -v telnet://192.168.33.10:22

检查FTP连接:

curl ftp://ftptest.net

还可以使用curl来排查Web服务器的连接性:

curl http://medium.com -I

在这些示例中,curl用于验证不同端口和协议上的连接性,使其成为网络诊断的通用工具。

4 wget

wget命令主要用于获取网页,但也可以帮助排查网络问题。

例如,可以使用wget来排查通过代理服务器的连接:

wget -e use_proxy=yes http_proxy= http://externalsite.com

要检查网站是否可用,可以获取其文件:

wget www.google.com

在这些示例中,wget扩展了其功能,不仅可以获取网页,还可以用于诊断网络问题,如代理服务器连接和网站可用性。

5 IP(ifconfig)

ip命令用于显示和管理路由和网络接口。它是ifconfig的更新版本。虽然ifconfig在所有系统中都可以工作,但建议使用ip命令以获得更好的功能。

以下是使用ip命令的几个示例:

显示网络设备和配置:

ip addr

可以将此命令与管道和grep结合使用,以获取特定信息,例如eth0接口的IP地址。这对于需要动态获取IP地址的自动化工具特别有帮助。

例如,要获取eth0网络接口的IP地址:

ip a | grep eth0 | grep "inet" | awk -F" " '{print $2}'

获取特定接口的详细信息:

ip a show eth0

列出路由表:

ip route
ip route list

这些示例说明了如何使用ip命令显示有关网络设备、配置和路由表的详细信息。

6 arp

ARP(地址解析协议)显示了系统与本地网络的IP地址和MAC地址之间的缓存表。

arp

示例输出:

vagrant@somelab:~$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
10.0.2.3                 ether   52:54:00:12:35:03   C                     eth0
192.168.33.1             ether   0a:00:27:00:00:00   C                     eth1
10.0.2.2                 ether   52:54:00:12:35:02   C                     eth0

7 ss(netstat)

ss命令可以作为netstat的替代品使用,但在所有系统上仍然可以使用netstat命令。

使用ss命令,可以获取比netstat命令更多的信息。ss命令速度快,因为它从内核用户空间获取所有信息。

下面来看一下ss命令的几个用法。

7.1 列出所有连接

"ss"命令将列出计算机上的所有TCP、UDP和Unix套接字连接。

ubuntu@medium:~$ ss
Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port
u_str  ESTAB      0      0                    * 7594                  * 0
u_str  ESTAB      0      0      @/com/ubuntu/upstart 7605                  * 0  
u_str  ESTAB      0      0                    * 29701                 * 0
u_str  ESTAB      0      0      /var/run/dbus/system_bus_socket 29702                 * 0
tcp    ESTAB      0      400      172.31.18.184:ssh         1.22.167.31:61808

ss命令的输出会很大,可以使用"ss | less"命令使输出可滚动。

7.2 过滤TCP、UDP和Unix套接字

如果要过滤掉TCP、UDP或UNIX套接字的详细信息,请使用"ss"命令的"-t"、"-u"和"-x"标志。它将显示所有连接到特定端口的已建立连接。如果要使用"a"和特定标志同时列出已连接和监听端口,请参考下面的示例。

ss -ta
ss -ua
ss -xa

7.3 列出所有监听端口

要列出所有监听端口,请使用"ss"命令的"-l"标志。要列出特定的TCP、UDP或UNIX套接字,请使用"-t"、"-u"和"-x"标志与"-l"一起,如下所示。

ubuntu@medium:~$ ss -lt
State      Recv-Q Send-Q      Local Address:Port          Peer Address:Port
LISTEN     0      128                     *:ssh                      *:*
LISTEN     0      50                     :::http-alt                 :::*
LISTEN     0      50                     :::55857                   :::*
LISTEN     0      128                    :::ssh                     :::*
LISTEN     0      50                     :::53285                   :::*
ubuntu@medium:~$

7.4 列出所有已建立连接

要列出所有已建立的端口,请使用状态已建立标志,如下所示。

ss -t -r state established

要列出所有处于监听状态的套接字,

ss -t -r state listening

8 mtr

mtr工具是用于排查网络瓶颈的网络诊断工具。它结合了pingtraceroute的功能。

例如,以下命令实时显示traceroute输出。

mtr google.com

mtr报告

可以使用"--report"标志生成报告。运行mtr报告时,它会向目标发送10个数据包并生成报告。

mtr -n --report google.com

9 dig

如果有与DNS查找相关的任务,可以使用“dig”命令查询DNS名称服务器。

9.1 使用dig获取所有DNS记录

下面的命令返回twitter.com的所有DNS记录和TTL信息

dig twitter.com ANY

使用+short参数可以获得无冗余的输出。

dig google.com ANY +short

9.2 使用dig获取特定的DNS记录

例如,如果想获取特定域名的A记录,可以使用dig命令。使用+short参数可以提供无冗余的信息。

dig www.google.com A +short

类似地,可以使用以下命令分别获取其他记录信息。

dig google.com CNAME +short
dig google.com MX +short
dig google.com TXT +short
dig google.com NS +short

9.3 使用dig进行反向DNS查找

可以使用以下命令使用dig进行反向DNS查找。将8.8.8.8替换为所需的IP地址。

dig -x 8.8.8.8

10 nc(netcat)

nc(netcat)命令被称为网络命令中的瑞士军刀。

使用nc,可以检查特定端口上运行的服务的连接性。

例如,要检查ssh端口是否打开,可以使用以下命令。

nc -v -n 192.168.33.10 22

netcat还可以用于TCP/UDP数据传输和端口扫描。

在云环境中不推荐进行端口扫描。您需要请求云服务提供商在您的环境中执行端口扫描操作。

11 telnet

telnet命令用于故障排除端口上的TCP连接。

要使用telnet检查端口连接性,请使用以下命令。

telnet 10.4.5.5 22

12 lsof

lsof是个在日常Linux故障排除中使用的命令。对于任何与Linux系统工作的人来说,这个命令同样重要。

要列出所有打开的文件,请执行lsof命令。

开发人员和DevOps工程师经常遇到的一个常见错误是“绑定失败错误:地址已在使用中”。可以使用以下命令找到与端口关联的进程ID,然后可以终止该进程以释放端口。

lsof -i :8080

本文介绍了修复和设置网络所需的重要Linux命令。每个命令都有很多功能,读者可以根据需要深入挖掘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/714733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024可以实现月入过万的抖店,适合新手做吗?

我是电商珠珠 过完年了,一些新手都在找项目,觉得自己能做的项目很少。每个人身边或多或少都有做电商的人,都说做电商可以年入百万什么的,于是找到了抖店,但是对于抖店并不了解,不知道抖店适不适合自己。 …

JVM 第四部分—垃圾回收相关概念 2

System.gc() 在默认情况下,通过System.gc()或者Runtime.getRuntime().gc()的调用,会显式触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存 然而System.gc()调用附带一个免责声明,无法保证对垃…

博途PLC 面向对象系列之“双通气缸功能块“(SCL代码)

1、面向对象系列之找对象 https://rxxw-control.blog.csdn.net/article/details/136150027https://rxxw-control.blog.csdn.net/article/details/1361500272、博途PLC 面向对象系列之"单通气缸功能块" https://rxxw-control.blog.csdn.net/article/details/1363399…

如何使用pip安装和生成requirements.txt

使用 pip freeze 命令可以列出当前环境中已安装的所有 Python 包及其版本信息,并将其输出保存到 requirements.txt 文件中。可以使用重定向 (>) 将命令的输出写入文件中 pip freeze > requirements.txt使用 pip install 命令可以从 requirements.txt 文件中安…

Spark(1)-wordCount入门

1. 创建Maven项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…

JavaScript继承 寄生组合式继承 extends

JavaScript继承 1、JS 的继承到底有多少种实现方式呢? 2、ES6 的 extends 关键字是用哪种继承方式实现的呢? 继承种类 原型链继承 function Parent1() {this.name parentlthis.play [1, 2, 3] }function Child1() {this.type child2 }Child1.prototype new Parent1(…

三天学会阿里分布式事务框架Seata-seata事务日志mysql持久化配置

锋哥原创的分布式事务框架Seata视频教程&#xff1a; 实战阿里分布式事务框架Seata视频教程&#xff08;无废话&#xff0c;通俗易懂版&#xff09;_哔哩哔哩_bilibili实战阿里分布式事务框架Seata视频教程&#xff08;无废话&#xff0c;通俗易懂版&#xff09;共计10条视频&…

navicat16

Navicat16: 链接: https://pan.baidu.com/s/1vIfX0qEEL4mhBrsEzD_-lw?pwdy3fi 提取码: y3fi 破解教程视频&#xff1a;2023年Navicat16破解教程(小白教程)_哔哩哔哩_bilibili

1、云原生安全之K8S的部署与常用命令

文章目录 1、常用命令1.1、基本信息查看1.2、日志查看与问题排查1.3、进入pod与pod内部文件导出1.4、环境搭建相关1.5、镜像相关1.6、电脑重启后,重启k8s服务1.7、关于k8s的持久卷二、k8s的部署2.1、配置环境2.1.1、安装所需工具2.1.2、修改主机名2.1.3、编辑hosts2.1.4、其他…

第13集《灵峰宗论导读》

《灵峰宗论》导读。诸位法师&#xff0c;诸位同学&#xff0c;阿弥陀佛&#xff01;&#xff08;阿弥陀佛&#xff01;&#xff09; 请大家打开讲义第38面。 丙三、结示 这一科是《正见篇》的结示。《正见篇》主要的是要引导我们能够正确地观察生命的真相。生命的真相就是说…

【RISC-V 指令集】RISC-V DSP 扩展指令集介绍(二)

前言&#xff1a; 本笔记是基于对RISC-V DSP扩展指令集文档总结的&#xff0c;《P-ext-proposal.pdf》文档的关键内容如下&#xff1a; 主要介绍了RISC-V的P扩展指令集及其相关细节。 首先&#xff0c;对P扩展指令进行了概述&#xff0c;并列出了其与其他扩展重复的指令。 …

Java 的notify 可能导致死锁原因详解

假设有一个共享资源库 ResourcePool&#xff0c;它内部维护了两类资源&#xff1a;ResourceTypeA 和 ResourceTypeB。现在有两个线程 Thread1 和 Thread2&#xff0c;它们都需要从资源库中分别获取一种资源才能继续执行。Thread1 需要 ResourceTypeA 而 Thread2 需要 ResourceT…

上位机图像处理和嵌入式模块部署(当前机器视觉新形态)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 过去的机器视觉处理&#xff0c;大部分都是集中在上位机、或者是服务器领域&#xff0c;这种形式维持了很长的时间。这种业务形态下&#xff0c;无…

windows 11 蓝牙突然消失

解决方法&#xff1a; 1.WinX&#xff0c;点击设备管理器 2.选中蓝牙&#xff0c;右键更新驱动。 3.然后就可以出现了&#xff0c;如下图

Django多个app配置多个域名访问

环境&#xff1a;Python 3.8.1 Django 2.2.12 项目目录结构&#xff1a; CellMiddle -- 项目根目录 ├─task --- 需求系统 │ ├─migrations │ ├─static │ └─templates ├─logs --- 日志目录 ├─doc --- 文档系统 │ ├─data │ ├─migrations │ ├─st…

程序员是如何看待“祖传代码”的?

目录 ​编辑 程序员是如何看待“祖传代码”的&#xff1f; 一、什么是“祖传代码”&#xff1f; 二、“祖传代码”的利弊 1. 可以节省开发成本 2. 可能引入安全隐患 3. 可能增加系统的维护难度 三、祖传代对程序员的影响 1. 丰富程序员的技能和知识 2. 提高程序员的创…

python笔记_进制

二进制 进位规则&#xff1a;满2进1 范围&#xff1a;0,1 符号&#xff1a;以0b和0B开头 八进制 进位规则&#xff1a;满8进1 范围&#xff1a;0-7 符号&#xff1a;以0o和0O开头 十进制 进位规则&#xff1a;满10进1 范围&#xff1a;0-9 十六进制 进位规则&#xff…

Python——Tchisla求解器(暴力搜索法)

Tchisla简介 最近玩到一个挺有意思的数字解密小游戏《Tchisla》&#xff0c;其规则类似算24点&#xff0c;也是利用一些数学运算和初始数字计算出目标数字&#xff0c;与算24点不同的是&#xff0c;Tchisla允许不限次数地使用一种初始数字&#xff08;1~9&#xff09;&#xf…

【VSCODE修改代码行间距】解决方案

在我们编码的过程中&#xff0c;由于显示字体和显示器的不同&#xff0c;会需要调整行间距&#xff0c;在vscode默认的选项中没有看到设定行间距的选项&#xff0c;不过&#xff0c;可以手动修改配置档达到目的。 1.打开设置 2.打开配置档&#xff0c;手动进行设定 3.在选项中添…

第七十二天 漏洞发现-Web框架中间件联动GobyAfrogXrayAwvsVulmap

第72天 漏洞发现-Web框架中间件&联动&Goby&Afrog&Xray&Awvs&Vulmap 知识点&#xff1a; 1、Bup简单介绍&使用说明 2、Xray简单介绍&使用说明 3、AWWS简单介绍&使用说明 4、Goby简单介绍&使用说明 5、Afrog简单介绍&使用说明 6、…