美文网首页
测试特定协议下指定端口是否开启

测试特定协议下指定端口是否开启

作者: 董春磊 | 来源:发表于2017-06-18 14:51 被阅读571次

    我们在检测远程服务是否正常时,经常会用一些工具(命令)来检测端口是否开启,来确定服务是否正常。通常可用于检测的工具有nc、socat、nmap等,基本思想是向远端指定端口发送数据,看其状态。


    测试方法

    测试服务器地址:

    远端:192.168.0.15

    本端:192.168.0.10

    测试方法:

    单向检测(适用于无法登录远端服务查看的情况)

    方法1:nc

    如果返回succeeded,则说明相应的UDP端口访问正常。

    如果无任何返回信息,则说明相应的UDP端口访问失败。

    nc -uvz $IP $Port.   //UDP

    nc -vz $IP $Port   //TCP

    远端不监听1777端口情况

    # nc -uvz 192.168.0.15 1777

    #

    远端监听1777端口

    # nc -ul 1777

    XXXXX

    # nc -uvz 192.168.0.15 1777

    Connection to 192.168.0.15 1777 port [udp/powerguardian] succeeded!

    方法2:socat于nc类似

    如果succeeded,则无任何返回,如果failed则返回Connection refused。

    echo "This socat udp test." | socat - udp-connect:$IP:$Port

    远端不监听1777端口,本端发送udp数据至远端指定端口。

    # echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777

    2017/06/18 14:26:39 socat[22195] E read(3, 0xb48a20, 8192): Connection refused

    远端开启监听,本端再次发送。

    # nc -ul 1777

    This socat udp test.

    # echo "This socat udp test." | socat - udp-connect:192.168.0.15:1777

    #

    方法3:nmap测试

    用指定协议扫描远端指定端口

    nmap -sU -p $Port $IP

    # nmap -sU -p 1777 192.168.0.15

    Starting Nmap 5.51 (http://nmap.org) at 2017-06-18 14:35 CST

    Nmap scan report for host-192-168-0-15 (192.168.0.15)

    Host is up (0.00098s latency).

    PORT     STATE  SERVICE

    1777/udp closed unknown

    MAC Address: FA:16:3E:1A:54:30 (Unknown)

    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

    本端和远端同时测试:

    可以通过传输文本及文件来测试UDP端口是否正常(先开监听,再发送)

    方法1:发送文本

    远端:nc -ul $Port

    本端: nc -u $IP $Port

    在本端键入任意字符,看远端是否可以收到。

    方法2:发送文件(nc传文件要比scp快,但安全性低)

    远端:nc -l $Port > $Filename

    本端:nc $IP $Port < $Filename

    可以执行md5sum看两端的文件md5是否相同

    注:如果是检测tcp协议端口,上述nc命令中,去掉参数-u即可。另外,也可以使用telnet $IP $Port来完成

    关于使用NC进行端口扫描

    $ nc -vzw 2 180.76.148.122 22-81 //显示详细信息,包含失败的

    $ nc -zw 2 180.76.148.122 22-81 //不显示详细信息,只包含成功的,如果检测udp端口,可用"vzw"参数,"z"参数表示连接成功后立即关闭连接

    Connection to 180.76.148.122 port 22 [tcp/ssh] succeeded!

    Connection to 180.76.148.122 port 80 [tcp/http] succeeded!

    附全面的ncat使用方法:https://linux.cn/article-9190-1.html

    相关文章

      网友评论

          本文标题:测试特定协议下指定端口是否开启

          本文链接:https://www.haomeiwen.com/subject/jwppqxtx.html