当前位置:首页 > 主机动态 > 正文

如何查看服务器真实访问IP及来源地域?

服务器查看访问IP的重要性

在互联网运维工作中,服务器访问IP的监控与分析是保障系统安全、优化服务性能的核心环节,通过查看访问IP,管理员可以及时发现异常流量,识别潜在攻破行为(如分布攻破、暴力免费等),并追溯恶意来源,访问IP数据还能帮助分析用户地域分布、访问习惯,为业务拓展和资源调配提供数据支持,若某一地域的访问量突增,可能预示着该区域市场需求的变化,或存在流量异常(如爬虫恶意抓取),掌握服务器访问IP的查看方法,是每一位运维人员必备的基础技能。

通过服务器日志查看访问IP

服务器日志是记录用户访问行为的最直接来源,不同操作系统的服务器日志存储位置和格式略有差异,但核心信息中均包含访问IP、时间戳、请求路径、浏览器标识等关键数据。

Linux服务器日志分析

Linux系统通常使用Apache或Nginx作为Web服务器,其日志文件默认存储在特定目录下:

  • Apache日志:访问日志默认位于/var/log/apache2/access.log(Ubuntu/Debian)或/var/log/httpd/access_log(CentOS/RHEL),错误日志则对应error.log或error_log。

    查看实时访问IP的命令为:

    tail -f /var/log/apache2/access.log | awk '{print $1}'

    该命令会实时输出每条日志中的第一个字段(即访问IP),并持续跟踪新增记录,若需统计特定时间段内IP的访问量,可结合grep和sort命令:

    grep "2023-10-01 12:00:00" /var/log/apache2/access.log | awk '{print $1}' | sort | uniq -c | sort -nr

    此命令会提取指定时间段的访问IP,并按访问次数降序排列,快速定位高频访问IP。

  • Nginx日志:访问日志默认路径为/var/log/nginx/access.log,格式与Apache略有不同,但同样可通过awk提取IP:

    awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

    若需分析IP的访问路径(如是否频繁访问敏感目录),可增加字段提取:

    如何查看服务器真实访问IP及来源地域? 第1张

    awk '{print $1, $7}' /var/log/nginx/access.log | grep "/admin" | sort | uniq -c

Windows服务器日志分析

Windows服务器通常使用IIS(Internet Information Services)作为Web服务,日志默认存储在%SystemDrive%inetpublogsLogFiles目录下,按日期命名(如exyymmdd.log)。

可通过以下步骤查看访问IP:

  • 使用记事本或文本编辑器:直接打开日志文件,IP位于每行日志的起始位置(如168.1.100, - , - [01/Oct/2023:12:00:00 +0800] "GET /index.html HTTP/1.1" 200 1024)。
  • 使用PowerShell命令:批量提取并统计IP访问量: Select-String -Path "C:inetpublogsLogFilesW3SVC1ex231001.log" -Pattern "^d+.d+.d+.d+" | ForEach-Object { $_.Matches[0].Value } | Sort-Object | Group-Object | Sort-Object Count -Descending

    此命令会匹配日志中的IP地址格式,并统计每个IP的出现次数,结果按访问量降序排列。

使用命令行工具实时监控访问IP

对于需要实时监控服务器访问场景的场景,通过命令行工具动态追踪IP更为高效。

Linux系统工具

  • netstat:结合grep过滤HTTP/HTTPS端口(80/443),查看当前活跃的访问IP:

    netstat -an | grep ":80 " | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

    此命令会显示当前通过80端口连接服务器的IP及其连接数。

    如何查看服务器真实访问IP及来源地域? 第2张

  • lsof:查看指定端口的进程详情及访问IP:

    lsof -i :80 | grep "ESTABLISHED" | awk '{print $9}' | cut -d: -f1 | sort | uniq

    此命令仅显示已建立连接的访问IP,适用于分析活跃用户。

Windows系统工具

  • netstat(与Linux类似,但参数略有差异):

    注意:Windows默认未安装awk,可使用PowerShell或for循环替代。

  • Get-NetTCPConnection(PowerShell专属命令):

    Get-NetTCPConnection -LocalPort 80 | Select-Object RemoteAddress, State, Count | Group-Object RemoteAddress | Sort-Object Count -Descending

    此命令会统计通过80端口连接的IP及其连接状态,适合Windows Server 2012及以上版本。

    如何查看服务器真实访问IP及来源地域? 第3张

  • 通过可视化工具分析访问IP

    对于需要长期分析或非技术人员操作的场景,可视化工具能更直观地呈现IP访问数据。

    ELK技术栈

    ELK(Elasticsearch、Logstash、Kibana)是业界主流的日志分析平台,可集中收集、存储并可视化服务器日志:

    • Logstash:采集服务器日志文件,解析出IP、时间、请求路径等字段,并传输至Elasticsearch。
    • Elasticsearch:存储日志数据,并提供强大的搜索与聚合功能。
    • Kibana:通过可视化仪表盘(Dashboard)展示IP访问趋势、地域分布、高频IP排行等。

      在Kibana中创建仪表盘,可设置“访问IP Top 10”图表,实时监控异常IP。

    AWStats(Advanced Web Statistics)

    AWStats是一款开源的日志分析工具,支持Apache、Nginx等服务器,可生成HTML格式的分析报告,内容包括:

    • 访问IP数量及独立IP数;
    • 每个IP的访问次数、浏览量、停留时间;
    • IP所属国家/地区(需结合IP地理数据库)。

      安装AWStats后,通过配置日志路径和生成命令,即可在Web界面查看详细报告。

    IP地理定位与异常行为识别

    获取访问IP后,进一步分析其地理位置和行为特征,可提升安全防护效率。

    IP地理定位

    可通过第三方API或本地数据库实现IP地理定位:

    • 在线工具:如IPinfo、IP2Location等,输入IP即可获取国家、城市、运营商信息。
    • 命令行工具:mmdblookup(结合MaxMind GeoIP数据库): mmdblookup --file /usr/share/GeoIP/GeoLite2-City.mmdb --ip 8.8.8.8

      此命令会返回IP的详细地理位置信息,适用于批量分析异常IP的来源。

    异常行为识别

    结合IP的访问频率、请求路径、User-Agent等信息,可识别异常行为:

    • 高频访问IP:短时间内频繁请求(如每秒超过100次),可能是爬虫或分布攻破;
    • 敏感路径访问:频繁访问/admin、/wp-login.php等后台页面,疑似暴力免费;
    • 异常User-Agent:如curl、python-requests等非浏览器标识,可能是自动化脚本。

      针对异常IP,可通过防火墙(如iptables、Firewalld)或WAF(Web应用防火墙)进行封禁。

    服务器访问IP的查看与分析是运维工作的基础,无论是通过日志文件、命令行工具还是可视化平台,均可高效获取IP信息,结合IP地理定位和异常行为识别,管理员能及时应对安全威胁,优化资源配置,在实际操作中,需根据服务器类型(Linux/Windows)、业务需求(实时监控/长期分析)选择合适的方法,并定期清理日志、更新IP数据库,确保分析的准确性和时效性,通过系统化的IP管理,可显著提升服务器的安全性与稳定性,为业务的持续运行提供坚实保障。

0