我正在运行一个无头 Debian 服务器作为媒体中心,其中运行着两个服务:SSH 和 Jellyfin。
今天早上我决定进行 nmap 扫描,结果显示端口 2015 已打开,这显然是服务“cypress”。我不知道这项服务是什么,而且在搜索引擎上几乎没有找到有关它的任何信息。
这是我应该担心的事情吗?如果我不能准确地指出这是什么,我将清除服务器并进行全新安装。
谢谢。
Nmap扫描日志:
root@debian:# nmap -sT -O -p 1-10000 localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2020-05-04 04:07 AEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000077s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 9997 closed ports
PORT STATE SERVICE
2015/tcp open cypress
5000/tcp open upnp
8096/tcp open unknown
答案1
服务名称是无意义的;分配是为了减少服务之间的冲突,但实际上并没有以任何方式强制执行。即使是合法服务也常常懒得获取自己的端口分配,只是随便选一个方便的端口——看看有多少杂项默认为 :1234 或 :8000 或 :9999——如果你担心它可能是一个非法服务,它肯定不会在意。
因此,为了找出哪个服务正在监听该端口,您需要查看监听端口的进程表在服务器内部。在 Linux 上,常用的工具是网络状态或者定影器或者党卫军– 请注意必须以 root 权限运行:
sudo netstat -l -p -n -t | grep 2015
sudo fuser -v -n tcp 2015
sudo ss -l -p -n "sport = 2015"
从那里您将知道相应守护进程的名称和 PID,并且/proc/<PID>/
是收集有关守护进程的可执行文件的位置、它属于哪个 cgroup(systemd 服务)等信息的好地方。
答案2
https://jellyfin.org/docs/general/networking/index.html
Jellyfin 管理网络设置没有具体提到端口 2015,但是:
“直播电视设备通常会为 HDHomeRun 设备使用随机 UDP 端口。服务器将在启动时选择一个未使用的端口来连接到这些调谐器设备。”
正如评论中所说,
# ss -punta
将列出服务器上打开的所有端口以及正在监听这些端口的进程。