我有一个OpenVPN服务器和两个客户端,
我可以相互交换客户端,但是当我这样做时,我看不到服务器上使用tcpdump的任何数据包。
运行在192.168.0.1
我试着用tcpdump -i tun0 icmp --immediate-mode -l -n捕捉流量
运行于192.168.0.2
我可以通过ping client2 ping 192.168.0.3来解决以下问题:
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=128 time=32.4 ms但我从tcpdump看不见任何东西:
0 packets captured
0 packets received by filter
0 packets dropped by kernel尽管我直接将openvpn服务器平平( ping 192.168.0.1 ),但我可以看到在那里捕获的数据包:
18:05:04.022747 IP 192.168.0.2 > 192.168.0.1: ICMP echo request, id 5, seq 5, length 64
18:05:04.022801 IP 192.168.0.1 > 192.168.0.2: ICMP echo reply, id 5, seq 5, length 64如何捕获服务器上的客户端通信数据包?
发布于 2021-02-06 19:31:45
如果使用client-to-client选项,就无法在tcpdump中看到它。在这种情况下,OpenVPN不向内核转发任何通信量。它接收一个数据包,对其进行处理并发送到另一个客户端,但是由于它不是以服务器系统为目的地,也不是通过它路由的,所以不需要将它发送到tun设备。
通过使用管理控制台和高度详细的级别(6),可以查看OpenVPN内部是否存在流量:
在服务器配置文件中:
...
management localhost 7505
...使用:
$ telnet localhost 7505
...
>INFO:OpenVPN Management Interface Version 1 -- type 'help' for more info
log on
SUCCESS: real-time log notification set to ON
verb 6
SUCCESS: verb level changed
>LOG:1612639797,D,XXXX/XXX.XXX.XXX.XXX:XXXXX UDPv4 READ [XXX] from [AF_INET]XXX.XXX.XXX.XXX:XXXXX (via [AF_INET]XXX.XXX.XXX.XXX%XXX): P_DATA_V2 kid=2 DATA len=XXX
>LOG:1612639797,D,XXXX/XXX.XXX.XXX.XXX:XXXXX TUN WRITE [XXX]
>LOG:1612639797,D,XXXX/XXX.XXX.XXX.XXX:XXXXX TUN READ [XXX]
>LOG:1612639797,D,XXXX/XXX.XXX.XXX.XXX:XXXXX UDPv4 WRITE [XXX] to [AF_INET]XXX.XXX.XXX.XXX:XXXXX (via [AF_INET]XXX.XXX.XXX.XXX%XXX): P_DATA_V2 kid=2 DATA len=XXX
...
log off
SUCCESS: real-time log notification set to OFF
verb 3
SUCCESS: verb level changed
exit
$(在这种情况下,我不得不盲目地注销“注销”,因为实时日志完全干扰了输出。我在繁忙的服务器上做过这件事。但它还是起了作用。)
详情请参见man openvpn。注意,如果使用了服务器日志文件,那么所有内容都将到达服务器日志文件,对于大量的流量,将有非常大的日志。AFAIK您甚至可以以十六进制的形式记录数据包数据。
https://serverfault.com/questions/1052645
复制相似问题