netstat -tulnap 向我展示了正在使用的端口。如何在 Linux 中释放一个端口?
netstat -tulnap
终止正在侦听有问题端口的进程。我相信netstat会显示进程ID.
我认为唯一的办法是停止开放港口的进程。
"netstat --programs"命令将为您提供进程信息(假设您是root用户)。然后你将不得不杀死“冒犯”这个过程很可能会再次启动,只是为了惹恼你。
"netstat --programs"
root
根据您实际尝试实现,的内容,该问题的解决方案将因占用这些端口的进程而异。例如,您可能需要禁用服务(假设不需要它们)或将它们配置为使用不同的端口(如果您确实需要它们,但更需要该端口)。
正如其他人所说,您必须终止侦听该端口的所有进程。最简单的方法是使用fuser(1)命令。例如,要查看在端口80上侦听HTTP请求的所有进程(作为根或使用sudo运行):
fuser(1)
sudo
# fuser 80/tcp
如果你想杀死他们,那么只需添加-k选项。
-k
如果你真的想立即杀死一个进程,你可以向它发送一个kill信号而不是term信号(后者是停止请求,前者将立即生效,不需要任何清理)。这很容易做到:
kill -KILL <pid>
但是,请注意,根据您要停止的程序,在执行此操作时,其状态可能会严重损坏。通常,只有在正常终止不起作用时,才需要发送终止信号。我想知道你试图解决的根本问题是什么,杀人是否是正确的解决方案。
sudo killall-9 “进程名称”
对我来说,关闭计算机总是会终止进程。
您可以使用tcpkill(dsniff包的一部分)来断开您需要的端口上的连接:
tcpkill
dsniff
sudo tcpkill -9 port PORT_NUMBER
要在Linux中终止特定端口,请使用以下命令
sudo fuser -k Port_Number/tcp
用您占用的端口替换Port_Number。
Port_Number
在终端类型中:
netstat -anp|grep "port_number"
它将显示端口详细信息。转到最后一列。 它将采用这种格式。例如:-PID/Java
然后执行:
kill -9 PID
对于Mac:
lsof -n -i :'port-number' | grep LISTEN
响应示例:
java 4744 (PID) test 364u IP0 asdasdasda 0t0 TCP *:port-number (LISTEN)
在MacBook上工作
要检查所有端口:
netstat -lnp
要关闭打开的端口:
fuser -k port_no/tcp
示例:
fuser -k 8080/tcp
在这两种情况下,如果需要,您都可以使用sudo命令。