要查询是哪个IP登录了服务器,最直接的办法是使用last或lastb命令查看登录记录,或通过云厂商控制台的安全日志功能溯源,这两种方式能覆盖绝大多数日常排查场景。
登录服务器查IP这件事,通常发生在两种情境下:一是服务器出现异常,你想揪出那个不速之客;二是纯粹想做一次安全自查,摸清家底,无论出于哪种原因,方法都比想象中简单,关键是要知道去哪看日志、怎么看日志。
登录记录藏在哪?三种途径精准定位IP
要查哪个IP登过服务器,本质上是查登录系统的审计日志,不同的操作系统、不同的登录方式,记录的位置和查询手段略有差异,但核心思路是一致的。
通过last命令查询当前与历史登录IP
对于绝大多数Linux服务器,last命令是排查登录IP的第一选择,它会读取/var/log/wtmp文件,这个文件专们记录所有成功登录的会话信息,包括登录用户、来源IP、登录时间以及退出时间。
直接在终端输入last,你会看到类似下面的输出:
root pts/0 123.45.67.89 Mon Jun 10 09:15 - 10:02 (00:47)
ubuntu pts/1 203.0.113.5 Mon Jun 10 08:30 still logged in
每一行代表一次完整的登录会话,第三列就是来源IP,如果想看更详细的记录,比如某个特定用户的登录IP,可以用last username命令,若要追踪所有IP的历史登录次数,last -i会显示完整的IP地址而非主机名,避免DNS解析带来的干扰。
查看登录失败记录:lastb命令锁定暴力破解来源
如果怀疑服务器被暴力破解,或者想确认是否有陌生IP在尝试撞库,就需要用到lastb命令,它读取/var/log/btmp文件,记录所有失败的登录尝试。
输入lastb,同样能列出试图登录的IP地址、尝试的用户名和时间,这个命令需要root权限才能查看,输出中你会看到大量重复的IP尝试记录,这些通常都是扫描器或攻击者的跳板机。
Windows服务器事件查看器:图形界面下的IP查询
Windows系统不习惯用命令行看日志,它的所有登录事件都记录在事件查看器中,按下Win + R,输入

eventvwr.msc并回车,定位到“Windows日志” → “安全”。
在右侧的“筛选当前日志”中,输入事件ID 4624(登录成功)和 4625(登录失败),即可看到所有登录尝试的详细记录,在事件详情中,找到“网络信息”选项卡,里面明确标注着“源网络地址”,这就是你需要的IP,筛选日志时需要注意,事件ID 4624对应的是成功的登录,但并非所有4624事件都来自网络,本地控制台登录(Type 2)的源IP会显示为0.0.1,只有Type 3(网络登录)和Type 10(远程交互登录)才是真正的远程来源。
如何使用who和w命令查看正在登录的实时IP
想在某一瞬间知道此刻正连着服务器的IP,用last就有点杀鸡用牛刀了。who或w命令直接显示当前所有登录会话。
执行w,输出结果中第一行显示系统当前时间、运行时长和登录用户数,下方列表则展示每个登录用户的来源IP(FROM列)和登录时间。who命令的输出更简洁,同样包含IP地址,这两个命令读取的是/var/run/utmp文件,只反映当下状态,服务器重启后会清空。
日志文件轮转:找不到记录时检查这里
如果发现last很少,或者时间对不上,可能是因为日志文件被轮转或清理了,Linux系统通常通过logrotate机制定期归档旧日志,常见的历史登录记录文件位于/var/log/目录下,命名格式类似wtmp.1、btmp.1、wtmp.2.gz等。
想查询更早时间的登录IP,需要直接查看归档文件:
last -f /var/log/wtmp.1
如果是压缩过的.gz文件,需要先解压再查看,或者使用zcat命令配合管道,需要注意的是,这些归档文件通常只保留几周到几个月不等,具体保留周期取决于系统配置,对于需要长期留痕的场景,行业共识认为应配置独立的日志收集系统,比如Syslog服务器或云厂商的日志服务,确保所有登录事件实时异地备份。
安全日志与云控制台:云服务器IP查询的高效路径
如果你用的是云服务器(比如简米云、酷番云、华为云),除了登录系统内部查日志,还有一个更直观的途径云厂商控制台。

