如何在Unix中testing远程主机端口是否可访问

在Windows中,我使用命令行和“telnet”来检查端口。 如何在Unix中做同样的事情?

看来有些人使用'tcpdump port'命令。 这是监测实时stream量吗? 谢谢。

nmap是一个伟大的通用工具,用于这样的事情和其他许多事情。

nmap host.domain.tld (或者是本地机器的nmap host ,或者nmap <ipaddr>通过地址而不是名称来检查机器)将列出哪些公共端口是打开的。

nmap 192.168.23.1-254 -p 22,80,443将通过地址扫描一系列主机,以查看通常与SSH,HTTP和HTTPS关联的TCP端口是否打开。

man nmap有更多的select – 这是networking检查工具的厨房水槽。

目前你可能没有安装nmap,但它只是在所有发行版的标准仓库中。 对于debian或Ubuntu的变体aptitude install nmap来安装它,或者在你select的GUI包pipe理器中find它。 如果您的系统无法轻松访问,请从http://nmap.org/获取并获取更多信&#x606F;

您也可以使用您已经熟悉的telnet客户端技术,并且通常安装在其中一个默认包中,但是nmap是一个值得了解的工具,因为它可以帮助诊断networking问题,只是检查事情是否应该如此,等等。 如果你希望与命令行远离交互,还有一些体面的graphics前端。

如果您使用的是bash,那么手册页会声明您可以写入/ dev / tcp / HostNameOrIP / port。 我已经使用了几次,如果远程端口是打开的,那么没有任何反应。 如果系统无法连接到远程端口,则说明原因

 [kevin@box ~]$ echo -n > /dev/tcp/www.yahoo.com/80 [kevin@box ~]$ nslookup www.no-such-domain.com Server: 127.0.0.1 Address: 127.0.0.1#53 ** server can't find www.no-such-domain.com: NXDOMAIN [kevin@box ~]$ echo -n > /dev/tcp/www.no-such-domain.com/80 -bash: www.no-such-domain.com: Name or service not known -bash: /dev/tcp/www.no-such-domain.com/80: Invalid argument [kevin@box ~]$ echo -n > /dev/tcp/192.168.3.3/80 #no such server on my network -bash: connect: No route to host -bash: /dev/tcp/192.168.3.3/80: No route to host [kevin@box ~]$ echo -n > /dev/tcp/192.168.3.1/88 #nothing listening on port 88 -bash: connect: Connection refused -bash: /dev/tcp/192.168.3.1/88: Connection refused [kevin@box ~]$ 

您也可以在* nix机器上使用telnet

要testing在Bash中是否可以访问端口,可以使用下面的一行命令:

 $ </dev/tcp/example.com/80 && echo Port is open || echo Port is closed Port is open 

要手动检查,请使用telnet命令(与Windows上类似)。