温馨提示×

linux日志中如何找ip

小樊
49
2026-09-02 10:24:58
栏目: 智能运维

在 Linux 日志中查找 IP 地址,常见方法和实用命令如下:


一、基础查找(grep)

1. 查找包含某个 IP 的日志

grep "192.168.1.100" /var/log/messages

2. 在多个日志文件中查找

grep -r "10.0.0.5" /var/log/

3. 忽略大小写

grep -i "192.168" /var/log/nginx/access.log

二、查找所有 IP 地址(正则)

1. 提取 IPv4 地址

grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' /var/log/nginx/access.log

2. 精确匹配合法 IPv4(推荐)

grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/nginx/access.log

三、统计 IP 出现次数

1. 统计访问最多的 IP(Web 日志常用)

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

2. 统计包含 IP 的日志行数

grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/messages | sort | uniq -c | sort -nr

四、常见日志场景示例

1. Nginx / Apache 访问日志

# 查看某 IP 的访问记录
grep "203.0.113.45" /var/log/nginx/access.log

# 查看访问最多的前 10 个 IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head

2. 安全排查(SSH 暴力破解)

grep "Failed password" /var/log/secure
grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' /var/log/secure | sort | uniq -c | sort -nr

3. 实时查看日志中的 IP

tail -f /var/log/nginx/access.log | grep --line-buffered -oE '([0-9]{1,3}\.){3}[0-9]{1,3}'

五、结合工具(进阶)

1. 使用 journalctl

journalctl | grep "192.168"

2. 使用 awk 精准提取

awk '/192\.168\.1\./ {print}' /var/log/messages

如果你能告诉我:

  • 使用的是 哪种日志(nginx、ssh、系统日志等)
  • 想 找特定 IP 还是 统计 IP

我可以给你更精确的命令。

0 踩