当前位置: 首页>>技术教程>>正文


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

问题描述

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

有什么建议么?

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

最佳办法

netstat 可用于查看端口统计信息。

sudo netstat -lnp

列出所有侦听端口号以及每个负责的进程。终止或终止进程以关闭端口。 ( kill , pkill …)

没有进程终止,这是不可能的! .见 Manually closing a port from command line 。您可能会寻找防火墙解决方案的其他方式(如将该端口与网络隔离)

次佳办法

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

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

代替 3000 你可以指定你的端口号

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

-t :此标志指定 lsof 应仅生成带有进程标识符且没有标头的简洁输出 – 例如,以便可以将输出通过管道传输到 kill(1)。此选项选择 -w 选项。

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

第三种办法

sudo ufw allow 22

sudo ufw deny 22

第四种办法

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

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

第五种办法

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

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

第六种办法

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

netstat -lnp

关闭一个打开的端口:

fuser -k port_no/tcp

例子:

fuser -k 8080/tcp

如果需要,您可以在两者中使用 sudo

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12780.html,未经允许,请勿转载。