释放TCP/IP端口?

132 linux port networking tcp

netstat -tulnap 向我展示了正在使用的端口.如何在Linux中释放端口?

uzi*_*uzi 202

正如其他人所说,你必须杀死正在侦听该端口的所有进程.最简单的方法是使用fuser(1)命令.例如,要查看在端口80上侦听http请求的所有进程(以root身份运行或使用sudo):

# fuser 80/tcp
Run Code Online (Sandbox Code Playgroud)

如果你想杀死他们,那么只需添加-k选项.

  • 要在 Debian 上安装 fusionr: sudo apt-get install psmisc (http://bitflop.com/document/107) (3认同)
  • `kill -9 $(fuser 80/tcp 2>/dev/null)` (3认同)
  • 我发现向端口发送请求也会清理它(虽然我不是 linux 专家) (2认同)

Ani*_*hal 67

要在Linux下使用以下命令杀死特定端口

sudo fuser -k Port_Number/tcp
Run Code Online (Sandbox Code Playgroud)

将Port_Number替换为您的被占用端口.

  • 实际上,这会杀死打开端口的进程,而不是端口本身。 (3认同)

小智 17

检查所有端口:

netstat -lnp
Run Code Online (Sandbox Code Playgroud)

关闭一个开放的端口:

fuser -k port_no/tcp
Run Code Online (Sandbox Code Playgroud)

例子:

fuser -k 8080/tcp
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,您都可以sudo根据需要使用该命令。


Ale*_*exT 13

您可以使用tcpkill(dsniff包的一部分)来终止所需端口上的连接:

sudo tcpkill -9 port PORT_NUMBER
Run Code Online (Sandbox Code Playgroud)

  • 这只是挂起`$ sudo tcpkill -9 port 5432 tcpkill:监听lxcbr0 [端口5432]` (9认同)

use*_*505 11

在终端类型:

netstat -anp|grep "port_number"

它将显示端口详细信息.转到最后一栏.它将采用这种格式.例如: - PID/java

然后执行:

kill -9 PID. Worked on Centos5

  • ...如果您无权查看进程,就会发生这种情况...尝试 `sudo netstat` 来实际查看 PID :) (3认同)

pax*_*blo 9

"netstat --programs"假设您是root用户,该命令将为您提供进程信息.然后你将不得不杀死"冒犯"的过程,这可能会再次启动只是为了惹恼你:-).

你在这里想要实现的目标是什么?解决方案将根据持有这些端口的流程而有所不同.


Gle*_*leb 7

终止正在侦听相关端口的进程.我相信netstat会显示您的进程ID.

  • netstat -anp | grep <port>最后一列有进程 (3认同)