Mar*_*ria 3 command-line networking
我知道netstat,ncat,tcpdump和其他一些工具,显示所有连接,但我应该使用什么样的工具,如果我想看到一个特定的服务器建立了特定的连接?
例如:我www.google.com port 80从一个简单的 Web 客户端连接到;我需要一个只显示我与"www.google.com port 80".
您需要解析netstat. 在我的系统上,netstat列出主机时不显示字符串“Google”。因此,netstat -t | grep -i Google您需要查找主机名,而不是简单地使用。就像是:
$ sudo netstat -tn | awk '/EST/{print $5}' | sed 's/:.*//' |
while read ip; do
whois $ip | grep -qi google && echo "$ip";
done
173.194.67.189
74.125.140.105
216.58.209.5
Run Code Online (Sandbox Code Playgroud)
sudo netstat -tn: 运行netstat只显示 tcp 连接 (-t) 和数字 IP ( -n);awk '/EST/{print $5}':如果该行匹配,则打印第 5 个字段(IP)EST(仅显示已建立的连接);sed 's/:.*//' : 去掉端口,只留下IP;while read ip; do ...; done : 遍历找到的每个 IP;whois $ip | grep -qi google: 查找 IP 并在输出中搜索google. 这-i意味着不区分大小写的搜索和-q抑制输出。&& echo "$ip": 如果grep成功,打印这个IP。