测试linux连通性的七种常用方法

开发中我们常常需要测试某台主机端口的连通性,总结了以下七种常用方法

一、telnet

telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。
它为用户提供了在本地计算机上完成远程主机工作的能力。因此可以使用telnet 来测试远程机器的连通性。

1、检测telnet包是否安装

rpm -qa | grep telnet

2、未安装,则安装

yum install telnet -y

3、检测是否安装成功

rpm -qa | grep telnet

4、测试主机连通性

telnet IP port

二、wget

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP 协议下载,并可以使用 HTTP 代理。
wget 名称的由来是 “World Wide Web” 与 “get” 的结合,它也可以用来测试端口的连通性。

1、首先检查是否安装wget

rpm -qa | grep wget

2、安装wget

yum install wget -y

3、测试主机连通性

wget ip:port

三、curl

curl 是利用 URL 语法在命令行方式下工作的开源文件传输工具。也可以用来测试端口的连通性。 适合验证第三方提供的地址是否可以连通

语法

curl ip:port 

通过代理访问

cutl -x 代理地址+端口 -v 请求地址

发送post请求

curl -x POST -d 'name=zhangsan&age=16' URL

发送json报文格式请求

curl -H "Content-Type:application/json" -X POST -d 'json报文' 'URL'

四、ssh方法

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

语法:

ssh -v -p port username@ip

-v 调试模式(会打印日志).
-p 指定端口
username:远程主机的登录用户
ip:远程主机

五、tcping 工具方法

tcping 是一个可以替代 ping 命令来检测网络状态的一个工具。因为 ping 命令只能检测ICMP报文,当对方禁止了 ping协议,自然 ping 命令也就无法检测了,这个时候可以通过 tcping 命令来检测网络的连通性。 tcping 有 windows 版和 linux 版本,可以根据自己的需求自行下载使用。


windows 版本下载地址
https://www.elifulkerson.com/projects/tcping.php

linux 版下载地址
地址http://linuxco.de/tcping/tcping-1.3.5.tar.gz

六、tcpdump

当需要测试报文是否发送到对端,也可以使用 tcpdump 命令进行抓包分析。
通常使用的方式是通过 tcpdump 命令抓取数据包,然后通过wireshake 工具进行分析。

使用方式如下:
监视指定网络接口、某个具体端口号接收的tcp报文的数据包

tcpdump -i eth0 -n tcp port 8081

也可以指定ip

tcpdump host 192.168.1.110

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

tcpdump tcp -i eth0 -w /test.cap

七、netstat显示网络状态。

利用 netstat 指令可让你得知整个 Linux 系统的网络情况。

语法:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同“ifconfig -e”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
-l或--listening 显示监控中的服务器的Socket。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。

常用命令:netstat -anp、netstat -nupl、 netstat -ntpl、netstat -tulnp

例如:

netstat -tulnp

使用了"-I"选项,所以只能看到监听状态的连接,而不能看到已经连接状态的连接。

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:3306  0.0.0.0:* LISTEN 2359/mysqld
tcp  0  0 0.0.0.0:11211  0.0.0.0:* LISTEN 1563/memcached
tcp  0  0 0.0.0.0:22  0.0.0.0:* LISTEN 1490/sshd
tcp  0  0 :::11211 :::* LISTEN 1563/memcached
tcp  0  0 :::80 :::* LISTEN 21025/httpd
tcp  0  0 :::22 :::*
LISTEN 1490/sshd
udp  0  0 0.0.0.0:11211  0.0.0.0:* 1563/memcached
udp  0  0:::11211 :::* 1563/memcached

说明:

Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议。

Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。

Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,不具备 ACK 标志的数据包。

Local Address:本机的 IP 地址和端口号。

ForeignAddress:远程主机的 IP 地址和端口号。

State:状态。常见的状态主要有以下几种。
-LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听。
-ESTABLISHED:已经建立连接的状态。如果使用"-I"选项,则看不到已经建立连接的状态。
-SYN_SENT:SYN 发起包,就是主动发起连接的数据包。
-SYN_RECV:接收到主动连接的数据包。
-FIN_WAIT1:正在中断的连接。
-FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。
-TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。
-CLOSED:套接字没有被使用。
PID/Program name:哪个程序占用了端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值