前提:首先你要知道端口不是独立存在的,它是依附于进程的。当一个进程被打开时,它对应的端口被打开,当进程被关闭时,端口被关闭。如果下一次再次打开一个进程,相应的端口将再次打开。不要简单的说关闭一个端口,而是可以禁用一个端口。
1.可以通过' ~$ netstat -anp '检查哪些端口是打开的。
(注意:添加参数'-n '会把应用程序变成端口显示,也就是数字格式的地址,比如NFS-2049,FTP-21,这样就可以打开两个终端,与程序的端口号一一对应)
2.然后就可以通过' ~$ lsof -i:$PORT' ($PORT指的是对应的端口号)查看这个端口应用到的程序。或者可以查看文件/etc/services,从中可以找到端口对应的服务。
(注意:有些端口无法通过netstat找到。更可靠的方法是' ~$ sudo nmap -sT -O localhost ')
3.要关闭端口,您可以:
1)通过iptables工具禁用该端口,例如:
~ $ sudo iptables-A INPUT-p TCP-dport $ PORT-j DROP '
~ $ sudo iptables-A OUTPUT-p TCP-dport $ PORT-j DROP '
2)或者关闭相应的应用程序,端口会自然关闭,比如:
~$ kill -9 PID' (PID:进程号)
比如通过' ~ $ netstat-ANP | grepsh '
是:TCP 0 127 . 0 . 0 . 1:2121 0 . 0 . 0:* listen 7546/SSH
然后:' ~$ kill -9 7546 '
(您可以通过' ~$ chkconfig ')检查系统服务的打开状态