如何手动关闭端口

如何手动关闭端口

在 OSX 中,如果我输入 netstat,我可以看到某些已建立连接的东西。我不想更改任何设置来关闭它们,我只想能够关闭我在终端中选择的任何端口。你怎么做呢?

答案1

您不能像这样关闭打开的套接字。理想情况下,您只需要终止建立连接的进程即可。

检查您的连接lsofnetstat不会显示进程),使用您想要的连接状态过滤输出:

lsof -i
lsof -i | grep LISTEN
lsof -i | grep ESTABLISHED

或者,获取端口,例如17500

lsof -i:17500

然后,只需终止该进程即可。例如:

$ lsof -i | grep "Skype"
Skype     438 werner    9u  IPv4 0xffffff801dd0c640      0t0  UDP localhost:52218
Skype     438 werner   42u  IPv4 0xffffff80231a7a08      0t0  TCP *:29429 (LISTEN)
Skype     438 werner   43u  IPv4 0xffffff8022e18a40      0t0  UDP *:29429

终止 Skype:

killall Skype

但请注意,这不会阻止建立连接 – 您必须在防火墙偏好设置中指定这一点。

答案2

也可以使用使用fusernetstat命令。

fuser语法是

fuser -k -n protocol portno

例子:

$ fuser -k -n udp 7777

7777/udp:            11774

数字 11774 是 pid。

netstat例子:

$ sudo netstat -ap | grep :9050

tcp        0      0 localhost:9050          *:*       LISTEN      1613/tor

数字 1613 是 pid,“tor”是进程名称。

获得 pid 后,使用 kill 或 killall 命令结束它

杀死进程

或者

killall -9 命令名称

相关内容