Linux服务器测试网络连通性
场景:由于服务器是自动化安装,在安装过程中我把APIGATEWAY地址填写错误(它有两个浮动ip在不同的网络平面),最后导致服务一直访问不了外网和内部其他服务,把自己深深的坑了一把。
如何测试网络的连通性
1、curl -I -X GET https://www.baidu.com 如果返回码是200 则该服务器可以正常访问,否则下一步。
此处有个坑请注意:如果你的DNS服务器可以对IPv4和IPv6都解析,但由于你curl命令没指明怎么解析会导致访问随机性不通!!
curl -I -4 -X GET https://www.baidu.com # -4 使用IPv4解析,curl命令详情请搓这里。
2、ping baidu.com 如果不能正常解析出IP则说明host服务器有问题,如果能正常解析出IP,先检查IP是否正确,如果不正确像我一样自裁吧,如果IP正确但ping不通,请检查网络。
此处有两个坑请注意:
1)如果你的服务和你要访问的服务在不同网络平面,设计上就是禁止访问,但如果需要访问则需要注册到APIGATEWAY上。ps:所以你如果填错了会导致注册不上,DNS注册错误。
2)如果注册到APIGATEWAY上失败,也会导致404错误。
3、如果你访问的服务需要带token访问,则正常返回码为403(无权限访问),而不是404(找不到该服务)
此处有个坑请注意:如果你的鉴权是另一个服务的工作,那两个服务的服务器时间设置不一致会导致token失效。
学而不思则罔,思而不学则殆