请求不通时候排查网络原因使用的命令,略作记录。文中测试地址以www.baidu.com为例
1.ping命令
ping命令可以用来测试ip是否通
ping IP地址或者域名
如上图百度是可以ping通的,访问正常。它会不断的接收数据包,直到用户按ctrl+c中断
2.telnet命令
telnet命令一般用来检查一个地址的某个端口是否可以连通
telnet IP地址或者域名 端口
如上图百度的80端口可以连通
如上图,一直显示trying,表示百度是8832端口是无法连通的
3.curl命令
我个人比较喜欢用curl命令,因为curl是一个向服务器传输数据的工具,支持http、https、ftp、ftps、scp、sftp、tftp、telnet等协议。
简单一点测试连通性的命令
curl www.baidu.com #能查看到网页的源码,表示可以连接成功
curl www.baidu.com > /home/baidu.html #下载网页文件保存在/home/baidu.html
也可以带一些参数传过去
curl www.baidu.com/user/update?id=15&name=wangwu # get请求
curl -d 'id=15&name=wangwu' www.baidu.com/user/update # post请求
curl默认的是get请求方式,如果用其他请求方式可以附加 -X 请求方式,如
curl -X POST www.baidu.com # post请求
curl -X DELETE www.baidu.com # delete请求
curl -X PUT www.baidu.com # put请求
curl -H "Content-Type:application/json" -X POST --data '{"id": "1", "name": "wangwu"}' www.baidu.com #json格式参数的post请求
其他参数说明
-v 显示一次http通信的整个过程,包括端口连接和http request头信息
-i 显示http response的头信息,连同网页代码一起
-I 显示http response的头信息
-L 如果www.baidu.com会自动跳转到页面A,则curl到页面A
–user name:password www.baidu.com http认证
4.wget命令
wget是下载文件的命令, 能下载也就表示能连通咯
wget www.baidu.com
如果能返回200的状态码,则表示可以连通,能下载成功
其他说明
若被测url地址是https://IP地址的,则curl或者wget命令都可能会因为证书和域名不匹配的原因无法连通的哟(取决于服务器SSL证书的配置)。这样的情况可以考虑配置host指向,在被测服务器的hosts文件里面配置一行IP 英文域名
,然后通过curl 英文域名
进行连通性测试。