怎么记录哪个IP登陆了服务器,怎么查看服务器登录IP记录

记录服务器登录IP的核心方法是查看系统登录日志和各类应用访问日志,用好last命令、事件查看器、Web访问日志这三板斧,就能完整还原任何IP的登录痕迹。服务器并不会像人等用户去提醒它“记一下谁来了”,它的日志功能默认就是开启的,关键在于你知道去哪里翻、怎么翻、翻到什么算完。

Linux服务器查看登录IP的操作指南

Linux是目前服务器市场占有率最高的操作系统,多数情况下,管理员的日常工作都集中在Linux环境里,记录IP登录这件事,Linux上有现成的工具,不需要额外安装复杂的监控软件。

Linux查看登录IP的命令有哪些

Linux系统会忠实地把所有安全事件写入/var/log/secure/var/log/auth.log文件,以下几个命令是查看登录IP的基础操作:

  • last命令:这是查看成功登录记录的首选,直接敲last,系统会列出所有登录会话,包括用户名、登录终端、来源IP、登录与退出时间,如果想看某个具体用户,用last username过滤。
  • lastb命令:专门查看失败的登录尝试,这个命令需要root权限执行,敲sudo lastb就能看到所有密码错误、用户不存在等认证失败的IP。暴力破解的痕迹基本都会出现在这里
  • whow命令:这两个命令显示当前在线用户及其来源IP,适合实时查看此刻谁正连着服务器。
  • journalctl命令:基于systemd的系统,可以用journalctl -u sshdjournalctl -u ssh --since today直接过滤SSH服务的认证日志,输出内容比secure文件更可控。

补充一点,以上命令输出的IP是IPv4地址,如果服务器启用了IPv6,输出中会同时出现IPv6地址格式的记录。

从登录日志中提取IP的具体方法

直接翻日志文件会有大量无关信息,推荐结合grep命令做关键字过滤。

拿最常用的CentOS和Ubuntu举例:

  • CentOS/RHEL系统:登录日志默认写在/var/log/secure

    grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c

    这条命令能统计出成功登录服务器的所有IP及其次数awk '{print $11}'提取的是IP列,不同版本的Linux日志字段位置略有差异,如果发现输出为空,先执行tail -n 5 /var/log/secure确认IP在哪一列。

  • Ubuntu/Debian系统:登录日志在/var/log/auth.log,命令逻辑相同:

    怎么记录哪个IP登陆了服务器,怎么查看服务器登录IP记录

    grep "Accepted" /var/log/auth.log | awk '{print $9}' | sort | uniq -c
  • 查看指定时间段的登录IP:日志文件很大时,先按日期切分再过滤。

    sed -n '/2026-03-01 00:00:00/,/2026-03-02 00:00:00/p' /var/log/secure | grep "Accepted"

上述命令输出的第一列是出现次数,第二列是IP地址。次数异常集中的IP就很有可能是扫描器或暴力破解源,需要在防火墙层面做处理。

Windows服务器远程登录记录的查询方式

Windows服务器的登录记录藏在“事件查看器”里,图形界面操作对不熟悉命令行的用户比较友好。

Windows服务器远程登录记录怎么查

Windows系统把登录事件分为多个ID,记住关键数字比记住菜单路径更高效。

  • 4624事件:代表登录成功,这是查询远程IP的入口。
  • 4625事件:代表登录失败,大量4625事件意味着有人在尝试破解密码。
  • 4634事件:代表注销。

具体操作路径如下:

  1. Win+R组合键,输入eventvwr.msc打开事件查看器。
  2. 展开“Windows日志” -> “安全”。
  3. 点击右侧“筛选当前日志”,在事件ID输入框填4624,点击确定。
  4. 双击任意一条4624记录,查看“网络地址”字段,这个就是远程来源IP

也可以通过PowerShell命令行快速提取:

Get-WinEvent -FilterHashtable @{LogName='Security';Id=4624} | Select-Object TimeCreated, @{n='IP';e={$_.Properties[18].Value}}

