服务器日志找远程登录IP,最省事的是查系统的认证日志,Linux用last命令或者翻/var/log/secure文件,Windows去事件查看器里找安全日志,一分钟内就能锁定来源IP。
很多朋友第一次被“异地登录”吓到,第一反应是打开各种监控面板,其实监控面板上的IP数据也是从系统日志里扒出来的,与其等别人喂数据,不如自己学会怎么查,遇到问题能少走三分钟弯路,还能在服务器刚出异常的时候直接定位来源。
服务器日志怎么查看远程登入的ip:先分清你的系统再说
不同服务器的日志记录机制完全是两套思路,用Linux的命令去查Windows,或者用Windows的思路去翻Linux的文件,都是白费功夫,先确认自己的服务器跑的是什么系统,然后按下面对应的逻辑去操作。
Linux服务器:三件套搞定九成场景
Linux系统下的日志文件分布在/var/log/目录,和登录IP直接相关的有三个,记住这三个就够了。
/var/log/secure:这是核心文件,CentOS、RedHat、简米云Linux等系统都靠它记录所有认证信息,包括谁通过SSH登录了、哪个IP连过来的、密码有没有试错。/var/log/auth.log:Debian、Ubuntu系统的御用版本,作用和secure完全一样,只是名字不同。/var/log/wtmp:二进制文件,记录所有成功登录的历史记录,last命令读的就是它。
操作命令直接抄:
- 查看最近所有成功登录的IP和登录时间,敲
last回车即可。 - 只看最近10条记录,敲
last -n 10。 - 查看所有失败登录尝试,敲
lastb,注意这个命令需要root权限。 - 从secure文件里筛选失败密码的登录来源,敲
grep "Failed password" /var/log/secure,出来的每一行都会带上攻击者的IP。
linux查看ssh登录ip记录实战
很多站长用的是Linux服务器,日常最关心的就是SSH端口有没有被扫,业内专家指出,针对22端口的暴力破解几乎是持续性的,不是偶尔来一下,而是全天候每分钟都在试。
手动执行grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -n,这串命令能统计出哪些IP试错次数最多,如果看到某个IP尝试了几百次,不用怀疑,那就是机器在暴力破解,建议用firewalld或者iptables直接拉黑。
关键细节:有的服务器装了第三方SSH防护软件,会修改日志格式,awk '{print $11}'可能取不到IP,那就先执行grep "Failed password" /var/log/secure | tail -5看几行原文,搞清IP在第几列再去取。
Windows服务器查看远程登录ip日志怎么找
Windows服务器没有/var/log这个说法,所有登录行为都汇总在事件查看器里,远程登录产生的记录分为两类:成功登录是事件ID 4624,失败登录是事件ID 4625。
操作路径:
- 打开“事件查看器”,左边栏展开“Windows 日志”->“安全”。
- 右边点“筛选当前日志”,输入事件ID
4624,确定后能看到所有成功登录记录。 - 双击任意一条记录,在“常规”页签里往下拉,找到“源网络地址”,那个IP就是远程登录来源。
一个省事的技巧:Windows服务器用远程桌面(RDP)登录比较常见,如果你只想看远程桌面的登录记录,在筛选时把事件ID设为4624,然后看日志里的“登录类型”字段,登录类型为10表示远程桌面连接,其他类型如2表示本地键盘登录,3表示网络共享访问,这些都不用管。
日志文件在哪个路径:别找错地方犯低级错误
搞清路径是个基本功,Linux的日志文件默认在/var/log/secure或/var/log/auth.log,Windows在C:\Windows\System32\winevt\Logs\Security.evtx,但要注意,有些云服务器厂商给的系统镜像默认没开SSH密码登录,只有密钥登录,这种情况下/var/log/secure里只有Accepted publickey的记录,IP照样能看到,只是没有密码试错记录罢了。
从日志里挖出的IP,怎么判断是不是真实登录
找到IP只是第一步,能把正常登录和异常登录区分开才是真本事,别看到一个陌生IP就吓得毛骨悚然,先做出判断。
三个维度判断异常登录
- 时间维度:你的作息时间相对固定,某天凌晨三点有一个IP登录成功,就要留个心眼,自动化攻击脚本不爱挑时间,但成功登录多数发生在攻击得手的那一刻。
- 频率维度:日志里同一个IP在短时间内出现几十次
Failed password,然后突然出现一条Accepted,这就是暴力破解成功的铁证。 - 地域维度:如果你人在国内,日志里却有一个海外IP登录成功,这种情况需要立刻处理,虽然不是绝对有问题,但借道海外跳板的攻击行为非常常见。
行业共识认为,多因素认证是阻断这类风险最有效的第一道防线,就算密码被破解,没有手机验证码依然登不进去,如果条件允许,建议优先启用。
里的“马脚”:别忽略登录方式
查看日志的时候,注意记录的登录方式,以Linux为例,Accepted password for root from 203.0.113.5 port 52300 ssh2这行记录,说明IP是203.0.113.5,用的是密码登录,端口是52300,如果是Accepted publickey,说明对方持有了你的私钥,这种情况下密码已经没用了,换端口、改密码都没意义,得马上更换密钥对。
服务器远程登录IP日志的安全价值:不只是事后追查
翻看日志这事,别等出事了才想起来,日志里的IP除了能追查攻击者,更大的价值在于帮你做事前防御。
用日志判断暴力破解的规律
多数情况下,暴力破解脚本是不会换IP的,一个僵尸IP在短时间内的试探是有规律的,比如每2秒试一次密码,把被拉黑的IP整理成一个列表,在防火墙层面封禁,一劳永逸,有条件的可以直接用Fail2ban这类自动化工具,它读到Failed password记录后自动调防火墙封禁IP,比自己手动去敲命令高效得多。
事情干完记得做日志归档
系统日志默认有保留周期,比如/var/log/secure可能只保留4周,如果被人登录后的一个月你才发现,再想回头查IP可能已经没记录了,建议做一个最简单的定期备份,用cron计划任务每天把/var/log/secure复制到独立目录或者远程存储上。
- 在
/etc/cron.daily/下新建一个脚本写cp /var/log/secure /backup/secure-$(date +%F) - 保存后脚本每天自动执行
Windows下对应的操作是开启“审核日志”策略,然后设置日志大小上限,比如最大50MB,满了自动覆盖。
利用日志分析正常用户的登录行为
换一个角度想,日志里的IP也能帮你理解用户习惯,比如你的业务对公网开放,同事在家里、在咖啡厅、在出差路上分别会用不同IP登录,做好账号安全意识宣导,比等出问题再追责任更有价值,你可以定期抽查成功登录记录,发现有旧同事的账号仍在登录,说明离职交接时的账号清理没做到位,这也是安全的隐患。
日志查IP这件事:别忽略云平台自带的防护手段
当你琢磨服务器日志怎么查看远程登入的ip的同时,也可以去云控制台看一眼,云厂商的安全组和云盾产品会在更早的层面拦截攻击流量,它们产生的拦截日志和系统日志侧重点不一样。
- 系统日志记录的是到了操作系统层面的访问。
- 云盾日志记录的是在网络层就被拦截的访问。
如果云盾日志里某个IP被拦截了几千次,那这个IP的操作系统层日志肯定更丰富,反过来,系统日志没有异常,云盾日志天天告警,说明你的安全规则生效了,不用过分担心。
对普通场景来说,用云厂商自带的安全软件比自建一套防御体系省心得多,很多云平台默认开启了基础安全防护,把暴力破解源头直接挡在门外,系统日志里自然干干净净,这也解释了为什么你的日志里啥都没有因为攻击根本没到系统这一层。
不同价位的服务器的日志处理策略差异
便宜的云服务器可能没有高级安全组件,需要自己动手拉黑IP,成本不花在功能上就要花在时间上,高配实例自带的安全中心,能自动封禁攻击IP,日志查询也带可视化面板,选服务器时,如果预算有限,记得预留一点精力定期看last命令的输出。
日志文件去哪儿了:常见坑位汇总
很多人在紧急关头打开服务器,发现/var/log/secure文件是空的,或者是乱码,这时候别慌,先排查以下几个问题。
- 日志轮转:Linux发行版自带的
logrotate服务每天会压缩并重命名旧日志,/var/log/secure-20260601.gz这类文件就是轮转出来的,用zcat /var/log/secure-20260601.gz | grep "Failed password"可以查压宿包里的内容。 - 权限不够:
lastb和读secure文件都需要root权限,普通用户只能看到自己的登录记录,这是正常的。 - SELinux或系统加固组件:部分高安全配置的系统会设置“日志只读”权限,或者把日志挪到了自定义路径,需要查看
/etc/rsyslog.conf里的配置才能找到真实路径。
用日志查看远程IP的完整思路:从发现问题到解决问题
说了这么多命令和路径,把它们串成一条线更实用。
发现问题,早上起来打开服务器,发现网站响应很慢,或者资源占用异常。
定位来源,直接执行last,看最近一个小时的登录记录,发现一个不认识的IP在凌晨成功登录过。
排查行为,执行history或者查看~/.bash_history,确认这个IP登录后执行过什么命令。
封禁处理,用firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="该IP" drop"直接拒绝,如果看到的是Windows服务器,就在防火墙高级设置里新增“阻止所有连接”的入站规则。
复盘加固,修改SSH默认端口,禁用root账号直接登录,开启密钥认证,做到这四步,这次遭遇算没白经历。
日志这个东西,你不看它,它就是个存数据的文件,你看了它,它就是你服务器安全的第一道照妖镜,养成每周瞄一眼登录日志的习惯,比装十个安全插件都管用,翻日志不是运维的专利,站长自己动手也完全搞得定,把上面几个命令存成备忘录,真要用的时候抄就行。
常见问题快速解答
查看远程登录ip的命令是什么?
Linux用last查询成功登录的IP和来源,用lastb查询失败尝试的IP,用grep "Failed password" /var/log/secure查询被暴力破解的IP来源,Windows则在事件查看器安全性日志中筛选事件ID 4624或4625,在“源网络地址”字段看到IP。
日志里有陌生IP成功登录过,但没造成破坏,要紧吗?
要紧,成功登录意味着对方拿到了正确的密码或者密钥,这次没行动不代表下次安全,立即修改密码、关闭密码登录改用密钥登录,再检查该IP登录后执行过的命令记录,如果确认是误操作,比如你自己用了代理或跳板机导致IP显示异常,也要修改登录方式后保持观察一段时间。
服务器时间对不上,日志里的登录时间和实际对不上怎么办?
绝大多数服务器的日志时间以UTC(世界标准时间)记录,而你人可能处在东八区,比如日志显示凌晨3点,换算成北京时间可能是上午11点,可以先在服务器上执行date查看系统时区,如果时区不是Asia/Shanghai,可以用timedatectl set-timezone Asia/Shanghai修正时区,修正后新产生的日志时间就和北京时间一致了。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/783625.html

