众所周知,计算机之间通信是通过端口进行的,例如你访问一个网站时,Windows就会在本机开一个端口(例如1025端口),然后去连接远方网站服务器的一个端口,别人访问你时也是如此。默认状态下,Windows会在你的电脑上打开许多服务端口,黑客常常利用这些端口来实施入侵,因此掌握端口方面的知识,是安全上网必备的技能。
一、常用端口及其分类
电脑在Internet上相互通信需要使用TCP/IP协议,根据TCP/IP协议规定,电脑有256×256(65536)个端口,这些端口可分为TCP端口和UDP端口两种。如果按照端口号划分,它们又可以分为以下两大类:
1.系统保留端口(从0到1023)
这些端口不允许你使用,它们都有确切的定义,对应着因特网上常见的一些服务,每一个打开的此类端口,都代表一个系统服务,例如80端口就代表Web服务。21对应着FTP,25对应着SMTP、110对应着POP3等(如图1)。
2.动态端口(从1024到65535)
当你需要与别人通信时,Windows会从1024起,在本机上分配一个动态端口,如果1024端口未关闭,再需要端口时就会分配1025端口供你使用,依此类推。
但是有个别的系统服务会绑定在1024到49151的端口上,例如3389端口(远程终端服务)。从49152到65535这一段端口,通常没有捆绑系统服务,允许Windows动态分配给你使用。
二、如何查看本机开放了哪些端口
在默认状态下,Windows会打开很多“服务端口”,如果你想查看本机打开了哪些端口、有哪些电脑正在与本机连接,可以使用以下两种方法。
1.利用netstat命令
Windows提供了netstat命令,能够显示当前的 TCP/IP 网络连接情况,注意:只有安装了TCP/IP协议,才能使用netstat命令。
操作方法:单击“开始→程序→附件→命令提示符”,进入DOS窗口,输入命令 netstat -na 回车,于是就会显示本机连接情况及打开的端口,如图2。其中Local Address代表本机IP地址和打开的端口号(图中本机打开了135端口),Foreign Address是远程计算机IP地址和端口号,State表明当前TCP的连接状态,图中LISTENING是监听状态,表明本机正在打开135端口监听,等待远程电脑的连接。
如果你在DOS窗口中输入了netstat -nab命令,还将显示每个连接都是由哪些程序创建的。上图2中本机在135端口监听,就是由svchost.exe程序创建的,该程序一共调用了5个组件(WS2_32.dll、RPCRT4.dll、rpcss.dll、svchost.exe、ADVAPI32.dll)来完成创建工作。如果你发现本机打开了可疑的端口,就可以用该命令察看它调用了哪些组件,然后再检查各组件的创建时间和修改时间,如果发现异常,就可能是中了木马。
2.使用端口监视类软件
与netstat命令类似,端口监视类软件也能查看本机打开了哪些端口,这类软件非常多,著名的有Tcpview、Port Reporter、绿鹰PC万能精灵、网络端口查看器等,推荐你上网时启动Tcpview,密切监视本机端口连接情况,这样就能严防非法连接,确保自己的网络安全。
三、关闭本机不用的端口