Linux系统下怎么测试端口的连通性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统下怎么测试端口的连通性相关的知识,希望对你有一定的参考价值。

方法一、telnet法
1
telnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口的连通性,具体用法格式:
telnet ip port
说明:
ip:是测试主机的ip地址
port:是端口,比如80
如果telnet连接不存在的端口,那会如下图所示。
Linux系统下怎么测试端口的连通性
2
如果telnet 连接存在端口会出现如下图所示的内容,下图中以80端口为例。
Linux系统下怎么测试端口的连通性
END
方法二、ssh法
1
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,在linux上可以通过ssh命令来测试端口的连通性,具体用法格式如下:
用法: ssh -v -p port username@ip
说明:
-v 调试模式(会打印日志).
-p 指定端口
username:远程主机的登录用户
ip:远程主机
如果远程主机开通了相应的端口,会有如下图所示的建立成功的提示。
Linux系统下怎么测试端口的连通性
2
如果远程主机没有开通相应的端口,则如下图所示
Linux系统下怎么测试端口的连通性
END
方法三、curl法
1
curl是利用URL语法在命令行方式下工作的开源文件传输工具。也可以用来测试端口的连通性,具体用法:
curl ip:port
说明:
ip:是测试主机的ip地址
port:是端口,比如80
如果远程主机开通了相应的端口,都会输出信息,如果没有开通相应的端口,则没有任何提示,需要CTRL+C断开。
Linux系统下怎么测试端口的连通性
END
方法四、wget方法
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。wget名称的由来是“World Wide Web”与“get”的结合,它也可以用来测试端口的连通性具体用法:
wget ip:port
说明:
ip:是测试主机的ip地址
port:是端口,比如80
如果远程主机不存在端口则会一直提示连接主机。

Linux系统下怎么测试端口的连通性
2
如果远程主机存在端口则会看到相应的信息,如下图所示。
Linux系统下怎么测试端口的连通性
参考技术A 方法/步骤

这个需要Linux服务器里边支持nc命令,如果还没有装的情况会显示如下

我们可以使用yum命令直接安装,我的是Centos 6.5系统

如果不会用,直接打nc命令就会显示出它的使用方法

如果需要测试某个服务器的端口在能不能正常在外面 访问
例如我测试一下 180.97.33.107 这个IP 的80 端口有没有开启可以使用命令
nc -z -w 1 180.97.33.107 80

可以看到默认是使用TCP进行测试的,如果要测试UDP端口有没有开放的可以添加-u 一起使用。例如我测试一下202.96.128.86 这个IP的UDP 53端口
nc -u -z -w 1 202.96.128.86 53

上面可以看到成功的会显示相关的信息,但是如果测试到端口是不开放的或者被防火墙拦截的就不会返回相关的信息。本回答被提问者采纳
参考技术B nmap -p 1-200 目标主机 IP1-200 是端口范围 参考技术C telnet 10.199.201.1 9999 参考技术D 窝窝。

linux下测试某网址或IP端口能否访问

参考这篇
Linux系统下怎么测试端口的连通性

测试端口连通

nc -v -w 1   183.xx.oo.ee -z 82 

linux主机centos操作系统,项目里面需要访问一个URL路径的接口http://xxx.121.com.cn:8081

后台报连接超时的错误
java.net.ConnectException: Connection timed out
 at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
nc检查了一下
nc -u -z -w 1 xxx.121.com.cn 80

无返回信息。说明不通啊!

防火墙也关了
/etc/init.d/iptables stop

windows下浏览器地址栏直接输入这个url路径没有问题,有数据返回 !

问题应该出在linux主机上!

什么原因导致的?防火墙拦截?已经关了啊 待解决

今天去看的时候神奇的出现这一幕

[root@template tmp]# nc -u -z  -w 1 xxx.121.com.cn 8081 
Connection to xxxx.121.com.cn 8081 port [udp/tproxy] succeeded!

[root@template tmp]# telnet xxx.121.com.cn 8081
Trying 116.7.226.34...
telnet: connect to address xxx.x.xxx.34: Connection timed out

无缘无故的nc 居然显示 succeeded ,原来是udp!

刚刚看端口的时候发现

[root@template ~]# netstat -nal | grep SYN_SENT
Proto Recv-Q Send-Q Local Address               Foreign Address             State 
tcp        0      1 192.168.1.11:37415          xx.7.oo.34:8081           SYN_SENT    
tcp        0      1 ::ffff:192.168.1.11:37422   ::ffff:xx.7.oo.34:8081    SYN_SENT    
tcp        0      1 ::ffff:192.168.1.11:37421   ::ffff:xx.7.oo.34:8081    SYN_SENT    
tcp        0      1 ::ffff:192.168.1.11:37416   ::ffff:xx.7.oo.34:8081    SYN_SENT    
tcp        0      1 ::ffff:192.168.1.11:37420   ::ffff:xx.7.oo.34:8081    SYN_SENT    
tcp        0      1 ::ffff:192.168.1.11:37419   ::ffff:xx.7.oo.34:8081    SYN_SENT    
tcp        0      1 ::ffff:192.168.1.11:37418   ::ffff:xx.7.oo.34:8081    SYN_SENT    
tcp        0      1 ::ffff:192.168.1.11:37417   ::ffff:xx.7.oo.34:8081    SYN_SENT    

发现点猫腻了!状态都是SYN_SENT

找了第三台机器试了下

[root@www ~]#  wget --spider http://xxx.121.com.cn:8081/ylxxche/smxxic/1469406020577.jpg
--16:31:19--  http://xxx.121.com.cn:8081/ylswxxxhe/sxxxic/146xxx0577.jpg
           => `14xxx020577.jpg'
正在解析主机 xxx.121.com.cn... xx6.7.x6.34
Connecting to xxx.121.com.cn|xx6.7.x6.34|:8081... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:8,652 (8.4K) [image/jpeg]
200 OK

其实我知道是主机网络配置原因。只是不知道具体那一块有问题。防火墙都关了!

莫不是联通云控制台里面要配什么转发?

今天问题终于解决了,联通云控制台里面安全组规则里要添加8081上行
只能说是对网络不了解。对联通云服务器不了解。
顺便解释下 上行和下行
上行指 向外走,访问外网
下行指 外向内,外部访问主机

以上是关于Linux系统下怎么测试端口的连通性的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统下怎么测试端口的连通性

linux服务器怎么检测连通性

linux下怎么检测网络的连通性

linux下测试某网址或IP端口能否访问

【udp】如何检测UDP端口的连通性

Linux服务器上测试TCP/UDP端口的连通性