如何在Ubuntu中关闭开放端口?


31

我需要一个命令来列出PC中所有打开的端口,并需要另一个命令来关闭端口。

有什么建议么?

我需要关闭一些应用程序的端口。

Answers:


34

netstat 可用于查看端口状态。

sudo netstat -lnp

要列出所有 istening端口ñ umbersp rocess负责的每一个。终止或终止进程以关闭端口。(killpkill...)

没有进程终止,这是不可能的!。请参阅从命令行手动关闭端口。您可能会寻找防火墙解决方案的其他方式(将端口与网络隔离)


我需要关闭端口,但又不终止应用程序
2014年

可以将端口关闭为外部端口。
sergzach


12

要在ubuntu中关闭开放端口,可以使用以下命令

sudo kill $(sudo lsof -t -i:3000)

3000可以代替您指定端口号

lsof 该命令将提供有关由进程打开的文件的信息

-t:此标志指定lsof应该仅使用进程标识符而不使用标头来产生简洁的输出-例如,以便可以将输出通过管道传递给kill(1)。此选项选择-w选项。

-i:此标志选择文件列表,其Internet地址与i中指定的地址相匹配。如果未指定地址,则此选项选择所有Internet和x.25(HP-UX)网络文件的列表。


8

您可以使用iptables在网络级别上阻止端口,而不必关闭应用程序。该端口仍将显示为打开状态,但将不可访问。

或者,这取决于应用程序,有些允许禁用某些端口(认为dovecot和pop3或imap port),有些则不允许。还可以将某些应用程序配置为仅侦听localhost或特定地址。


6

您可以使用netstat -nalplsof -i:port工具来识别开放端口背后的进程/二进制文件。

如果要关闭端口,则必须终止进程或停止相关服务。如果只想为本地机器运行服务,则可以将相应的服务配置为在localhost / 127.0.0.1上侦听而不是在所有可用(0.0.0.0)ips上侦听。


1

如果由于运行服务(例如用于ftp服务的vsftpd)而打开了端口,则可以停止然后禁用该服务,以便与该服务相关的可执行文件也将被杀死。在debian基本系统中,您可以运行以下命令来破坏服务:

service SERVICENAME stop
systemctl disable SERVICENAME

祝好运


谢谢。我检查了服务名称,sudo netstat -lnp并运行了建议的命令以停止端口22 :)
Rishabh Agrahari

1

要显示所有打开的端口的列表:

netstat -lnp

要关闭开放端口:

fuser -k port_no/tcp

例:

fuser -k 8080/tcp

两者都可以sudo根据需要使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.