Linux 故障排查-测试网络端口连通性

2023-05-16

1、telnet 方法

telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。

它为用户提供了在本地计算机上完成远程主机工作的能力。因此我们可以使用telnet 来测试远程机器的连通性。

telnet 软件包安装

1、检测 telnet 包是否安装

rpm -qa | grep telnet

2、未安装,则安装 telnet 软件包

yum install telnet

3、检测安装包是否安装成功

rpm -qa | grep telnet

telnet-0.17-66.el7.x86_64

以上我们完成了 telnet 客户端软件的安装。

具体用法格式如下:

telnet serverIP port

例如:

//连接一个存在的端口,连接成功

telnet 10.198.25.126 5546

Trying 10.198.25.126…
Connected to 10.198.25.126.
Escape character is ‘^]’.

//连接一个不存在的端口,连接被拒绝

telnet 10.198.25.126 1234

Trying 10.198.25.126…
telnet: connect to address 10.198.25.126: Connection refused

//连接一个不存在的网络,出现超时

telnet 10.198.25.13 6

Trying 10.198.25.13…
telnet:connected to 10.198.25.126: Connection timed out

2、weg 方法

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP 协议下载,并可以使用 HTTP 代理。

wget 名称的由来是 “World Wide Web” 与 “get” 的结合,它也可以用来测试端口的连通性。

具体用法格式如下 :

wget ip:port

例如:

//连接一个存在的端口

wget 1.1.1.1:6666

–2021-11-25-- http://1.1.1.1:6666/
Connecting to 1.1.1.1:6666… connected.

//连接一个不存在的端口

wget 1.1.1.1:6621

–2021-11-25-- http://1.1.1.1:6621/
Connecting to 1.1.1.1:6621… failed: Connection refused.

3、curl 方法

curl 是利用 URL 语法在命令行方式下工作的开源文件传输工具。也可以用来测试端口的连通性。

具体用法格式如下 :

curl ip:port

例如:

//连接一个存在的端口,输出正常信息

curl 1.1.1.1:2010

... ...

//连接一个不存在的端口,拒绝连接

curl 1.1.1.1:2019

curl: (7) Failed connect to 1.1.1.1:2019; Connection refused

4、ssh 方法

ssh 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,在 linux上可以通过 ssh 命令来测试端口的连通性。

具体用法格式如下:

ssh -v -p port username@ip

或者

ssh -v -p port ip

例如:

ssh -v -p 9215 1.1.1.1

OpenSSH_7.4pl, OpenSSL 1.0.2k-fips 26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Connecting to 1.1.1.1 [1.1.1.1] port 9215.
debug1: Connection established. //出现该行表示连接成功

//连接一个不存在的端口

ssh -v -p 92 1.1.1.1

ssh: connect to host 1.1.1.1 port 92: Connection refused

5、tcping 工具方法

tcping 是一个可以替代 ping 命令来检测网络状态的一个工具。因为 ping 命令只能检测ICMP报文,当对方禁止了 ping 协议,自然 ping 命令也就无法检测了,这个时候可以通过 tcping 命令来检测网络的连通性。

tcping 有 windows 版和 linux 版本,可以根据自己的需求自行下载使用。

windows 版本下载地址

https://www.elifulkerson.com/projects/tcping.php

使用例子如下:

D:\test> tcping.exe 10.12.113.40 2543
Probing 10.12.113.40:2543/tcp - Port is open -time=4.706ms
Probing 10.12.113.40:2543/tcp - Port is open -time=0.946ms
Probing 10.12.113.40:2543/tcp - Port is open -time=0.806ms
Probing 10.12.113.40:2543/tcp - Port is open -time=1.706ms

Ping statistics for 10.12.113.40:2543
4 probes sent.
4 successful, 0 failed. <0.00% fail>
Approximate trip times in milli-seconds:
Minimum = 0.806ms, Maximum = 4.706ms, Average = 1.885ms

linux 版下载地址

http://linuxco.de/tcping/tcping-1.3.5.tar.gz

