pts*_*pts 1865
在macOS High Sierra上,使用以下命令:
lsof -nP -i4TCP:$PORT | grep LISTEN
Run Code Online (Sandbox Code Playgroud)
在旧版本上,使用以下形式之一:
lsof -nP -iTCP:$PORT | grep LISTEN
lsof -nP -i:$PORT | grep LISTEN
Run Code Online (Sandbox Code Playgroud)
$PORT用端口号或逗号分隔的端口号列表替换.
sudo如果您需要有关#1024以下端口的信息,请前置(后跟空格).
该-n标志用于显示IP地址而不是主机名.这使得命令执行速度更快,因为获取主机名的DNS查找可能很慢(许多主机需要几秒或一分钟).
该-P标志是用于显示原始的端口号,而不是解决的名字,如http,ftp或像更深奥的服务名称dpserve,socalia.
有关更多选项,请参阅注释.
Mic*_*ski 547
从Snow Leopard(10.6)到Mojave(10.14),每个版本的macOS都支持这个:
sudo lsof -iTCP -sTCP:LISTEN -n -P
就个人而言,我最终在我的这个简单的功能~/.bash_profile:
listening() {
if [ $# -eq 0 ]; then
sudo lsof -iTCP -sTCP:LISTEN -n -P
elif [ $# -eq 1 ]; then
sudo lsof -iTCP -sTCP:LISTEN -n -P | grep -i --color $1
else
echo "Usage: listening [pattern]"
fi
}
Run Code Online (Sandbox Code Playgroud)
然后listening命令会给你一个监听某个端口的进程列表,并listening smth为某些模式greps这个.
有了这个,很容易询问特定的过程,例如listening dropbox,或端口,例如listening 22.
lsof命令有一些专门的选项来询问端口,协议,进程等,但我个人发现上面的功能更方便,因为我不需要记住所有这些低级选项.lsof是一个非常强大的工具,但不幸的是使用起来不那么舒服.
Rog*_*182 430
您还可以使用:
sudo lsof -i -n -P | grep TCP
Run Code Online (Sandbox Code Playgroud)
这适用于小牛队.
arc*_*don 280
2016年1月更新
真的很惊讶没有人建议:
lsof -i :PORT_NUMBER
Run Code Online (Sandbox Code Playgroud)
获得所需的基本信息.例如,检查端口1337:
lsof -i :1337
Run Code Online (Sandbox Code Playgroud)
其他变化,取决于具体情况:
sudo lsof -i :1337
lsof -i tcp:1337
Run Code Online (Sandbox Code Playgroud)
您可以轻松地在此基础上提取PID本身.例如:
lsof -t -i :1337
Run Code Online (Sandbox Code Playgroud)
这也与此命令等效(结果):
lsof -i :1337 | awk '{ print $2; }' | head -n 2 | grep -v PID
Run Code Online (Sandbox Code Playgroud)
快速插图:
为了完整性,因为经常一起使用:
杀死PID:
kill -9 <PID>
# kill -9 60401
Run Code Online (Sandbox Code Playgroud)
或作为一个班轮:
kill -9 $(lsof -t -i :1337)
Run Code Online (Sandbox Code Playgroud)
小智 79
这适用于Mavericks(OSX 10.9.2).
sudo lsof -nP -iTCP:$PORT -sTCP:LISTEN
Run Code Online (Sandbox Code Playgroud)
小智 42
在OS X上,您可以使用netstat的-v选项来提供关联的pid.
类型:
netstat -anv | grep [.]PORT
Run Code Online (Sandbox Code Playgroud)
输出将如下所示:
tcp46 0 0 *.8080 *.* LISTEN 131072 131072 3105 0
Run Code Online (Sandbox Code Playgroud)
PID是最后一列之前的数字,对于这种情况是3105
PYK*_*PYK 37
对于LISTEN,ESTABLISHED和CLOSED端口
sudo lsof -n -i -P | grep TCP
Run Code Online (Sandbox Code Playgroud)
仅适用于LISTEN端口
sudo lsof -n -i -P | grep LISTEN
Run Code Online (Sandbox Code Playgroud)
对于特定的LISTEN端口,例如:端口80
sudo lsof -n -i -P | grep ':80 (LISTEN)'
Run Code Online (Sandbox Code Playgroud)
或者,如果您只想要一个紧凑的摘要[没有描述服务/应用程序],请访问NETSTAT.这里好的一面是,不需要sudo
netstat -a -n | grep 'LISTEN '
Run Code Online (Sandbox Code Playgroud)
解释使用的项目:
-n禁止主机名
-i用于IPv4和IPv6协议
-P省略端口名称
-a [over netstat]用于所有套接字
-n [over netstat]不解析名称,将网络地址显示为数字
在High Sierra 10.13.3和Mojave 10.14.3上进行了测试
最后一个语法netstat也适用于linux
lsof的,你可以尝试基于Debian的上方:apt-get的安装lsof的
joh*_*all 32
在macOS上,这是一个简单的方法来获取正在使用netstat监听特定端口的进程ID .此示例查找在端口80上提供内容的进程:
netstat -anv | egrep -w [.]80.*LISTEN
Run Code Online (Sandbox Code Playgroud)
tcp4 0 0 *.80 *.* LISTEN 131072 131072 715 0
Run Code Online (Sandbox Code Playgroud)
最后一列的第二个是PID.在上面,它是715.
-a - 显示所有端口,包括服务器使用的端口
-n - 显示数字,不要查找名称.这使得该命令很多快
-v - 详细输出,以获取进程ID
-w - 搜索单词.否则命令将返回端口8000和8001的信息,而不仅仅是"80"
LISTEN - 仅为LISTEN模式下的端口提供信息,即服务器
art*_*gor 18
在最新的macOS版本上,您可以使用此命令:
lsof -nP -i4TCP:$PORT | grep LISTEN
Run Code Online (Sandbox Code Playgroud)
如果你发现它很难记住,那么也许你应该创建一个bash函数并用更友好的名字输出它
vi ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
然后将以下行添加到该文件并保存.
function listening_on() {
lsof -nP -i4TCP:"$1" | grep LISTEN
}
Run Code Online (Sandbox Code Playgroud)
现在,您可以键入listening_on 80终端并查看正在侦听端口的进程80.
ran*_*913 14
我想分享这个命令,它运行良好并打印标题,以便您知道哪一列是哪一列:
lsof -iTCP:8080 -sTCP:LISTEN -P -n
Run Code Online (Sandbox Code Playgroud)
小智 12
在Snow Leopard(OS X 10.6.8)上,运行'man lsof'会产生:
lsof -i 4 -a
Run Code Online (Sandbox Code Playgroud)
(实际手动输入是'lsof -i 4 -a -p 1234')
之前的答案对Snow Leopard没有用,但是我试图使用'netstat -nlp',直到我看到pts在答案中使用'lsof'.
edi*_*dib 11
我是一个Linux人.在Linux中,使用netstat -ltpn这些字母或任何组合都非常容易.但在Mac OS X中netstat -an | grep LISTEN是最人性化的.其他人非常难看,在排除故障时很难记住.
检查这个项目/工具:procs
在 MacO 上安装:brew install procs
这允许您控制显示的内容procs。
要查看 TCP/UDP 端口,请在安装该工具后添加以下内容~/.procs.toml。
[[columns]]
kind = "TcpPort"
style = "BrightYellow|Yellow"
numeric_search = true
nonnumeric_search = false
align = "Left"
[[columns]]
kind = "UdpPort"
style = "BrightGreen|Green"
numeric_search = false
nonnumeric_search = true
align = "Left"
Run Code Online (Sandbox Code Playgroud)
这是一个示例输出:
lsof -n -i | awk '{ print $1,$9; }' | sort -u
Run Code Online (Sandbox Code Playgroud)
这表明谁在做什么.删除-n以查看主机名(稍微慢一些).
| 归档时间: |
|
| 查看次数: |
882828 次 |
| 最近记录: |