这条命令会输出所有成功登录事件的时间和来源IP,注意Properties[18]对应的是网络地址字段,如果拿到的值是空或者,检查一下是否启用了远程桌面登录,RDP协议登录的记录必含来源IP

通过Web服务器日志记录访问者IP

如果服务器上有网站或Web应用,Web服务器日志会记录每一个HTTP请求的来源IP,这部分数据量比系统登录日志大得多,但信息也丰富得多。

配置Nginx和Apache记录真实IP

  • Nginx服务器:默认的access.log就包含客户端IP,在nginx.confhttp块中,可以自定义日志格式,把IP字段放在最前面便于分析:

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent"';

    怎么记录哪个IP登陆了服务器,怎么查看服务器登录IP记录

    配置完成后执行nginx -s reload使配置生效。$remote_addr就是客户端IP,但如果网站接了CDN,$remote_addr拿到的是CDN节点IP,这时需要通过$http_x_forwarded_for获取真实IP,并确保只有CDN的IP能修改这个头,否则会被伪造。

  • Apache服务器:默认的access.log格式已包含客户端IP,无需额外配置,用tail -f /var/log/httpd/access_log即可实时看到访问者的IP。

Web日志的价值在于能记录特定URL被哪些IP访问,这在排查爬虫、恶意攻击、数据泄露溯源时非常有用。

业务应用层面记录IP登录的实现思路

系统日志和Web日志解决的是“谁连上了服务器”的问题,但业务系统还需要知道“谁登录了我的系统后台”,这部分内容属于用户行为日志,记录方式取决于应用代码的成熟度。

在登录流程中写入IP记录

无论是PHP、Java、Python还是Go写的Web应用,都提供了获取客户端IP的函数或接口,以Java的HttpServletRequest为例:

String ip = request.getHeader("X-Forwarded-For");
if (ip == null || ip.length() == 0) {
    ip = request.getRemoteAddr();
}

拿到IP后,配合登录时间、用户账号、用户代理(浏览器UA)一起写入数据库即可。多数成熟的应用框架自带登录日志插件,比如Spring Security默认就有审计日志功能,只是默认情况下没开启,在配置文件中把日志级别改为DEBUG即可看到包含IP的登录记录。

对于使用第三方系统的运维人员来说,如果不改代码,还可以通过数据库层面记录IP:开启MySQL的general_log,所有SQL语句包括登录查询都会完整记录,但代价是性能下降明显,只建议短时间开启排查问题。

登录IP分析思路与安全防护策略

记录IP是手段,不是目的,拿到一堆IP地址后,需要判断哪些是正常访问,哪些是异常风险。

分析IP归属地识别风险来源

  • 使用whois命令查询IP归属机构,比如whois 8.8.8.8
  • 使用ipinfo.io、ip138等公开接口批量查询IP地理归属,直接访问https://ipinfo.io/8.8.8.8/json即可返回国家、城市、运营商信息。
  • 国内外访问行为有明显差异:正常情况下,一个国内企业站不太可能有大量美国、俄罗斯、越南等地的IP频繁尝试登录,这类IP基本可以判定为扫描器。

行业共识认为,日志中没有误报,只有还没被识别出来的攻击,定期把IP逆向地理查询后发现大量异地区域来源,需要立即修改高强度密码并调整防火墙规则。

怎么记录哪个IP登陆了服务器,怎么查看服务器登录IP记录

针对登录IP配置防火墙拦截

  • Linux的fail2ban工具:这是Linux生态中最常用的暴力破解自动响应工具,它监控日志文件,某个IP在规定时间内失败次数超过阈值,就会自动添加iptables规则临时封禁,安装命令为yum install fail2banapt install fail2ban,配置文件在/etc/fail2ban/jail.local,默认会监控SSH日志。
  • 云安全组的访问控制:简米云、酷番云、AWS等主流云厂商的安全组都支持IP白名单。只允许办公网段的IP访问22或3389端口,是砍掉绝大多数恶意登录请求的最有效手段
  • DDoS高防与WAF:这类产品可以在流量进入服务器之前就完成IP清洗,通常提供IP封禁面板,可视化程度高,适合有预算的团队。