使用例子如下:

gcc -o tcping tcping.c

cp tcping /usr/bin

tcping www.baidu.com 80

www.baidu.com port 80 open.

tcping 10.25.12.153 2335

10.25.12.153 port 2335 open

6、tcpdump 方法

当需要测试报文是否发送到对端,也可以使用 tcpdump 命令进行抓包分析。

通常使用的方式是通过 tcpdump 命令抓取数据包,然后通过 wireshake 工具进行分析。

使用方式如下:

//监视指定网络接口、某个具体端口号接收的tcp报文的数据包

tcpdump -i eth0 -n tcp port 2443

//也可以指定ip, 例如获取所有210.27.48.1 的主机收到的和发出的所有数据包

tcpdump host 210.27.48.1

//也可以把抓取的数据包保存到cap格式的文件中,通过使用wireshark进行分析

tcpdump tcp -i eth0 -w /test.cap



公众号 Linux码农 原文链接
Linux 故障排查-测试网络端口连通性

公众号 Linux码农 推荐阅读

Linux ‘网络配置’ 和 ‘故障排除’ 命令总结
Linux 进程管理之基础知识

你需要了解的55个网络概念
Centos7 开启 iptables 日志

memcache 多线程模型

linux ulimit 调优

Linux GDB的实现原理

服务端 TCP 连接的 TIME_WAIT 过多问题的分析与解决

60秒内对 Linux 进行性能诊断

Linux 下的资源限制

你需要了解的55个网络概念

常见的限流方式之漏桶算法

常见的限流方式之计数器滑动窗口算法

应该知道的LINUX技巧

Linux 可执行文件程序载入和执行过程

进程间通信(IPC) 系列 | mmap

一文讲懂什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址

关于 TCP/IP,必知必会的十个问题

高性能定时器策略之时间轮定时器算法



关注公众号 Linux码农 获取更多干货
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 故障排查-测试网络端口连通性 的相关文章

  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • jpegtran 优化而不更改文件名

    我需要优化一些图像 但不更改它们的名称 jpegtran copy none optimize image jpg gt image jpg 但是 这似乎创建了 0 的文件大小 当我对不同的文件名执行此操作时 大小仍然完全相同 怎么样 jp
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • 当 grep "\\" XXFile 我得到“尾随反斜杠”

    现在我想查找是否有包含 字符的行 我试过grep XXFile但它暗示 尾随反斜杠 但当我尝试时grep XXFile没关系 谁能解释一下为什么第一个案例无法运行 谢谢 区别在于 shell 处理反斜杠的方式 当你写的时候 在双引号中 sh
  • “make install”将库安装在 /usr/lib 而不是 /usr/lib64

    我正在尝试在 64 位 CentOS 7 2 上构建并安装一个库 为了这个目的我正在跑步 cmake DCMAKE BUILD TYPE Release DCMAKE INSTALL PREFIX usr DCMAKE C COMPILER
  • 按进程名称过滤并记录 CPU 使用情况

    Linux 下有选项吗顶部命令 https www man7 org linux man pages man1 top 1 html我可以在哪里按名称过滤进程并将每秒该进程的 CPU 使用情况写入日志文件 top pgrep 过滤输出top
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • 监控子进程的内存使用情况

    我有一个 Linux 守护进程 它分叉几个子进程并监视它们是否崩溃 根据需要重新启动 如果父进程可以监视子进程的内存使用情况 以检测内存泄漏并在超出一定大小时重新启动子进程 那就太好了 我怎样才能做到这一点 您应该能够从 proc PID
  • PyQt5 - 无法使用 QVideoWidget 播放视频

    from PyQt5 QtWidgets import from PyQt5 QtMultimedia import from PyQt5 QtMultimediaWidgets import from PyQt5 QtCore impor
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • 使用 plistBuddy 获取值数组

    var keychain access groups declare a val usr libexec PlistBuddy c Print var sample plist echo val echo val 0 Ouput Array
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I

随机推荐