我正在尝试通过查看数据包来debugging一些数据包,并且希望避免将所有SSH通信传送到服务器。 有没有办法忽略?
我试图做一些像tshark -f "port !22"但是在命令后停止监听。
[root@vpn ~]# tshark -f "port !22" tshark -f "port ls" Running as user "root" and group "root". This could be dangerous. Capturing on venet0 tshark: arptype 65535 not supported by libpcap - falling back to cooked socket. tshark: Invalid capture filter: "port ls"! That string isn't a valid capture filter (unknown port 'ls'). See the User's Guide for a description of the capture filter syntax. 0 packets captured [root@vpn ~]#
tshark和tcpdump都使用pcap库,所以捕获filter使用pcap-filter语法 。 你想要的filter是@tristan所说的"not port 22" 。 您可以将其input为-f选项的带引号的string参数,或者作为该命令的不带引号的参数input。 以下命令是等效的:
# tshark -f "not port 22" # tshark -- not port 22
tshark抱怨你的命令的原因是你的shell(可能是Bash)在你的命令历史中扩展了“!22”到命令22,在这种情况下它是“ls”。 Bash文档有更多关于历史扩展的信息。
我目前没有访问tshark的安装,但是假设它和tcpdump是一样的:
sudo tcpdump not port 22
所以可能:
tshark not port 22