![敲击端口获取服务和版本](https://linux22.com/image/1333970/%E6%95%B2%E5%87%BB%E7%AB%AF%E5%8F%A3%E8%8E%B7%E5%8F%96%E6%9C%8D%E5%8A%A1%E5%92%8C%E7%89%88%E6%9C%AC.png)
我很难记住我在 bash 中使用的某个命令,该命令会提供有关它将“敲击”的端口的信息。
我用过ssh 后门这样我出门在外时就可以访问家里的电脑。这是一个很好的替代方案,而不是使用DNS 解决方案以应对我的 ISP 不可预测地更改我的计算机的 IP。
我可以毫无问题地设置 ssh 隧道,执行以下操作
me@home$ ssh -X -R 2222:localhost:22 me@my_server
然后使用这些命令沿着隧道回家
me@somewhere_remote$ ssh me@my_server
me@myserver password:
me@mys_erver$ ssh -p 2222 me@localhost
me@localhost's password:
me@home$
一切正常,我对此没有任何问题。只是说明我的用例。
我的问题,或者更令人烦恼的是,我记得我曾经知道并使用一个命令,它可以让我敲击一个端口,它会打印出一行说明端口上正在运行什么服务。
因此,如果我当前以 me@my_server 身份登录,我可以执行如下操作
me@my_server$ knock localhost:2222
me@my_server$ OpenSSH_5.8p1
其中代替‘knock’的某些命令将打印出端口转发到my_server的ssh版本。
想到的一些可能的命令包括网猫,网络状态, 和nmap,但我记不清我用哪个来获得这个功能了。我猜它看起来像
nc -p localhost:2222
但这实际上没有任何作用,所以我的某些参数一定是错误的。
我仔细查看了每个命令的手册页,但似乎找不到如何执行此操作。我搜索了历史记录,但找不到它,因为距离上次使用它已经太久了!(我以前只需按 ctrl+R n___ 它就会出现)。
这是一个非常有用的命令,因为可以检查他们正在连接的端口以及正在监听的服务。没有它我当然也可以,但现在我脑子里一直在想它是什么!
有人知道这样的命令吗?我可能把一些细节搞混了,但我记得它大致做了一些我解释过的事情。
感谢任何建议和帮助!
答案1
有可能nmap
。
$ nmap -sT -sV -p 80,443 www.google.com
Starting Nmap 6.01 ( http://nmap.org ) at 2012-10-18 01:36 PDT
Nmap scan report for www.google.com (74.125.224.242)
Host is up (0.015s latency).
Other addresses for www.google.com (not scanned): 74.125.224.244 74.125.224.240 74.125.224.241 74.125.224.243
rDNS record for 74.125.224.242: lax04s08-in-f18.1e100.net
Not shown: 98 filtered ports
PORT STATE SERVICE VERSION
80/tcp open http Google httpd 2.0 (GFE)
443/tcp open ssl/http Google httpd 2.0 (GFE)
Service Info: OS: Linux; CPE: cpe:/o:linux:kernel
Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20.23 seconds
-sT
是TCP扫描-sV
是服务版本扫描-p
是要扫描的端口列表。使用此-F
选项可仅扫描常用端口,或使用此选项可不扫描许多(但不是全部)端口。
与往常一样,请阅读手册以了解更多信息。