我从java类中打开了端口#5955,以便从客户端进行通信。我怎么关闭这个端口后,我做了?还有哪个命令可以显示我如果端口打开或关闭?
当前回答
你也可以使用第一个命令来杀死一个拥有特定端口的进程:
sudo netstat -ap | grep :<port_number>
例如,这个进程持有8000 TCP端口,然后运行以下命令:
sudo netstat -ap | grep :8000
将输出与进程持有端口8000对应的行,例如:
tcp 0 0 *:8000 *:* LISTEN 4683/procHoldingPort
在本例中,procHoldingPort是打开端口的进程的名称,4683是它的pid, 8000(注意它是TCP)是它持有的端口号(您希望关闭该端口号)。
然后按照上面的例子杀死进程:
kill 4683
正如其他人在这里提到的,如果这不起作用(你可以尝试使用-9作为参数的kill):
kill -9 4683
同样,通常情况下,如果可以,最好避免发送SIGKILL(-9)。
其他回答
你也可以使用第一个命令来杀死一个拥有特定端口的进程:
sudo netstat -ap | grep :<port_number>
例如,这个进程持有8000 TCP端口,然后运行以下命令:
sudo netstat -ap | grep :8000
将输出与进程持有端口8000对应的行,例如:
tcp 0 0 *:8000 *:* LISTEN 4683/procHoldingPort
在本例中,procHoldingPort是打开端口的进程的名称,4683是它的pid, 8000(注意它是TCP)是它持有的端口号(您希望关闭该端口号)。
然后按照上面的例子杀死进程:
kill 4683
正如其他人在这里提到的,如果这不起作用(你可以尝试使用-9作为参数的kill):
kill -9 4683
同样,通常情况下,如果可以,最好避免发送SIGKILL(-9)。
要找到流程,请尝试:
sudo lsof -i :portNumber
使用PID杀死当前正在使用该端口的进程
kill PID
然后检查端口是否关闭。如果没有,试试:
kill -9 PID
如果前面的方法不管用,我只会做下面的
sudo kill -9 PID
安全起见。同样,这取决于您如何打开端口,这可能无关紧要。
非常简单的找到端口5900:
sudo lsof -i :5900
然后考虑59553作为PID
sudo kill 59553
无论您如何打开端口,您都可以以相同的方式关闭它。例如,如果您创建了一个套接字,将其绑定到端口0.0.0.0:5955,并调用listen,关闭该套接字。
您也可以直接终止打开端口的进程。
如果你想知道哪个进程打开了一个端口,试试这个:
lsof -i :5955
如果你想知道端口是否打开,你可以执行同样的lsof命令(如果任何进程打开了端口,它就是打开的;否则,它不是),或者你可以尝试连接到它,例如:
nc localhost 5955
如果它立即返回而没有输出,则端口没有打开。
值得一提的是,从技术上讲,它不是一个开放的端口,而是一个主机:端口组合。例如,如果您以10.0.1.2的身份插入LAN,则可以将套接字绑定到127.0.0.1:5955或10.0.1.2:5955,其中任何一个都不会影响另一个,或者可以绑定到0.0.0.0:5955以同时处理两个套接字。您可以使用ifconfig命令查看您计算机的所有IPv4和IPv6地址。
EDIT
在2022年9月,这帮助了我的MacOS Monterey M1 Pro芯片:
sudo lsof -t -i tcp:yourPortNumber | sudo xargs kill
在2018年,我使用MacOS HighSierra的方法是这样的:
sudo lsof -nPi:你的端口号
然后:
sudo kill -9你的id
推荐文章
- (Mac) -bash: __git_ps1:命令未找到
- 如何创建Bash别名?
- Java/JDK的苹果硅芯片
- Virtualenvs中的破引用
- 如何使用xargs复制名称中有空格和引号的文件?
- 强制DOM重绘/刷新Chrome/Mac
- RE错误:在Mac OS X上的非法字节序列
- OS X上的“date”命令没有ISO 8601的“-I”选项?
- MobileDevice。pkg不受信任,OS X更新后无法打开Xcode
- 在tmux模式中丢失vim配色方案
- 如何在macOS中安装wget ?
- Brew安装docker不包括docker引擎?
- 在Swift中获取两个日期(月/天/小时/分/秒)之间的差异
- 在OS X操作系统下设置MySQL root用户密码
- 运行pod设置给我“坏的解释器:没有这样的文件或目录”错误