服务器查看远程登录IP记录,核心方法是检查系统登录日志和账户记录文件,Linux服务器运行last命令或查看/var/log/secure日志,Windows服务器则通过事件查看器里的安全日志筛选登录事件。
很多场景下,你需要确认谁连过服务器,无论是排查安全入侵、审计操作行为,还是纯粹想知道有没有人偷偷登录过你的服务器,掌握查看IP记录的方法是运维基本功,这篇文章围绕服务器安全日志怎么看、Linux查看登录历史命令、vps服务器被暴力破解怎么办这几个高频搜索场景,手把手带你从日志里把IP揪出来。
查看IP记录前先搞懂日志存在哪
Linux服务器的三大日志阵地
Linux系统下,远程登录(SSH)的记录分散在几个关键位置,行业共识认为,合规的审计必须同时参考这三个渠道,只看一个容易漏掉信息。
- wtmp文件:记录所有成功登录的历史。
last命令读取的就是这个文件。 - btmp文件:记录所有失败的登录尝试。
lastb命令读取这个文件,专门用来抓暴力破解痕迹。 - /var/log/secure(CentOS/RHEL系)或/var/log/auth.log(Debian/Ubuntu系):实时记录SSH认证过程的详细日志,包含每一次登录尝试的IP、用户名、认证方式、结果。
# 查看最近10次成功登录记录 last -10 # 查看所有成功登录记录(含IP) last -i | head -20 # 查看失败登录记录(暴力破解必查) lastb -20
-i参数会把主机名转换成IP地址显示,这是最直观的做法,日志文件会自动轮转,last读取的是/var/log/wtmp,如果系统重启过多次,last -f /var/log/wtmp.1可以看更早的记录。
Windows Server的登录日志藏在事件查看器
Windows服务器用事件查看器,按以下几个路径点进去就能找到远程登录记录:
- 打开事件查看器 → Windows日志 → 安全
- 右侧点击筛选当前日志
- 事件ID填
4624(成功登录)和4625(失败登录) - 在下方的详细信息里,展开网络信息,就能看到源网络地址字段,这就是远程登录IP
Windows的登录日志默认只记录最近几天的数据,如果服务器经常重启或者日志量大,历史记录会被覆盖,建议在组策略里开启
账户登录事件的审核,否则默认配置下很多登录细节根本不会记。
从日志里提取IP的实操命令
用last和lastb快速判断异常登录
last命令输出的每一行自带IP地址,配合awk和sort可以统计出登录次数最多的IP,这个思路在处理服务器怎么查看远程登陆的IP记录这类需求时最有效率。
# 统计登录次数最多的前10个IP
last -i | awk '{print $3}' | sort | uniq -c | sort -nr | head -10
# 统计失败登录最多的前10个IP
lastb -i | awk '{print $3}' | sort | uniq -c | sort -nr | head -10
如果某个IP在lastb里出现了几十上百次,基本可以断定是扫描器或者暴力破解脚本,在/etc/hosts.deny里直接写ALL:该IP就能封掉,但更推荐用fail2ban做自动封禁。
grep过滤secure日志定位攻击时间线
/var/log/secure日志里记录了完整的SSH握手过程,包括使用什么客户端、什么用户名、什么密钥或密码,这条命令直接筛选出含IP地址的认证失败记录:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
日志每列的具体含义:时间戳、主机名、sshd进程、认证结果(Failed password或Accepted password)、用户名、来源IP。$(NF-3)是倒数第四列,也就是IP位置,想要找出某个IP具体尝试了哪些用户名,加一个grep 目标IP即可。
实时监控新登录IP的两种方式
被动查看日志发现异常往往已经晚了,实时监控新登录IP,相当于给服务器装了个防盗门铃。
用tail持续跟踪日志
tail -f /var/log/secure | grep "Accepted"
只要有新的成功登录,终端立即弹出信息,包含来源IP和登录用户,适合自己手动盯梢的场景。
写脚本在登录瞬间发告警
创建/etc/profile.d/ssh-alert.sh,写入登录通知逻辑,这样每个用户一旦SSH登录成功,自动输出上次登录的IP和时间,同时支持通过webhook推送到企业微信或钉钉群,更轻量的是直接用pam_exec模块,在SSH认证成功时触发脚本,把IP写进数据库或推送警报。
清理和防护:看完IP记录后别留死角
vps服务器被暴力破解怎么办
如果你发现lastb里刷屏的IP,先别急着删日志,按下面这个优先级处理:
- 立即禁用密码登录:编辑
/etc/ssh/sshd_config,把PasswordAuthentication改为no,改用密钥登录,这一步切断了90%的暴力破解路径。 - 修改SSH默认端口:把
Port 22改成高端口(如42222),扫描器的默认规则就不会扫到你。 - 安装fail2ban:监控secure日志中的失败次数,超过阈值自动封禁IP,默认配置封禁10分钟,足够阻止持续爆破。
- 检查是否已有入侵迹象:
last里有没有你不认识的时间段?/etc/passwd里有没有新增用户?如果发现有异常登录,需要立即排查启动项、计划任务和公钥文件。
相当一部分vps被破解是因为弱密码加默认端口,改掉这两个习惯,暴力破解的成功率会降到非常低,ip记录查询的意义,说到底是要在攻击者得手前发现他。
手动封禁IP的备选手段
fail2ban是自动方案,手动封禁在单次危机处理时更快:
- iptables封禁:
iptables -I INPUT -s 1.2.3.4 -j DROP - firewalld封禁:
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=1.2.3.4 reject" && firewall-cmd --reload - hosts.deny(TCP Wrapper):
echo "sshd: 1.2.3.4" >> /etc/hosts.deny
对比这三种封禁方式的适用场景:
| 方式 | 生效范围 | 优劣势 |
|---|---|---|
| iptables | 内核网络层 | 最底层、可靠,但规则重启后要保存 |
| firewalld | CentOS 7+默认防火墙 | 配置直观,支持富规则,适合新手 |
| hosts.deny | 仅限支持TCP Wrapper的服务 | 只对sshd等少数服务生效,覆盖有限 |
历史日志的合规备份与审计
日志会丢,IP记录必须持久化
默认情况下,Linux的wtmp和secure日志按月轮转,轮转后会压缩归档,但服务器被入侵后,攻击者可能直接清空日志,业内专家指出,日志的完整性和不可篡改性比日志本身更重要,建议把日志实时同步到远程日志服务器(如Rsyslog),或者用auditd审计服务记录文件的读取和修改行为。
# 配置Rsyslog远程日志传输 # 在/etc/rsyslog.conf中添加目标服务器地址 . @192.168.1.100:514
本地日志有一套默认保留策略,CentOS的
logrotate默认保留4周,Ubuntu默认保留2周,如果是被合规监管的服务器,建议把/var/log/secure的保留周期改到180天以上,并开启日志压缩,这样追溯服务器怎么查看远程登陆的IP记录时,你能拉到足够长的历史维度。
实战场景:排查异地登录告警
假设你收到一条异地登录告警,说是有人从国外IP登上了服务器,完整的排查顺序是:
last -i查看所有成功登录的最近记录,确认该IP是否存在grep 目标IP /var/log/secure查看该IP的所有操作时间线- 确认该时间段是否有对应进程在执行命令(配合
history或auditd) - 检查密钥和密码是否泄露,必要时立即轮换所有凭证
- 如果是误报,说明登录者的出口IP在海外节点,需要综合
whois信息和登录时间判断
整个过程不超过十分钟,不要只看有没有这个IP,要结合登录用户、登录时间和后续操作记录综合判断。
常见问题速查
查不到IP记录是什么原因
last显示空记录,大概率是wtmp文件被清空过或从未写入,检查/var/log/wtmp是否存在,权限是否是664,属主是否为root:utmp,如果文件被攻击者篡改过,建议用last -f /var/log/wtmp.1或/var/log/wtmp.2查找更早的轮转备份,部分云厂商的镜像默认关闭了utmp记录,需要在/etc/rsyslog.conf里确认authpriv的日志级别。
如何实时获取新登录IP的告警通知
用inotifywait监控/var/log/secure文件变化,出现Accepted关键字时触发告警脚本,比tail -f更稳健,因为即使文件被轮转也能继续监控,核心脚本逻辑是inotifywait -m /var/log/secure -e modify,加上grep Accepted和webhook推送即可实现秒级告警。
后记:IP记录只是安全的第一步
查看远程登录IP记录,对个人站长来说是最基础的安全自查动作,把last和lastb用熟,把日志备份做好,把fail2ban装上,你的服务器安全基线就已经超过大多数同行了,IP能告诉你谁来过,但无法告诉你他做了什么,要真正掌握服务器状态,还需要结合auditd和文件完整性监控工具,这是下一篇进阶内容的核心,无论如何,先把你手上设备的IP记录查一遍,确认没有陌生访客,这是最安全的起始动作。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/749407.html





