有没有办法识别 Linux 服务器上正在运行哪些“客户端/服务器”进程/应用程序,以了解服务器的角色是什么?
我确信它可能会因 Linux 的不同版本而有所不同,并且在某些版本上可能比其他版本更容易。
作为一名管理员,我最近在一次收购中继承了几台 Linux 服务器。我知道它们正在运行 SAMBA,但除此之外,我不知道从哪里可以找到它们可能为各种客户端提供哪些类型的软件。在 Windows 世界中,我可以通过正在运行的服务、安装的软件、开放的端口等来判断。在 Linux 世界中,有没有一种不错的方法可以做类似的事情,帮助像我这样的人从客户端/服务器角色的角度确定所有服务器的作用?
答案1
当然,有一些很好的开始方法。
一种方法是检查您提到的正在监听和打开的端口。为此,我建议采取以下一项或多项措施:
lsof -i
netstat -lnp
nmap localhost
所有这些都提供了大致相同的信息。
您还可以查阅本地防火墙配置以获取线索。为此,请查看:
iptables -L -n -v
您还可以检查谁登录了系统并与这些用户交谈。为此,请检查:
last
who
w
finger
您可以查询本地包管理系统以确定安装了哪些包。例如,在 RedHat 风格的 RPM 系统上,您可以运行:
rpm -qa --last
我建议查阅任何现有文档。如果幸运的话,前任管理员已经整理了一些内容。
答案2
在 Windows 世界中,我可以通过正在运行的服务来判断,
在 Linux 中,您也可以通过执行来执行此操作ps -ef | less
。
安装的软件,
取决于您的发行版:可以检查基于 Red Hat 的版本rpm -qa | less
或dpkg -l | less
基于 Debian 的版本。
开放端口可以列出如下:
# netstat --protocol=ip -nlp