想查询哪个IP登录过服务器,最直接的办法就是阅读系统登录日志:Linux用last命令,Windows在事件查看器安全日志里筛选事件ID 4624。 不管用的是云服务器还是物理机,这个思路几乎不变,下文按Linux、Windows、云场景和工具选择拆开说,全部给可操作命令和判断方法。
服务器登录记录在哪里查看?先找对日志文件
很多运维同学一上来就找第三方监控工具,其实大部分登录IP的答案就藏在系统自带日志里,不同系统存放位置不一样,先分清平台。
Linux登录日志存在哪几个文件
/var/log/wtmp:记录成功登录,用last读取。/var/log/btmp:记录失败登录,用lastb读取,通常需要root权限。/var/log/auth.log或/var/log/secure:认证过程明细,含sshd、sudo、cron等事件。/var/run/utmp:当前在线用户,用who或w查看。
CentOS/RHEL系列多数使用/var/log/secure,Debian/Ubuntu系列多数使用/var/log/auth.log,不用死记路径,先确认系统发行版再查。
Windows登录日志藏在哪
Windows服务器不叫登录日志文件,而是统一进入事件查看器,登录成功对应事件ID 4624,登录失败对应事件ID 4625,路径为 Windows日志 → 安全,源IP记录在事件属性的“网络信息”里,字段通常叫“源网络地址”。
简单说,Linux找wtmp和btmp,Windows找事件ID 4624/4625,这是查询登录IP的两条主干道。
Linux查看登录日志命令:last与lastb实操对比
先说最常用的两个命令。last查成功登录,lastb查失败登录,光看还不够,要会加参数让IP显示得更清楚。
last命令怎么用
默认直接输入last,会输出用户名、终端、来源IP或主机名、登录时间、退出时间,问题在于,如果服务器开了DNS反解,来源列可能显示主机名而不是IP。
更推荐这样用:
last -i -a -n 20
参数含义:
-i:强制显示IP,不做主机名反解。-a:把IP挪到最后一列,方便复制。-n 20:只看最近20条。
示例输出:
root pts/0 203.0.113.7 Tue Feb 3 14:22 still logged in admin pts/1 192.168.1.50 Tue Feb 3 09:15 - 09:45 (00:30)
第一条是当前在线,来源IP为0.113.7,第二条是已经退出,登录持续30分钟。
lastb命令怎么用
lastb读取/var/log/btmp,记录的是密码输错、用户不存在等失败尝试,很多暴力破解的来源IP会在这里留下大量记录。

sudo lastb -i -a -n 50
输出格式和last几乎一样,只是代表失败记录,如果/var/log/btmp不存在,说明系统从未记录失败登录,可以手动创建:
sudo touch /var/log/btmp sudo chmod 600 /var/log/btmp
last和lastb的对比
| 命令 | 读取文件 | 记录类型 | 是否需要root | 常用参数 |
|---|---|---|---|---|
last |
/var/log/wtmp |
成功登录 | 否 | -i -a -n |
lastb |
/var/log/btmp |
失败登录 | 是 | -i -a -n |
lastlog |
/var/log/lastlog |
用户最近一次登录 | 否 | -u 用户名 |
who -a |
/var/run/utmp |
当前在线 | 否 | -a |
查某个用户的最近登录,可以执行:
lastlog -u root
这个命令在怀疑某个特权账号被异常使用时很有用。
云服务器登录异常怎么排查?从锁定登录IP开始
云服务器经常遇到异地登录告警、CPU突然飙高、文件被加密等情况,处理前第一步不是重装系统,而是先把登录IP固定下来,判断入侵路径。
排查登录IP的实操步骤
先看当前谁在线:
w
观察是否有陌生用户或陌生终端。
拉取最近20条成功登录:
last -i -n 20
特别留意非自己常用地区的IP。
查看失败登录:
sudo lastb -i -n 50
如果同一个IP失败次数极多,可能就是暴力破解源。
从sshd日志统计失败来源:
sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head
这会直接给出尝试次数最多的攻击IP。
确认可疑IP后立即封禁:
sudo ufw deny from 攻击IP
或使用firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=攻击IP reject'。
行业共识认为,多数云服务器被入侵前都出现过异常IP的登录成功记录,也就是说,成功登录前的失败尝试或异地来源往往已经暴露了风险。
国内服务器登录IP查询有什么地域特点
如果服务器部署在北京、上海、杭州等国内地域,日常登录IP通常集中在固定网段或办公宽带,一旦出现境外IP或非业务地区IP,就要重点排查,但也不能看到异地就马上下结论,有些企业使用跨国运维节点或云堡垒机,来源IP会显示为海外。

