自定义域名解析地址

--resolve选项可以自定义域名解析,就好象是hosts文件的另一个版本。该选项的值格式为主机名:端口:解析地址[, ...]。注意需要指定端口,当在一个curl命令中请求多个URL,它们主机名相同但端口不同,也需要针对每个端口分别指定解析规则。

让我们把localhost指定解析为127.0.0.2

$ curl -v --resolve localhost:8080:127.0.0.2 http://localhost:8080
* Added localhost:8080:127.0.0.2 to DNS cache
* Hostname localhost was found in DNS cache
*   Trying 127.0.0.2:8080...
* Connected to localhost (127.0.0.2) port 8080
* using HTTP/1.x
> GET / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/8.10.1
> Accept: */*
(略)

可以看到,自定义解析已经成功,localhost被解析到127.0.0.2,而请求中的主机头依旧和原始URL相同,即Host: localhost:8080