查看进入我的 Linux VPS 的所有 IP

查看进入我的 Linux VPS 的所有 IP

我在 linode.com 上托管一个 Web 服务器,我想查看所有进入我的 nginx Web 服务器的传入连接。我运行的是 Ubuntu 系统,但似乎找不到类似的东西。我不知道 nginx 是否内置了类似的东西。为了继续清除一些我不想做的选项,我会将它们记录在某种数据库中。谢谢您的帮助!

答案1

您应该监视 nginx 的访问日志,您可以在那里看到所有传入的 Web 请求连接。有一个 httplogmodule,您可以查看它是否在您的配置中启用,否则您可以启用它。有关 nginx httplogmodule 的更多详细信息,请参阅此处。http://wiki.nginx.org/HttpLogModule#access_log

访问日志路径应定义如下,以便您可以看到文件的位置。

access_log /spool/logs/nginx-access.log gzip 缓冲区=32k;

如果上面是访问文件的路径,就可以通过tail命令进行监控。

# tail -f /spool/logs/nginx-access.log

答案2

我不明白你的问题,你想记录吗?还是不想记录?

如果你不想登录

如果你只是想要快速概览已连接的 IP,你可以使用

netstat -atun | grep -E ":(80|443)" | awk '{print $5}' | cut -d: -f1 | sort -u -k1,1

如果你想知道 IP 的连接数,你可以使用

netstat -atun | grep -E ":(80|443)" | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n

如果你想登录

您可以使用 IP 表(日志将是/var/log/messages/var/log/syslog

iptables -A INPUT -p udp --dport 80 -j LOG
iptables -A INPUT -p udp --dport 443 -j LOG

你可以使用 Nginx 本身,参见http://wiki.nginx.org/HttpLogModule

access_log /var/log/nginx-access.log;

相关内容