连接被拒绝或超时
Coddy 使用终端进行网络通信 课程的第 18 课,共 47 课。
连接失败时,通常会以几种特定方式之一失败,每种方式都指向不同的问题。curl 会通过退出码报告失败类型。退出码是命令运行后留下的数字,可以通过 $? 查看。
curl -s http://127.0.0.1:9999/
echo $?有三个值得记住:
- 0:成功
- 7:连接被拒绝,机器响应了,但表示没有服务在该地址监听
- 28:超时,完全没有收到响应
7 很快,28 很慢,这种差异就是诊断依据。连接被拒绝意味着你联系到了机器,并得到了明确的拒绝,因此地址正确,但服务没有运行。超时意味着你的请求消失了,这通常表示防火墙丢弃了请求,或者地址错误。
挑战
困难让两次请求都失败,并读取退出码。
- 向
http://127.0.0.1:9999/请求页面,此处没有服务在监听,然后打印refused=,后面跟上退出码 - 使用
--max-time 2,对http://10.255.255.1/(一个会吞掉流量的地址)执行相同操作,然后打印timeout=和它的退出码
预期输出:
refused=7
timeout=28
$?保存刚刚运行的命令的退出码,所以要立即读取它。
亲手试试
终端
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
使用终端进行网络通信中的所有课
自己练习: Terminal 在线编辑器