云平台安全组流量记录与登录审计
登录你的云厂商控制台,找到“云安全中心”或“安骑士”这类的模块(不同厂商叫法不同),通常都有“登录审计”或“异常登录”功能,这里不仅能看到所有成功登录的IP、时间、登录方式和所在地区,还会自动标记暴力破解来源IP。
这些安全产品记录的信息可能比系统日志更全面,因为它们从云平台底层采集流量和登录事件,能够捕捉到所有四层以上协议的连接记录,简米云的“云安全中心”会展示“最近24小时登录尝试次数”,并直接给出攻击源IP的地理位置和风险等级。
使用审计工具追踪全部登录会话
除了系统自带的日志,也可以使用更专业的审计工具。auditd是Linux平台相当主流的审计框架,配置好审计规则后,它会记录每次登录尝试的完整细节,包括PID、可执行文件路径和网络地址。
启动auditd后,查看登录事件的命令通常是:
ausearch -m USER_LOGIN -ts recent
输出结果会包含addr=字段,这就是当时的登录IP,这种方式比last更可靠,因为它不仅依赖文件日志,还通过内核审计子系统的独立记录,即使攻击者删除或篡改了wtmp文件,审计记录依然存在。
如何根据IP日志判断哪些登录是可疑的
拿到了登录IP列表,接下来怎么做判断?IP本身只是数字,但结合登录时间、频率和地域特征,再参照你平时的使用习惯,就能识别出异常。
| 判断维度 | 正常情况 | 可疑信号 |
|---|---|---|
| 登录时间 | 固定于工作时段 | 凌晨2-5点高频尝试 |
| 登录来源 | 公司固定IP或本地常驻城市 | 跨多个省份或国家跳变 |
| 登录方式 | 使用密钥登录 | 大量密码尝试记录 |
| 操作行为 | 登录后执行常规操作 | 登录后立即修改SSH配置、添加新用户、下载脚本 |
多数的暴力破解攻击表现为短时间内反复尝试登录,且源IP集中在某几个网段,如果

lastb输出中出现了大量不同IP但是相同用户名的情况,大概率是分布式爆破,此时应通过云厂商的防火墙或安全组策略,直接封禁相关IP网段。
服务器异地登录IP查询的常见问题解答
Q1:last命令查不到记录,但确实有人登录过,是什么原因?
最可能是wtmp文件被清理或轮转,可以先用ls -lh /var/log/wtmp检查文件大小和归档情况,然后使用last -f查看归档文件,如果仍然找不到,检查是否有进程在定期清除日志,或者是否配置过syslog将日志转发到了其他服务器,少数情况下,root用户可以通过修改文件时间戳等方式刻意抹除登录痕迹,此时需要依赖云平台层面的安全日志进行交叉验证。
Q2:只想查询某一台云服务器被哪些IP登录过,有没有最快的方法?
最快的方法是登录云厂商控制台,进入“云安全中心”或“运维审计”模块,搜索该服务器的公网IP或实例ID,筛选时间范围,即可看到所有登录来源IP及对应的登录结果,这比登录服务器执行命令快得多,因为控制台的数据已做了聚合和展示,无需自己解析日志文本,通常情况下,控制台的登录审计数据会包含客户端IP、账号、登录时间、登录方式和结果,部分厂商还提供一键阻断功能。
Q3:排查发现登录IP位于国外且无法定位具体物理位置,如何应对?
优先在云安全组中直接封禁该IP的TCP 22端口(或你的自定义SSH端口),然后修改服务器登录密码为高强度密码,并检查是否有新增的SSH密钥(查看~/.ssh/authorized_keys文件),国外IP通常属于扫描段或代理节点,没有追查物理位置的现实意义,处理目标是消除威胁而非追溯身份。
排查服务器登录IP这件事,本质上是与日志打交道,系统日志记录了全过程路径及每个登录尝试的具体行为,掌握好last、lastb、ausearch这几个命令,再配合云控制台的审计视图,应对绝大多数排查场景绰绰有余,操作时熟能生巧,建议在测试机上多跑几次相关命令,熟悉输出格式,这样在真正出问题时才能从容不迫地拿到有价值的痕迹信息。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/743676.html


评论列表(5条)
读了这篇文章,我深有感触。作者对文件的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
@山山1714:这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是文件部分,给了我很多新的思路。感谢分享这么好的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于文件的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于文件的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!
读了这篇文章,我深有感触。作者对文件的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!