openvpn 服务器未使用 tcpdump 显示流量

emt*_*mte 0 routing openvpn tcpdump

我有一个 OpenVPN 服务器和两个客户端,

我可以互相 ping 客户端,但是当我这样做时,我在服务器上看不到任何使用 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
Run Code Online (Sandbox Code Playgroud)

TCP 转储

但我从 tcpdump 中看不到任何内容:

0 packets captured
0 packets received by filter
0 packets dropped by kernel
Run Code Online (Sandbox Code Playgroud)

虽然如果我直接 ping 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
Run Code Online (Sandbox Code Playgroud)

如何在服务器上捕获客户端间的通信数据包?

Nik*_*nov 5

如果使用client-to-client选项,则无法使用 tcpdump 查看它。在这种情况下,OpenVPN 不会将任何流量转发到内核。它接收数据包,对其进行处理并将其发送到另一个客户端,但由于它既不是发往服务器系统的,也不是通过服务器系统路由的,因此无需将其发送到设备tun

您可以使用管理控制台和高详细级别 (6) 查看流量是否在 OpenVPN 内部:

在服务器配置文件中:

...
management localhost 7505
...
Run Code Online (Sandbox Code Playgroud)

使用:

$ 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
$
Run Code Online (Sandbox Code Playgroud)

(在这种情况下,我不得不盲目地写“注销”,因为输出完全受到实时日志的干扰。我在繁忙的服务器上这样做了。但无论如何它都有效。)

man openvpn详情请参阅。请注意,如果使用的话,所有内容也会到达服务器日志文件,并且对于大量流量,将会有非常大的日志。据我所知,您甚至可以以十六进制形式记录数据包数据。