例子:telnet 222.83.228.129 80
结果:测试222.83.228.129这个ip的80端口,是否能连接上
“telnet 目标ip 对端port”,可以测试对端的tcp上的该port是不是开启状态
1、端口未打开
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused
2、端口已打开
$ telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
此时命令未退出。
根据提示Escape character is ‘]’.可知退出字符为’]’(CTRL+])。此时输入其它字符不能使其退出,CTRL+C都不行。输入CTRL+]后会自动执行,进入命令模式:
此时再运行quit才会真正退出。
telnet> quit
Connection closed.
其中,Escape character可以自定义,使用参数-e:
$ telnet -e p 101.199.97.65 62715 #使用p字符
Telnet escape character is 'p'.
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is 'p'.
p
telnet> quit
Connection closed.
3、输出结果后立即退出
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host. #已成功连通端口并自动退出
$ echo "" | telnet 101.199.97.65 62715
Trying 101.199.97.65...
telnet: connect to address 101.199.97.65: Connection refused #端口未开放
4、输出结果后延迟退出
sleep 2使得telnet输出结果后,停留2秒后退出命令模式。
$ sleep 2 | telnet 101.199.97.65 62715
Trying 101.199.97.65...
Connected to 101.199.97.65.
Escape character is '^]'.
Connection closed by foreign host.
5、telnet简介
(1)telnet客户进程和终端用户本身就是通过tcp建立连接的,当然前提是双方都打开了相应的port,如果失败,那就证明没有开放次端口(当然这个不是绝对的,例如防火墙限制)
(2)从过程来看,“telnet 目标ip” 就是想连接目标ip的telnet服务嘛,而且要默认占用对端的23端口; 后面又跟上另外一个端口算怎么回事啊?
telnet服务目的端默认的端口是23,这是应用层的C/S,所以你telnet+ip地址是可以的,
对于类似sqlserver 2000 telnet服务的端口是1433,所以你就需要telnet+ip+port
(3)另外这种方法好像只能测试对端的tcp端口吧? 如果要测试对方的udp端口呢?
是的,telnet的原理已经说明,udp是无连接的,所以不能通过telnet的方式进行测试,一般可以向目标主机的每个端口发出一个0字节的udp包,如果我们收到端口不可达的icmp消息,端口就是关闭的,否则假设它是打开的。