Linux curl,竟然不知道还有这种用法(resolve)

我们经常会遇到这样一种场景:某一个服务更换了 IP,或者部署在多个服务器上,或许还使用了 CDN。我只是想临时测试一下某个 IP,如果直接修改 DNS 解析或者修改 CDN 回源地址,可能会影响到用户的访问(万一这个 IP 就是有问题呢?),有没有别的办法可以达成这个目的?

假设我想访问 http://datapixxxx.cn 这个域名,并且指定解析的 IP 地址为 1.1.1.1。

你可能会觉得这个问题很简单,添加一条 hosts 不就行了嘛:

 

OK,这个方法没问题,但你可能需要刷新本地 DNS 缓存,或者需要在浏览器中强制刷新。当你测试完了之后,还得能想起来去删掉这条 hosts。

大多数情况下我们都是用 curl 来测试服务,你可以选择修改 /etc/hosts 来达到目的,但这种方法总归比较麻烦,如果能在 curl 的命令中直接指定域名的 IP 地址,那就更好了。

大部分人熟知的方法是覆盖 Host HTTP Header:

这个方法在很长一段时间里都是百分之百有效的,但如今是 HTTPS 的世界,这种方法在 HTTPS 的世界里会出现各种问题。今天我将告诉大家一个新的参数 --resolve

利用这个参数,我们可以随心所欲地指定域名解析的 IP,不管是 HTTP 还是 HTTPS。例如:

 

还有更高级的用法,比如使用 * 作为通配符,这样请求中调用的所有 Host 都会转到你指定的 IP:

$ curl https://datapixxxx.cn/ --resolve *:443:1.1.1.1

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值