1、借助系统自带MS-DOS命令查看开放的端口(Win2000/XP/server2003)
在开始-运行-输入cmd,打入netstat-an(注意-前有个小空格),在IP地址“,”后面就是端口号了。(-a表示显示当前所有连接和侦听端口,-n表示以数字格式显示地址和端口号)
小常识:TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramProtocol,用户数据包协议)都是网络上传输数据的通信协议,UDP协议面向非连接,而TCP协议面向连接,他们各自的端口号是相互独立的,列如TCP可以有个255端口,UDP也可以有个255端口,他们两者并不冲突的。
2、借助第三方软件查看开放的端口
(1)例如:ActivePorts(SmartLine出品):可以用来监视所有打开的TCP/IP/UDP端口,将你所有端口显示出来,还显示所有端口以及对应的程序所在的路径,查看本地IP和远端IP(试图连接你电脑的IP)是否正在活动。
(2)列如:fpor命令行工具:特点小巧,但功能不亚于ActivePorts哦,同样可以查看端口与相应程序路径。显示模式为:PidProcessPortProtoPath,392svchost->113TCP,C:\WINNT\system32\vhos.exe。
二、限制或关闭端口的方法:
1、通过系统自带功能“限制开放”需要的端口(Win2000/XP/server2003)
通过系统自有的“TCP/IP筛选功能”限制服务器端口,控制面板-网络连接-“本地连接”-右键-属性,然后选择internet(tcp/ip)-属性-高级-选项-选中TCP/IP筛选-属性,在这里分为3项,分别是TCP、UDP、IP协议,假设我的系统只想开放21、80、25、110这4个端口(qq为4000端口),只要在“TCP端口”上勾选“只允许”然后点击“添加”依次把这些端口添加到里面,然后确定,重新启动后生效。
2、通过系统自带防火墙增加“允许通过”的端口
(1)未升级SP2的WINXP/Server2003
控制面板-网络连接-本地连接-属性-高级,把“Inernet连接防火墙”下面的选项勾选上,这样防火墙就自动启动了,点击“设置”,我们可以在“高级设置”窗口的“服务”选项卡中点击“添加”按钮,在“服务设置”对话框中,把服务描述、计算机名或IP地址、端口号、是TCPorUDP,填完后打勾确认,如果不需要了去掉勾确认。(防火墙启动以后“本地连接”图标会出现一个可爱的小锁头。)
(2)升级WIinXPSP2的WindowsXP
控制面版-windows防火墙-例外-添加端口,在取名后,输入端口号,确认TCP或者UDP协议,然后确认,在你取名的这个设置前打勾,表示允许通过此端口,不打勾表示不例外。
3、利用带有的“本地安全策略”功能关闭端口(WINXPHOME版本无此功能)
关闭TCP:135(Win2000、WinXP防止RPC135溢出漏洞)、139、445(注册表“HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\NetBT\\Parameters”中追加名为“SMBDeviceEnabled”的DWORD值,并将其设置为0能禁用445端口)、593、1025和UDP:135、137、138、445端口,关闭一些流行病毒的后门端口(如TCP2745、3127、6129端口),以及远程服务访问端口3389。以下看步骤,共8个。
⑴控制面板-管理工具,打开“本地安全策略”,选中“IP安全策略,在本地计算机”,在右边窗口的空白处右击鼠标,弹出快捷菜单,选择“创建IP安全策略”,于是弹出一个向导,在向导中点击“下一步”按钮,为新的安全策略命名;再按“下一步”,则显示“安全通信请求”画面,在画面上把“激活默认相应规则”左边的钩去掉,点击“完成”按钮就创建了一个新的IP安全策略。
⑵右击该IP安全策略,在“属性”对话框中,把“使用添加向导”左边的钩去掉,然后单击“添加”按钮添加新的规则,随后弹出“新规则属性”对话框,在画面上点击“添加”按钮,弹出IP筛选器列表窗口;在列表中,首先把“使用添加向导”左边的钩去掉,然后再点击右边的“添加”按钮添加新的筛选器。
⑶进入“筛选器属性”对话框,首先看到的是寻址,源地址选“任何IP地址”,目标地址选“我的IP地址”;点击“协议”选项卡,在“选择协议类型”的下拉列表中选择“TCP”,然后在“到此端口”下的文本框中输入“135”,点击“确定”按钮,这样就添加了一个屏蔽TCP135(RPC)端口的筛选器,它可以防止外界通过135端口连上你的电脑。
⑷点击“确定”后回到筛选器列表的对话框,可以看到已经添加了一条策略,重复以上步骤继续添加TCP137、139、445、593端口和UDP135、139、445端口,为它们建立相应的筛选器。
⑸重复以上步骤添加TCP1025、2745、3127、6129、3389端口的屏蔽策略,建立好上述端口的筛选器,最后点击“确定”按钮。
⑹在“新规则属性”对话框中,选择“新IP筛选器列表”,然后点击其左边的圆圈上加一个点,表示已经激活,最后点击“筛选器操作”选项卡。在“筛选器操作”选项卡中,把“使用添加向导”左边的钩去掉,点击“添加”按钮,添加“阻止”操作,在“新筛选器操作属性”的“安全措施”选项卡中,选择“阻止”,然后点击“确定”按钮。
⑺进入“新规则属性”对话框,点击“新筛选器操作”,其左边的圆圈会加了一个点,表示已经激活,点击“关闭”按钮,关闭对话框;最后回到“新IP安全策略属性”对话框,在“新的IP筛选器列表”左边打钩,按“确定”按钮关闭对话框。在“本地安全策略”窗口,用鼠标右击新添加的IP安全策略,然后选择“指派”。
⑻完后重启电脑,这些端口就被关闭了~~
4、利用关闭系统服务的同时关闭端口
控制面板-管理工具-服务。
⑴关闭7.9等等端口:关闭SimpleTCP/IPService,支持以下TCP/IP服务:CharacterGenerator,Daytime,Discard,Echo,以及QuoteoftheDay。
⑵关闭80端口:关掉WWW服务。在“服务”中显示名称为"WorldWideWebPublishingService",通过Internet信息服务的管理单元提供Web连接和管理。
⑶关掉25端口:关闭SimpleMailTransportProtocol(SMTP)服务,它提供的功能是跨网传送电子邮件。
⑷关掉21端口:关闭FTPPublishingService,它提供的服务是通过Internet信息服务的管理单元提供FTP连接和管理。
⑹关闭server服务,此服务提供RPC支持、文件、打印以及命名管道共享。关掉它就关掉了win2k的默认共享,比如ipc$、c$、admin$等等,此服务关闭不影响您的共他操作。
⑺关闭139端口,139端口是NetBIOSSession端口,用来文件和打印共享,注意的是运行samba的unix机器也开放了139端口,功能一样。以前流光2000用来判断对方主机类型不太准确,估计就是139端口开放既认为是NT机,现在好了。
关闭方法:在“网络连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WINS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。对于个人用户来说,可以在各项服务属性设置中设为“禁用”,以免下次重启服务也重新启动,端口也开放了。
5、通过第三方防火墙来关闭端口
例如国内的:天网,金山,瑞星;国外的:诺顿,IIS。这类防火墙关闭端口就比较方便了,添加关闭就OK了,一般都有专门的设置选项。下载哪个防火墙看其帮助设置吧~。
附加
有的时候,我们在程序里面配置了某个端口,但程序总是起不来,很多时候是端口是其他程序占用引起的。最经常遇到的就是机器上配置了多个web服务器,当是服务器停了,进程因为某些原因没有被自动停止,但我们自己没有注意到……
在windows下可以用命令netstat-nao来看,然后找出PID字段的值,然后到Windows的任务管理器里面去看。默认的Windows任务管理器是没有显示这个字段的值的,可以在“查看”->“选择列”菜单里面勾选一下。
在linux下,可以用netstat-naop来看,同样也是找PID字段。在linux下知道了PID,那接下来该怎么玩,肯定是所有人都知道了
以7777端口为例,命令如下:
$/sbin/iptables-IINPUT-ptcp--dport7777-jACCEPT$/etc/init.d/iptablessave#保存$/etc/init.d/iptablesstatus#查看端口状态或者打开配置文件/etc/sysconfig/iptables,加入如下语句,然后重启防火墙:
-AINPUT-ptcp-mstate--stateNEW-mtcp--dport7777-jACCEPT然后重启防火墙:
$/etc/init.d/iptablesrestart修改完成。其中,参数:
关闭端口
$iptables-AINPUT-ptcp--dport7777-jDROP$/etc/init.d/iptablessave#保存关闭IP访问:
$iptables-AINPUT-ptcp-s192.168.1.2-jDROP或者,打开配置文件/etc/sysconfig/iptables,加入如下语句:
-AINPUT-ptcp-mstate--stateNEW-mtcp--dport7777-jDROP再重启防火墙。
查看端口状态,
$/etc/init.d/iptablesstatus#查看端口状态可以看到端口num编号,然后按编号删除:
iptables-DINPUT24常用命令$/etc/init.d/iptablesstart#开启防火墙,或者serviceiptablesstart,以下同理$/etc/init.d/iptablesstop#停止防火墙$/etc/init.d/iptablesrestart#重启防火墙$/etc/init.d/iptablesstatus#查看端口状态$/etc/init.d/iptablessave#保存配置$chkconfigiptablesoff#永久关闭防火墙$chkconfigiptableson#永久关闭后启用CentOS配置防火墙操作实例(启、停、开、闭端口):
注:防火墙的基本操作命令:
查询防火墙状态:
[root@localhost~]#serviceiptablesstatus<回车>
停止防火墙:
[root@localhost~]#serviceiptablesstop<回车>
启动防火墙:
[root@localhost~]#serviceiptablesstart<回车>
重启防火墙:
[root@localhost~]#serviceiptablesrestart<回车>
永久关闭防火墙:
[root@localhost~]#chkconfigiptablesoff<回车>
永久关闭后启用:
[root@localhost~]#chkconfigiptableson<回车>
1、查看防火墙状态
2、编辑/etc/sysconfig/iptables文件。我们实例中要打开8080端口和9990端口
用编辑器打开/etc/sysconfig/iptables
3、依葫芦画瓢,我们添加8080端口和9990端口
4、保存/etc/sysconfig/iptables文件,并在终端执行
5、从新查看防火墙状态
6、这时候,服务器的8080和9990端口就可以对外提供服务了。