释放TCP / IP端口?

时间:2009-04-15 07:08:37

标签: linux networking tcp port

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

11 个答案:

答案 0 :(得分:190)

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

# fuser 80/tcp

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

答案 1 :(得分:63)

要在Linux下使用命令

中杀死特定端口
sudo fuser -k Port_Number/tcp

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

答案 2 :(得分:12)

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

sudo tcpkill -9 port PORT_NUMBER

答案 3 :(得分:9)

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

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

答案 4 :(得分:7)

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

答案 5 :(得分:7)

在终端类型中:

netstat -anp|grep "port_number"

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

然后执行:

kill -9 PID. Worked on Centos5

对于MAC:

lsof -n -i :'port-number' | grep LISTEN

示例回复:

java   4744 (PID)  test  364u  IP0 asdasdasda   0t0  TCP *:port-number (LISTEN)

然后执行:

kill -9 PID 

使用Macbook

答案 6 :(得分:2)

如果你真的想立即杀死一个进程,你发送一个KILL信号而不是一个TERM信号(后者是一个停止的请求,第一个将立即生效而不进行任何清理)。这很容易做到:

kill -KILL <pid>

请注意,根据您正在停止的程序,执行此操作时其状态可能会严重损坏。您通常只想在正常终止不起作用时发送KILL信号。我想知道你试图解决的根本问题是什么,以及杀人是否是正确的解决方案。

答案 7 :(得分:0)

我认为唯一的办法就是停止打开港口的过程。

答案 8 :(得分:0)

要检查所有端口

netstat -lnp

要关闭打开的端口:

fuser -k port_no / tcp

示例:

定影器-k 8080 / tcp 两者都可以根据需要使用sudo。

答案 9 :(得分:-5)

sudo killall -9“流程名称”

答案 10 :(得分:-13)

关闭计算机总是会让我失去这个过程。