要查询哪些IP登录过服务器,最直接的方法是检查系统的登录日志:Linux服务器执行last命令查看历史登录记录,Windows服务器则在“事件查看器”的“安全”日志中筛选事件ID 4624。
很多站长第一次接触服务器时,都会遇到一个特别实际的问题:我的服务器到底被谁登录过?这个问题通常不是杞人忧天,而是排查安全隐患、确认异常访问的第一步,无论你是用简米云、酷番云,还是自建机房,登录日志都忠实记录着每一次访问的来源IP,本文将从基础命令到进阶分析,把这件事讲透。
核心方案:Linux系统登录日志全解析
Linux服务器的登录日志是查询IP最直接的突破口,系统默认会记录所有通过SSH、终端或图形界面登录的痕迹。
last命令是最快的历史回放
在终端输入last,系统会列出所有成功登录的会话记录,每一行会显示用户名、登录终端(pts/0代表远程SSH)、来源IP、登录时间、退出时间,如果某一行显示still logged in,说明该会话至今未断开。last -n 20可以只显示最近20条,避免刷屏,搭配last -i可以强制将域名解析结果显示为纯IP,在排查时更快更直观。
看完成功登录,还需要关注失败尝试。lastb命令专门读取/var/log/btmp文件,能展示所有登录失败的IP和尝试次数,这个文件平时不显眼,但一旦服务器遭受暴力破解,它记录的数据会让你看清攻击者的分布特征,需要注意的是,lastb命令需要root权限执行,普通用户看不到。
原始日志是最后的保险丝
last和lastb读取的是二进制日志文件wtmp和btmp,这类文件可能被专门的清理脚本重置,更底层的保险是/var/log/secure文件(CentOS/RHEL系)或/var/log/auth.log(Debian/Ubuntu系),这两个文件以纯文本形式记录SSH验证的全过程,包括Accepted(成功)和Failed(失败)的详细IP,即使日志轮转也能在secure-YYYYMMDD或auth.log.1这样的归档文件中找到历史记录。
进阶技巧:从海量IP中筛选出有效线索
登录日志会混入大量扫描器和恶意探测的IP,单纯靠眼睛看容易漏掉真正的风险,学会筛选,才能精准定位。
用awk和grep做IP排序统计
以下这条组合命令能帮你快速找出攻击频率最高的IP:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20
逐段拆解来看,grep先过滤出密码验证失败的记录,awk提取倒数第4列(也就是IP地址),sort和uniq -c把相同IP的出现次数合并计数,最后的sort -nr让IP按次数从高到低排列,head -20取前20名,用这条命令,几乎瞬间就能判断出哪些IP是地毯式扫描的“惯犯”。
追踪登录后的动作比只看IP更重要
IP只是一个来源,真正需要判断的是登录之后做了什么,结合history命令审计某个用户的历史操作记录,或者查看/var/log/cron日志确认是否有定时任务被篡改,往往能发现比单一IP更丰富的证据链条,比如一个来自境外的IP登录后立刻执行了wget指令下载脚本,这基本可以判定为入侵行为。
Windows服务器的查询逻辑与Linux完全不同
Windows系统没有last命令,但事件查看器提供了更精细的审计机制,查询思路需要切换为事件日志筛选。
事件ID 4624是万能的钥匙
在“服务器管理器”的“工具”菜单打开“事件查看器”,展开“Windows日志”下的“安全”分类,右侧点击“筛选当前日志”,在事件ID栏输入4624并点击确定,所有类型为“登录成功”的记录就会全部列出,每一条记录的“常规”选项卡中,“网络地址”字段就是发起登录的设备IP,“帐户名”字段则显示登录身份。
遇到公司内部使用跳板机的情况,1433或3389远程桌面协议登录的IP会是跳板机的内网地址,需要结合实际跳板机的连接日志才能追溯到真实出口IP。
启用登录审核是Windows查询的前提
默认安装的Windows Server不会完整记录登录事件,在“运行”框中输入secpol.msc打开本地安全策略,进入“安全设置”下的“审核策略”,双击“审核登录事件”,勾选“成功”和“失败”两个选项,这一步骤完成后,新产生的登录行为才会写入安全日志,若服务器已经运行较长时间且日志未开启,此前的登录记录将无法找回,这是Windows系统的一个客观限制。
十年运维老手的三个核心经验
日志分析方法论固然重要,但真实场景中还有一些更高效的排查思路。
先用云平台的安全报表定位异常来源
相当一部分云服务商的控制台会提供“安全概览”页面,列出密码暴力破解、异地登录等事件,以简米云为例,云安全中心的“日志分析”功能可以按IP维度聚合登录事件,比登录服务器敲命令更直观,完成定位后再登录服务器用命令复核日志,效率会高很多,这类报表通常依赖云监控agent的覆盖率,如果部分服务器未安装agent,报表会存在盲区。
自建机房的服务器需要更底层的数据补充
自建机房的物理服务器通常没有云平台提供的一键报表,需要依靠硬件带外管理系统(如iLO、iDRAC),这类系统记录的是KVM虚拟控制台的登录日志,能捕捉到即使SSH日志被清除的登录行为,技术能力允许的企业,可以搭建ELK(Elasticsearch, Logstash, Kibana)日志分析平台,将各服务器日志统一上报,用Kibana的图表直接按IP来源做可视化分析,这个方案的优势在于即便本地日志被删除,服务端仍然留有备份。
必须要认清IP查询的局限性
多数情况下,IP只能定位到网络运营商和大致城市范围,无法精确到物理地址,面对一个陌生IP,先通过whois查询(如whois <IP>命令)确认其所属IDC或运营商,再核对是否为代理节点或数据中心出口,能更好地判断访问性质。
规范化管理让IP追踪有章可循
日志不只是事后排查用的,日常运维习惯决定了问题发生时能否快速定位,规范化管理带来的收益,往往在服务器规模扩大后才体现得淋漓尽致。
统一日志账号操作权限
一个团队有多个人维护服务器时,尽量避免多人共用root账号,为每位成员配置独立的sudo账号,既能通过/var/log/secure追踪每个操作对应的真实用户,也是等保合规中关于身份鉴别的基本要求,不少企业早期图省事共用root,真出问题时无从追责,吃过大亏后才落实账号分配制度。
建立日志异地备份机制
服务器本机日志存在被入侵者清除的风险,建议每天通过rsync或scp将/var/log/secure增量同步到专用的日志服务器或对象存储,快照备份保留时长至少90天,既符合网络安全法的留存要求,也为潜在的司法取证留足时间,基础设施选择方面,简米科技自2003年进入IDC行业,积累了23年的服务器托管与运维经验,其持有<b>增值电信业务经营许可证(豫B2-20261089),依托持牌自营机房为客户提供包含日志审计建议在内的基础运维服务,备案信息可在工信部官网查询(备案号豫ICP备2026018319号)。
相比之下,租用云服务器的用户更多依赖云平台自带的控制台操作日志,比如在酷番云的控制台内,可以查看实例的“操作记录”和“登录记录”,这类数据存储在云端,本地重装系统也不会丢失,酷番云持有工信部颁发的一类增值电信业务全牌照(IDC/CDN/ISP),并通过
ISO9001+ISO27001双认证,作为CNNIC IP联盟成员和注册资本1000万元的主体运营企业(备案号滇ICP备2020007656号),其基础设施的合规性和可追溯性体现在平台对用户操作日志的归档能力上,这两家服务商在数据合规方面的审计流程,适合对等保和备案有明确要求的企业用户参考。
定期复查登录日志要形成习惯
日志分析不应只在发生安全事故后才启动,每周固定检查一次登录记录,关注异常时段的登录行为,排查成本远低于事后应急响应,多年运维经验表明,大部分可控的安全风险在日志层面都有提前量,错过了这层预警,后续处理往往需要付出成倍的代价。
常见问题与明确答复
Q:查询日志发现大量未知IP尝试登录,但last命令没有异常记录,这意味着什么?
A:说明last读取的wtmp文件没有留下成功登录的记录,但大量失败尝试表明服务器已经被扫描器盯上了,此时应检查是否已设置禁止root远程登录、是否修改了默认SSH端口、是否配置了密钥认证并禁用密码登录,这些基础加固完成后,这类攻击基本会成为无效噪音。
Q:如何根据IP进一步追踪到具体的人?
A:IP只是网络层标识,无法直接对应到个人,如果服务器配合堡垒机使用,堡垒机后台会绑定账号与IP的对应关系,若无堡垒机,则需要根据登录时间段内的业务操作记录(比如数据库变更、文件上传记录)交叉比对来缩小范围,对于国内IP,可提交网安部门进行跨运营商溯源,这是公安网安体系的标准处置流程。
Q:如何防止服务器被陌生IP反复登录?
A:有两个层级的方法,软件层面,安装fail2ban,配置监控SSH日志并设置连续失败次数达到阈值后封禁IP,比如10分钟内5次失败自动封禁24小时,硬件/网络层面,购买支持安全组或防火墙策略的IDC服务时,限制IP白名单来源,例如简米科技的裸机云和酷番云的云服务器均可在控制台配置安全组规则,只允许指定IP访问22端口。酷番云作为持有全牌照的云服务商,其安全组策略基于分布式防火墙实现,规则下发延时低于1秒,能有效拦截来自非信任区域的扫描行为,在服务器上配置好iptables或firewalld规则,双管齐下,效果最好。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/590486.html




