You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Wireshark实现Ubuntu服务器极简连接监控的需求问询

基于Wireshark实现Ubuntu服务器极简连接监控的需求问询

Hey,我太懂你这种想要“日志越无聊越安心”的心态了——就想确认自己Ubuntu服务器上的连接全是来自你那几个常用地点,没什么乱七八糟的陌生IP对吧?给你几个零门槛的轻量方案,完全满足你的极简日志需求:

方案1:用tcpdump快速生成极简连接日志(无需额外安装)

tcpdump是Ubuntu系统默认自带的抓包工具,直接就能抓取连接建立的关键包,只保留最核心的IP和时间戳信息:

sudo tcpdump -i any -n -t 'tcp[tcpflags] & tcp-syn != 0' >> ~/server_conn_log.txt

参数小说明:

  • -i any:监听服务器所有网络接口,不会漏过任何连接请求
  • -n:不解析域名,直接显示原始IP,让日志更简洁
  • -t:只保留精准时间戳,去掉冗余的格式信息
  • tcp[tcpflags] & tcp-syn != 0:只抓连接建立的初始SYN包,避免重复记录已维持的连接,让日志更轻量化

之后直接打开~/server_conn_log.txt,就能看到每条连接的时间戳和来源IP,一眼就能判断有没有陌生IP混入。如果只需要监控特定服务(比如SSH的22端口),可以在命令末尾加and dst port 22来精准过滤。

方案2:用iptables配置系统级持久日志(可精准过滤已知IP)

如果想要系统自动帮你记录,还能只追踪你已知的IP连接,可以用iptables来配置:

  1. 先添加规则,给你的常用IP连接打上专属日志标记(比如你的常用IP是192.168.1.100和203.0.113.45):
sudo iptables -A INPUT -s 192.168.1.100 -j LOG --log-prefix "MY_SAFE_CONN: " --log-level info
sudo iptables -A INPUT -s 203.0.113.45 -j LOG --log-prefix "MY_SAFE_CONN: " --log-level info
  1. 查看专属日志的话,直接用关键词过滤系统日志即可:
sudo grep "MY_SAFE_CONN" /var/log/syslog

这样日志里只会显示你那几个已知IP的连接记录,要是有陌生IP尝试连接,也会在/var/log/syslog里留下痕迹,随时能排查。

方案3:自定义脚本生成规整格式日志(定时自动记录)

如果你想要更统一的日志格式,比如每行都是[YYYY-MM-DD HH:MM:SS] 来源IP,可以写个超简单的bash脚本,再配合cron定时自动记录:

  1. 创建脚本文件~/conn_logger.sh:
#!/bin/bash
# 记录当前已建立连接的唯一来源IP,格式规整统一
current_time=$(date '+%Y-%m-%d %H:%M:%S')
# 提取已建立连接的来源IP并去重
conn_ips=$(netstat -ntu | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq)
# 将时间戳和IP逐一写入日志
for ip in $conn_ips; do
    echo "[$current_time] $ip" >> ~/simple_conn_log.txt
done
  1. 给脚本添加执行权限:
chmod +x ~/conn_logger.sh
  1. 配置cron定时任务(比如每分钟自动记录一次):
    执行crontab -e,在文件末尾添加:
* * * * * ~/conn_logger.sh

之后打开~/simple_conn_log.txt就能看到格式统一的连接记录,扫一眼就能确认是不是只有你那几个已知IP,完全符合你想要的“无聊又放心”的状态!

备注:内容来源于stack exchange,提问作者Bradshaw Lupton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 13:20:32