如何在linux环境模拟开启一个监听的端口?
1、背景说明
问题是什么意思呢,就是如何在linux的环境,通过一个程序,模拟监听一个端口。
有什么用呢?
- 可以用来测试两个主机之间,哪些端口是通的,或者说,安全端口的范围
- 两个主机之前的防火墙的超时时间的设置
那么,有什么办法来实现呢?
使用nc命令,可以模拟在主机上开启一个监听的端口。
OK,下面的就是具体的模拟的过程。
2、模拟过程
2.1、安装nc命令
使用下面的命令安装nc命令
yum install -y nc
执行下面的命令,出现nc程序的版本号,说明nc命令安装成功
[root@nccztsjb-node-01 ~]# nc --version Ncat: Version 7.50 ( https://nmap.org/ncat ) [root@nccztsjb-node-01 ~]#
2.2、监听到某个端口
执行下面的命令,模拟一个程序监听在某个端口
nc -l -k 9085
参数说明:
- -l 表示监听
- -k 表示端口持续打开,可接收多次的连接请求
执行的过程,执行命令后,程序一直在前台运行
在开启另外一个终端,查看监听的端口的情况
[root@nccztsjb-node-01 ~]# netstat -ntlp | grep 9085 tcp 0 0 0.0.0.0:9085 0.0.0.0:* LISTEN 1953/nc tcp6 0 0 :::9085 :::* LISTEN 1953/nc [root@nccztsjb-node-01 ~]# [root@nccztsjb-node-01 ~]#
nc监听的端口,在每个网卡上,包括ipv4和ipv6上的
2.3、验证端口的可连接性
在其他的主机上,测试该端口是否可以联通
telnet 172.20.59.76 9085
出现以下的结果,表示该端口是在监听的,并且两个主机之间这个端口没有安全的限制的
执行 Ctrl + ],进去telnet的终端(^],表示的按键是:ctrl + ])
然后执行quit命令,退出telnet
然后,第一个主机上监听的9085端口并没有退出。
在telnet客户端中,断开连接
开启9085端口的监听程序,并没有退出
监听的端口还在
如果是使用下面的命令进行监听
nc -l 9085
在另外的一个主机进行连接
退出连接后
监听9085端口的程序也退出了
所以,是个临时的监听端口,一次连接断开后,程序就退出了。
如果要测试,多次的连接,要使用-k参数。
OK,经过以上的步骤,就实现了在linux的主机上,模拟监听某个端口,测试端口的开放范围,和网络的超时时间。
超时时间是怎么回事?
如果主机之间,有路由,防火墙,有的时候有网络连接的超时时间,可以telnet建立一个连接,看多久会自动断掉,这个自动断掉的时间,就是防火墙的超时时间。