好的,我们都知道如何使用PING来测试与IP地址的连接。我需要做的是类似的事情,但测试我对给定IP地址的出站请求以及特定端口(在本例中为1775)是否成功。应该最好从命令提示符执行测试。
答案 0 :(得分:65)
答案 1 :(得分:9)
为了自动化令人敬畏的服务portquiz.net,我确实写了一个bash脚本:
NB_CONNECTION=10
PORT_START=1
PORT_END=1000
for (( i=$PORT_START; i<=$PORT_END; i=i+NB_CONNECTION ))
do
iEnd=$((i + NB_CONNECTION))
for (( j=$i; j<$iEnd; j++ ))
do
#(curl --connect-timeout 1 "portquiz.net:$j" &> /dev/null && echo "> $j") &
(nc -w 1 -z portquiz.net "$j" &> /dev/null && echo "> $j") &
done
wait
done
答案 2 :(得分:6)
如果目标IP /端口上正在运行服务器,则可以使用Telnet。除“无法连接”之外的任何响应都表示您能够连接。
答案 3 :(得分:5)
如果您正在测试TCP / IP,那么测试远程地址/端口的一种便宜方法是telnet到它并查看它是否连接。对于HTTP(端口80)等协议,您甚至可以键入HTTP命令并获取HTTP响应。
例如
Command IP Port
Telnet 192.168.1.1 80
答案 4 :(得分:3)
我发现的最快/最有效的方法是使用此处描述的nmap和portquiz.net:http://thomasmullaly.com/2013/04/13/outgoing-port-tester/这将扫描到前1000个最常用的端口:
# nmap -Pn --top-ports 1000 portquiz.net
Starting Nmap 6.40 ( http://nmap.org ) at 2017-08-02 22:28 CDT
Nmap scan report for portquiz.net (178.33.250.62)
Host is up (0.072s latency).
rDNS record for 178.33.250.62: electron.positon.org
Not shown: 996 closed ports
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
443/tcp open https
8080/tcp open http-proxy
Nmap done: 1 IP address (1 host up) scanned in 4.78 seconds
全部扫描(花费6秒而不是5秒):
# nmap -Pn -p1-65535 portquiz.net
答案 5 :(得分:1)
用于测试端口序列的@benjarobin的bash脚本示例对我不起作用所以我创建了这个最小的非实际一行(命令行)示例,该示例从序列中写入开放端口的输出1-65535(所有适用的通信端口)到本地文件并抑制所有其他输出:
for p in $(seq 1 65535); do curl -s --connect-timeout 1 portquiz.net:$p >> ports.txt; done
不幸的是,这需要18.2小时才能运行,因为我的旧卷曲版本允许整数秒的最小连接超时量为1.如果你有卷曲版本&gt; = 7.32.0(类型&#34;卷曲-V&#34;),您可以尝试更小的十进制值,具体取决于您连接服务的速度。或者尝试使用较小的端口范围来最小化持续时间。
此外,它会附加到输出文件ports.txt,因此如果多次运行,您可能需要先删除该文件。