以前(按:Ubuntu Server 安装提要)曾经提到过初装系统之后需要做的事,其中之一是添加 ports 命令。方法是在 .bashrc 中增加一段 bash function 定义,目的在于提供一条简便指令以便查看当前已经打开的端口列表。
时过境迁,现在这条命令不但适合于 bash,也已经更新为适合 zsh 环境,不但在服务器上是条好指令,在工作用机上面照样有用得很。
下面就是目前我所用的 ports
,新鲜的版本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ports() {
local SUDO=${SUDO:-}
if [[ $# -eq 0 ]]; then
eval $SUDO lsof -Pni | grep -E "LISTEN|UDP"
else
local p=''
local i
for i in $*; do
if [[ "$i" -eq "$i" ]]; then
p="$p -i :$i"
else
p="$p -i $i"
fi
done
eval $SUDO lsof -Pn $p
fi
}
用法基本相同:
1
2
3
4
5
6
7
8
$ ports
...
$ ports 3306
...
$ ports 3306 6379
...
$ SUDO=sudo ports
...
要不要 sudo 取决于你在什么环境中使用 ports。对于 Linux 服务器来说,可以预设 export SUDO=sudo
且使能免密sudo 功能来使得 ports 指令具有特权。对于 macOS 工作机的话,无需额外操作,因为你的当前账户身份具有足够的特权来列举端口。
在 macOS 中,可以额外附加一条:
1
2
3
ports_simple(){
ports|grep -vE 'grep|v2ray|docke|V2Ray|MEGA|Google|iSta|Dropbox|rapportd|sharingd|PDF|WeChat|clion|WiFi|loginwind|identitys|assistant'
}
ports_simple 可以滤除你不太想看到的一些总是会有的端口,削减产出的端口列表,以利于你寻找问题。
🔚
留下评论