用“netstat-an”查看端口状态 在Windows2000/XP中,可以在命令提示符下使用“netstat-an”查看系统端口状态,可以列出系统正在开放的端口号及其状态。在stat下面有一些英文,简单说一下这些英文具体都代表什么

LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态

“telnet 目标ip 对端port”,是不是可以测试对端的tcp上的该port是不是开启状态? 这个方法经常用于调试穿越防火墙的连接吧?我有点疑问,这是什么原理啊?
####可以,telnet客户进程和终端用户本身就是通过tcp建立连接的,当然前提是双方都打开了相应的port,如果失败,那就证明没有开放次端口(当然这个不是绝对的,例如防火墙限制)如果穿越防火墙的话,根据我的经验,udp相对容易些

从过程来看,“telnet 目标ip” 就是想连接目标ip的telnet服务嘛,而且要默认占用对端的23端口; 后面又跟上另外一个端口算怎么回事啊?
####telnet服务目的端默认的端口是23,这是应用层的C/S,所以你telnet+ip地址是可以的,对于类似sqlserver 2000

telnet服务的端口是1433,所以你就需要telnet+ip+port

另外这种方法好像只能测试对端的tcp端口吧? 如果要测试对方的udp端口呢?
####是的,telnet的原理已经说明,udp是无连接的,所以不能通过telnet的方式进行测试,一般可以向目标主机的每个端口发出一个0字节的udp包如果我们收到端口不可达的icmp消息,端口就是关闭的,否则假设它是打开的。这个你找点扫描工具例如nmap 暗礁的xscan源码看看