查看服务器连接记录是保障系统安全、排查故障以及进行合规审计的基础操作,核心在于通过系统自带的日志文件或专用命令,提取出包括源IP地址、登录时间、用户操作及认证状态等关键信息,对于Linux系统,主要依赖/var/log目录下的日志文件及w、last等命令;对于Windows系统,则主要通过事件查看器或PowerShell读取安全日志,掌握这些方法,不仅能实时监控当前会话,还能回溯历史行为,快速定位异常访问。

Linux服务器连接记录查询方案
Linux服务器作为互联网基础设施的主流,其连接记录的查询手段最为丰富且专业,管理员可以通过命令行工具实时查看当前连接,也可以深入分析系统日志获取历史数据。
实时查看当前连接用户
在运维过程中,首先需要了解的是“此刻谁在服务器上”,使用w命令命令可以提供最详细的实时信息,它不仅显示当前登录的用户名、登录终端(TTY),还能显示用户来自的远程IP地址、登录时间以及当前正在执行的进程,相比之下,who命令更为简洁,仅列出用户、终端、时间和IP,适合快速浏览,若仅需查看登录用户数量,使用who -q即可,这些命令的数据源实际上是/var/run/utmp文件,系统动态更新该文件以反映当前状态。
查询历史登录记录
要追溯过去的连接情况,last命令是首选工具,它读取/var/log/wtmp二进制文件,列出系统自创建以来的所有成功登录记录,输出内容包含用户名、终端位置、源IP地址、登录开始时间及退出时间,通过last -n 10可以限制显示最近10条记录,避免信息过载。last reboot专门用于查看系统的重启历史,有助于判断连接中断是否由宕机引起。
监控失败的登录尝试
安全审计中,失败的连接记录往往比成功的更重要,因为它们可能预示着暴力破解攻击。lastb命令专门用于读取/var/log/btmp文件,展示所有登录失败的用户、IP及尝试时间,如果发现大量来自同一IP的失败记录,说明该IP正在尝试入侵,应立即结合防火墙规则(如iptables或firewalld)进行封禁。
深入分析系统认证日志
除了上述专用命令,直接分析系统核心日志能获取更底层的细节,在基于Debian/Ubuntu的系统中,/var/log/auth.log记录了所有的认证事件;在基于CentOS/RHEL的系统中,对应文件为/var/log/secure,使用grep命令筛选关键字是高效手段,执行grep "Accepted" /var/log/auth.log可以提取所有成功的SSH登录,包含具体的SSH协议版本和加密指纹;而grep "Failed password" /var/log/auth.log则能列出所有密码错误的尝试,对于高并发服务器,建议结合awk对日志进行格式化处理,提取出独立的IP列表进行统计分析。

Windows服务器连接记录查询方案
Windows服务器提供了图形化的界面和强大的命令行工具,查询连接记录主要依赖于“事件查看器”和PowerShell脚本,这对于排查远程桌面(RDP)连接和其他网络登录至关重要。
使用事件查看器(Event Viewer)
事件查看器是Windows日志的中央控制台,通过运行eventvwr.msc打开,导航至Windows日志 -> 安全,这里记录了所有与安全相关的事件,对于远程桌面连接,重点关注事件ID 4624(登录成功)和事件ID 4625(登录失败),在详细信息中,可以查看到“账户名称”、“登录类型”(2代表交互式登录,10代表远程桌面RDP)以及“源网络地址”(即客户端IP),通过右侧的“筛选当前日志”功能,输入事件ID,可以快速从海量日志中定位到连接记录,这是最直观且符合常规操作习惯的方法。
利用PowerShell进行自动化查询
对于需要批量处理或定期审计的场景,图形界面效率较低,使用PowerShell可以精准提取所需信息,使用Get-WinEvent命令,配合FilterHashtable参数,可以快速查询最近24小时内的登录事件,通过管道符结合Select-Object,可以只输出时间、用户名和IP地址,极大提升了日志的可读性,专业的运维人员通常会编写脚本,将提取到的结果导出为CSV文件,以便生成报表或进行长期趋势分析。
深度分析与日志管理策略
仅仅知道如何查询是不够的,专业的服务器管理还需要建立完善的日志维护机制,日志文件如果不加管理,可能会无限增长占满磁盘空间,或者因为轮转过快导致关键证据丢失。
配置日志轮转(Log Rotation)
在Linux中,logrotate工具是管理日志增长的标准方案,通过配置/etc/logrotate.conf或自定义配置文件,可以设定日志文件的保留周期(如保留30天)、压缩方式以及轮转频率,对于/var/log/wtmp和/var/log/btmp,建议设置较长的保留期,因为它们是追溯历史攻击的重要证据,在Windows中,可以通过组策略(GPO)配置事件日志的最大大小和覆盖策略,建议设置为“不覆盖事件(按需手动清除)”或“按天数覆盖”,以确保在合规周期内日志可用。

集中式日志管理
对于拥有多台服务器的大型架构,单机登录查看日志效率极低,构建基于ELK Stack(Elasticsearch, Logstash, Kibana)或Splunk的集中式日志平台是最佳实践,通过在每台服务器上部署Filebeat或Logstash代理,将认证日志实时传输至中心节点,这样,管理员可以在一个界面中通过搜索特定IP或用户名,获取该实体在所有服务器上的全链路活动轨迹,这是实现企业级安全运营的必经之路。
自动化告警
查询连接记录的最终目的是为了响应安全事件,结合监控工具(如Prometheus、Zabbix)或脚本,对lastb或事件ID 4625进行实时监控,一旦单位时间内失败次数超过阈值(如5次/分钟),立即触发告警邮件或短信,并自动调用API在防火墙层面阻断源IP,这种从“被动查询”到“主动防御”的转变,体现了服务器安全管理的专业深度。
相关问答
Q1:如何快速找出服务器上尝试暴力破解SSH密码的恶意IP地址?
A1: 在Linux系统中,可以使用lastb命令查看所有失败的登录尝试,并结合awk和sort命令进行统计,例如执行:lastb | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 10,这条命令会提取lastb输出中的IP列,统计每个IP出现的失败次数,并按降序排列显示前10名,次数异常多的IP即为正在进行暴力破解的恶意源。
Q2:服务器日志文件过大导致磁盘空间不足,应该如何紧急处理?
A2: 首先不要直接删除日志文件(如rm -f /var/log/auth.log),因为正在运行的进程可能仍持有该文件的句柄,导致磁盘空间未释放,正确的做法是清空文件内容,使用命令> /var/log/auth.log或echo > /var/log/auth.log,对于Windows事件日志,可以在事件查看器中右键点击日志分类,选择“清除日志”,事后务必检查日志轮转配置,调整日志保留策略以防止再次发生。
能帮助您高效地管理和监控服务器连接记录,如果您在具体操作中遇到命令参数不匹配或环境差异的问题,欢迎在评论区留言,我们可以进一步探讨针对特定操作系统版本的解决方案。

















