我想记录 Mac OS X 服务器上的所有网络流量(就像 tcpdump 那样),但包括负责进程的 ID。使用 lsof 只给我当前的连接,而不是过去的连接。
有没有办法做到这一点?
问候, 乔亨
我们正在为在云中运行的一些服务器设置 OpenVPN 服务器。我们被一个连接问题难住了,VPN 服务器的 LAN 上的主机可以 ping te VPN 客户端,但反之则不然。
VPN 客户端可以在其 VPN 地址上 ping VPN 服务器,但不能在其 LAN 地址上 ping 通。
tcpdump 显示来自客户端的 ping 数据包到达主机并发出回复的证据,但由于某种原因,回复从未到达 VPN 服务器或客户端上的 tun0 接口。相反,根据 tcpdump,从 VPN 服务器的 LAN 到 VPN 客户端的 ping 请求的流量在所有预期的接口上都可以看到。
下面给出了我们迄今为止的配置和故障排除的详细说明。
该问题似乎与从服务器网络上的地址转发回客户端网络有关。真正奇怪(对我而言)是 LAN 发起的 ping 可以进行完整的往返,但是客户端发起的 ping 似乎在 VPN 服务器的 tun0 和 eth1 接口之间的某个地方被丢弃。
我们缺少什么?
3台主机:
两台服务器都是虚拟机,运行 RHEL 5.7。我认为(但不完全确定)虚拟主机环境是 VMWare。
我们最近在我们的网络上设置了一个新的 Ubuntu 12.04LTS 服务器。它没有完全配置所以它没有做太多超出sshd和默认值apache2安装的。但今天晚上它似乎坠毁了。它没有响应网络或键盘。但最糟糕的是,它关闭了整个网络。
我对 OSI 第 3 层之下的网络堆栈的了解非常有限,所以其余的让我感到困惑。当这台机器物理连接到网络时,没有其他机器可以连接到外部互联网。当事情出问题时,运行arp显示我们网关的 IP 地址 ( 10.0.1.1) 被列为“无效”。将服务器从网络上拔下可以解决问题,然后重新插上又会破坏它。那么崩溃的服务器是在宣传自己拥有网关的 IP 地址吗?
有什么都在syslog期间,当这是造成问题的时间。关于如何找出出了什么问题或我们可以做些什么来防止它再次发生的任何想法?我什至犹豫是否现在将机器重新连接到网络上。
**** 更新 ****
它再次崩溃,我跑tcpdump -penn arp了几分钟(感谢巴哈马特!)并得到了这个......(删除了时间戳和重复的行)
00:1e:65:f8:dc:24 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Request who-has 10.0.1.1 tell 10.0.2.191, length 46
00:1e:65:f8:dc:24 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Request who-has 10.0.1.44 tell 10.0.2.191, length 46
60:d8:19:d4:71:d6 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 60: Request who-has 10.0.1.1 tell 10.0.2.125, length 46
d4:9a:20:04:e9:78 …Run Code Online (Sandbox Code Playgroud) 我正在调试一个问题,其中两个服务器在相互通信时陷入循环。服务器重新启动后,问题将在某个时间点开始,可能是一小时或一天。我想在问题开始时 tcpdump 流量,以便我可以找出导致它发生的原因。
我的计划是重启服务器,然后让 tcpdump 捕获流量,然后分析结果。但是,我希望 tcpdump 在捕获了几千个数据包后停止以避免监视它,因为我不知道流量何时开始。
有人有建议吗?
我有一台服务器从交换机上的镜像端口接收流量。连接到此镜像端口的接口处于 promisc 模式。当我在接口上只使用一个简单的捕获所有 tcpdump 时,比如
tcpdump -nn -i eth1
Run Code Online (Sandbox Code Playgroud)
我看到了大量的流量。我什至可以针对某些内容(例如端口 443)进行 grep。
tcpdump -nn -i eth1 | grep 443
Run Code Online (Sandbox Code Playgroud)
显然,这显示了任何包含 443 的内容,而不仅仅是端口 443。我已经目视检查了它,我确实看到了这样的东西:
15:08:08.112550 IP 12.34.56.78.1430 > 87.65.43.21.443: . ack 35124 win 32768
Run Code Online (Sandbox Code Playgroud)
但我只想要端口 443 所以...
tcpdump -nn -i eth1 port 443
...
0 packets captured
Run Code Online (Sandbox Code Playgroud)
奇怪的。当我使用过滤器时,我没有看到任何流量。我尝试过“ip 端口”、“dst 端口”和其他一些过滤器。我也尝试过按 IP 而不是端口过滤。没有。
eth1 Link encap:Ethernet HWaddr 00:24:81:A5:AD:7A
inet6 addr: fe80::224:81ff:fea5:ad7a/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:4114781478 errors:0 dropped:1 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 …Run Code Online (Sandbox Code Playgroud) 我正在 Ubuntu 16.04 上运行 StrongSwan (U5.3.5/K4.4.0-62-generic) VPN 服务器。
通常,当我想检查服务器上的流量时,我只需运行如下所示的命令:
tcpdump -ni eth0 "tcp port 80" -w log.pcap
但在 VPN 服务器上它对我没有太大帮助。我只捕获“常规”流量,没有 IPSEC 流量。我想这是因为 IPSEC 在 TCP 下面运行一层。但我仍然想捕获一些数据包以在 Wireshark 上进行检查。
我怎样才能做到这一点?
我只是在直接连接到提供程序的 linux 服务器上执行 tcpdump ,大约每秒钟半会有这样一行:
00:19:49.926700 00:15:C6: ::**(OUI未知)> 01:00:0C:CC:CC:CD(OUI未知)SNAP无编号,UI,标志[命令],长度为50(第二半发布时已加星标的 MAC)
这可以是什么?这是否会以任何方式破坏网络(用于 VOIP)或表明存在其他问题?
我有一台带有两个 NIC 的服务器,我只想打开那些eth1正在使用的端口。
题
如何tcpdump告诉我正在访问的端口号eth1?
我们通过 Internet 连接到端口 80 上的一台远程服务器无法正常工作。(有时它起作用,有时不起作用)
它一定是某种丢包,因为从其他客户端没有问题。它只是从一个客户端到远程服务器发生。
通常,我会通过 ping 来解决丢包问题,但是远程服务器阻止了 ICMP。
我制作了一个二进制 TCPDUMP 文件。如何查看是否有丢包?
捕获是在客户端上完成的。我们没有远程服务器的 ssh 访问权限。
有什么方法可以查看我的 apache 网络服务器接受的传入流量使用的主机名吗?
例如,假设网络服务器设置为处理 IP 地址的传入流量,但网络服务器可以接受多个主机名,例如:
www.mydomain.com mydomain.com myotherdomain.com 等
我需要查看其他人用来成功进入我的网络服务器的主机名。
原因是我有一些软件可以自动生成一些流向我的网络服务器的流量,我需要知道它使用的主机名,以便我可以正确设置 Apache 的 httpd.conf 文件的虚拟主机以正确接收它。
tcpdump 可以配置为查看网络流量并提取此主机名吗?还是线鲨?在我看到的所有示例中,包括 Apache 的 access_log 文件,只有 IP 地址,没有主机名。但是,我需要 httpd.conf 的 VirtualHost 内容的主机名信息。希望这是有道理的。
tcpdump ×10
linux ×3
networking ×2
apache-2.2 ×1
arp ×1
firewall ×1
ip ×1
ipsec ×1
iptables ×1
lsof ×1
mac-osx ×1
openvpn ×1
ping ×1
strongswan ×1
tcp ×1
ubuntu-12.04 ×1
web-server ×1
wireshark ×1