Linux如何查看端口状态,启用和关闭

时间:2022-04-08 15:17:47

转:https://blog.csdn.net/qiaqia609/article/details/79697111

系统服务中,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。所以,不要纯粹的认为你要去关闭掉某个端口了。但是,禁用某个端口是可行的。因为,Linux里面端口的活动与进程是紧密相连的,如果想要关闭某个端口,那么只要kill掉与它对应的进程就可以了。

1.     可以通过"netstat -anp" 来查看哪些端口被打开。

说明:

# -a显示所有活动的TCP连接,以及正在监听的TCP和UDP端口

# -n以数字形式表示地址和端口号,不试图去解析其名称(number),参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049,ftp->21

# -p列出与端口监听或连接相关的进程(有个地方需要注意,下面会提到)(pid)

注意:

“-p”选项存在权限问题,如果在普通用户登录的shell里面执行netstat命令,那么只能列出拥有该普通用户权限的相关进程,如果想要看到所有的端口情况,最好还是切到root用户进行操作。

 

然后可以通过"lsof-i:$PORT"查看应用该端口的程序($PORT指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务(可通过"chkconfig"查看系统服务的开启状态)。

 

2.     (注:有些端口通过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 | grep ssh"

有显示: tcp 0 127.0.0.1:2121 0.0.0.0:*LISTEN 7546/ssh

则: "kill -9 7546"退出进程ssh.

 

例如要关闭22号端口:

$ netstat -anp | grep :22

tcp 0  0 0.0.0.0:22   0.0.0.0:*  LISTEN  988/sshd

如此,知道了22号端口对应的进程ID 988,只要kill掉该进程即可关闭该端口:

$ kill 988

 



netstat命令各个参数说明如下:

  –a :本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接,断开连接(CLOSE_WAIT)或者处于联机等待状态的(TIME_WAIT)等

  -t : 指明显示TCP端口

  -u : 指明显示UDP端口

  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

  -n : 不进行DNS轮询,显示IP(可以加速操作)

即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··

netstat -ntlp   //查看当前所有tcp端口·

netstat -ntulp |grep 80   //查看所有80端口使用情况·

netstat -an | grep 3306   //查看所有3306端口使用情况·

netstat –tuln ——列出所有inet地址类的端口监听状态

查看一台服务器上面哪些服务及端口

netstat  -lanp

查看一个服务有几个端口。比如要查看mysqld

ps -ef |grep mysqld

查看某一端口的连接数量,比如3306端口

netstat -pnt |grep :3306 |wc

查看某一端口的连接客户端IP 比如3306端口

netstat -anp |grep 3306

netstat -an 查看网络端口 

lsof -i :port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。 

nmap 端口扫描
netstat -nupl  (UDP类型的端口)
netstat -ntpl  (TCP类型的端口)
netstat -anp 显示系统端口使用情况


/etc/init.d/vsftp start


      是用来启动ftp端口~!