国内服务器还容易遇到CDN和云WAF的回源IP,这些IP出现在日志里不代表有人登录,可能是健康检查,先判断是SSH/RDP登录记录,再结合时间、账号和登录类型综合判断。
Windows服务器怎么查登录IP?事件查看器与PowerShell配合
Windows服务器查询登录IP,图形界面适合单条查看,PowerShell适合批量筛选,两者都掌握,运维效率会高不少。
事件查看器操作路径
- 按
Win+R,输入eventvwr.msc回车。 - 左侧展开 Windows 日志 → 安全。
- 右侧点击 筛选当前日志。
- 在“事件ID”输入
4624,4625,确定。 - 双击具体事件,在“网络信息”区域查看“源网络地址”。
如果事件里“源网络地址”为空,通常不是网络登录,可能是本地控制台或虚拟化平台VNC登录。
用PowerShell批量查询登录IP
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 50 |
ForEach-Object {
[PSCustomObject]@{
Time = $_.TimeCreated
User = $_.Properties[5].Value
Domain = $_.Properties[6].Value
LogonType = $_.Properties[8].Value
SourceIP = $_.Properties[18].Value
}
} | Format-Table -AutoSize
这段命令会输出最近50条成功登录的时间、用户、域、登录类型和源IP,重点看LogonType:
2:本地控制台登录,无外部IP。3:网络共享登录,可能有内部IP。10:远程交互登录,如RDP,最需要关注的外部访问类型。
如果只想查RDP登录,可以再加过滤条件,或者直接在事件查看器筛选LogonType为10。
免费服务器日志分析工具够用吗?系统命令和商业审计价格差别在哪
不少中小团队会问,查个登录IP到底要不要买商业日志审计平台,答案是:单台或少台服务器,系统命令配合免费工具完全够用,只有多节点集中审计、合规留存、实时告警需求强时,才需要评估商业方案。
免费工具能干什么
Fail2ban:自动扫描/var/log/auth.log中的失败登录,超过阈值直接封禁IP,对SSH暴力破解尤其有效。Logwatch:把登录日志、失败记录汇总成日报,发到邮箱,不用每次手动跑命令。Graylog开源版:多台服务器日志集中收集,可按IP、用户、时间范围查询登录记录,适合从单机走向集中管理。
这些工具不产生授权费用,部署成本主要是时间,如果只是临时查哪个IP登录过服务器,用系统命令就够了。

业内专家指出,小规模场景先跑通系统原生命令,比直接上商用平台更实际,很多商业日志审计工具的优势在于长时间保留、多源关联和权限审计,而不是单次查询登录IP。
商用日志审计系统价格怎么评估
价格方面没有统一标准,多数厂商按资产数量、日志量或存储周期报价,需要根据实际环境询价,如果服务器数量少、日志量低,商业工具的成本往往高于问题本身,反之,等保合规或金融、政务场景,可能会强制要求独立的日志审计留存,此时价格不再是第一决策因素。
查询登录IP时容易忽略的5个细节
查登录IP看似简单,但实际环境里经常因为这些细节出现误判。
- 服务器时区不准:日志时间对不上,导致误判登录时间,先确认
date和硬件时钟一致。 - 容器里的服务:如果应用跑在Docker里,宿主机
last看不到容器内部登录,要进容器或看编排平台日志。 - CDN和反向代理:日志中出现的可能是CDN节点IP,不是真实客户端IP,需要检查
X-Forwarded-For或代理层配置。 - 内网地址:来源是
168.x.x、x.x.x,多半是内网管理或跳板机,不一定是外部入侵。 - 日志轮转:
/var/log/wtmp可能被logrotate压缩成.1、.2.gz文件,查更早记录需要阅读这些历史文件。
这类细节往往比命令本身更影响判断,先确认时间、来源和网络路径,再下结论。
Q&A:服务器登录IP查询相关问题解答
怎么判断登录IP是否属于异常访问?
把last或事件查看器拉出的IP,和日常运维IP、办公网段、云堡垒机网段做比对,如果来自非常用国家或地区,且同一IP在lastb里有多次失败记录,基本可以判定为异常。
Linux服务器查不到登录IP显示unknown怎么办?
使用last -i强制显示IP,避免DNS反解失败导致显示unknown,如果改用-i后仍然没有IP,可能是登录服务本身未记录完整来源,需检查sshd的LogLevel和SyslogFacility配置。
如何批量统计某个IP尝试登录服务器的次数?
在Linux下执行:
sudo grep "Failed password" /var/log/auth.log | grep "要查询的IP" | wc -l
成功登录次数可执行:
last -i | grep "要查询的IP" | wc -l
这两个数字直接反映该IP的行为密度,比单条告警更有参考价值。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/808514.html


评论列表(3条)
读了这篇文章,我深有感触。作者对读取的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于读取的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于读取的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!