已排除使用ping命令,想要用curl命令测试端口,过滤返回内容包含Connected的字段即为网络通的,该如何用怎么的命令过滤?
curl -s 127.0.0.1:80 | grep -v "Connected"
-s选项会禁止curl显示进度条和错误信息。
-v选项表示grep使用反向选择,过滤掉匹配的行。所以,依次测试各个需要的网络端口,如果返回为空则网络正常,否则未连通。例如:
# 检查80端口
curl -s 127.0.0.1:80 | grep -v "Connected"
# 检查22端口
curl -s 127.0.0.1:22 | grep -v "Connected"
# 检查3306端口
curl -s 127.0.0.1:3306 | grep -v "Connected"
另外,也可以直接检查网络设备或网卡的连接状态,如:
# 检查eth0网卡链接状态
ip link show eth0 | grep "state UP"
# 检查wlan0无线网卡链接状态
iwconfig wlan0 | grep "Access Point: "
curl -s telnet://<IP>:<PORT> | grep Connected