定期归档登录日志便于追踪溯源

日志不归档等于没日志,大多数情况下,磁盘空间满导致日志丢失是admin最痛的问题,建议执行以下操作:

  • crontab中设置每周压缩归档日志文件。
  • /var/log/secure/var/log/nginx等关键日志目录挂载到独立数据盘,避免系统盘写满。
  • 有条件时使用ELK或Splunk等日志集中平台,把多台服务器的IP登录日志汇总到一处,实现集中告警。

Q&A:服务器IP登录记录常见问题

服务器被频繁尝试登录,怎么快速找出攻击IP并封禁?

执行sudo lastb | awk '{print $3}' | sort | uniq -c | sort -n,这条命令统计出所有登录失败的IP及次数,取次数最多的前十个IP,再用iptables -A INPUT -s 攻击IP -j DROP直接封禁,封完之后把SSH端口改成非默认端口,可以显著降低后续扫描压力。

服务器的IP登录记录会存多久?

取决于日志轮转配置,Linux系统默认通过logrotate管理日志文件,通常保留4周左右,Windows事件日志默认限制大小20MB左右,超过后按策略覆盖旧记录,要延长保存时间,修改/etc/logrotate.d/syslog中的rotate参数,或者增大Windows事件日志的最大大小限制。

日志中出现了本机内网IP的登录记录,这是正常的吗?

需要区分情况,服务器调度任务、本机脚本通过localhost或内网地址连接自身服务属于正常现象,但如果有外网登录记录时间内网IP是直接连接的,且该内网IP目前不属于任何已知业务机器,则需要排查是否有人通过内网跳板机入侵了服务器,对普通应用服务器,引用可靠的登录日志管理策略,结合堡垒机运维审计是较稳妥的防护方式。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/676135.html

(0)
上一篇 2026年8月14日 07:56
下一篇 2026年8月14日 07:59

相关推荐

  • 网站开发及维护是什么?一文详解其定义、流程与常见工作!

    网站开发及维护是构建、运营和管理在线平台的系统性过程,涵盖从需求分析到长期优化的全生命周期管理,它不仅关乎技术实现,更涉及用户体验、业务增长与长期运营的可持续性,是数字时代企业、组织或个人开展在线业务的核心基础,这一过程融合了技术、设计与管理的多维度能力,是构建线上品牌、实现数字化转型的重要环节,网站开发的核心……

    2026年1月21日
    01830
  • 理财类app开发怎么做,理财app开发费用

    2026年理财类App开发的核心结论是:必须构建“AI驱动+合规前置+场景化交互”的三维架构,以通过央行及网信办最新监管要求,并满足Z世代用户对即时反馈与个性化资产配置的双重需求, 2026年理财App开发的市场逻辑与合规基石随着《个人信息保护法》实施细则在2025年的全面深化,以及金融科技监管沙盒机制的常态化……

    2026年6月7日
    01265
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 微信营销活动定制开发怎么做,微信营销活动定制

    微信营销活动定制开发并非简单的模板套用,而是基于2026年私域流量精细化运营逻辑,通过“数据驱动+场景化交互+自动化营销”三位一体架构,实现品牌从公域获客到私域留存转化的系统性工程,2026年微信营销定制开发的核心逻辑演变随着微信生态从“连接”向“智能服务”转型,传统的H5抽奖或简单裂变已无法满足2026年的市……

    2026年7月7日
    0611
  • java开发成本是多少,java开发费用

    2026年Java开发成本受技术栈复杂度、团队地域及项目规模影响显著,中小型系统单模块开发成本约3-8万元,中大型平台级项目总投入通常在50-200万元区间,且需预留15%-20%的后期维护预算,2026年Java开发成本核心构成解析在数字化深入渗透实体经济的背景下,Java作为企业级应用的首选语言,其成本结构……

    2026年6月16日
    01332

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注