hostsを書き換えずに任意のドメインに任意のIPアドレスでWebアクセスする

目次

はじめに

当社のエンジニアブログではテスト環境や公開前のWebサイトなど、普通にDNSを使ってWebアクセスできない場合に、PCのhostsファイルを書き換えて任意のIPアドレスで名前解決できるようにする方法がいろいろ紹介されています。

でも、自分の自由になるPCなら良いですけど、稼働中のサーバやセキュリティポリシーでhostsの書き換えができない場合もありますよね。

そこで、curl コマンドを使ってhostsを書き換えることなくコマンドラインオプションだけで任意のドメインに任意のIPアドレスでWebアクセスする方法を紹介します。

環境

OS : AlmaLinux 8.9
curlバージョン : 7.61.1

書式

HTTPS、HTTPいずれにも対応しており、以下のように「--resolv」オプションでFQDNとポート番号、IPアドレスを指定します。

$ curl https://ここにFQDN --resolv ここにFQDN:ここにポート番号:ここにIPアドレス

$ curl https://www.example.com/ --resolv www.example.com:443:192.168.120.32

注意

「https://~」で指定したFQDNと「--resolv ~」で指定したFQDNが一致していなくてもエラーになりませんが、その場合は普通に「https://~」で指定したFQDNが名前解決されてcurlコマンドが実行されるので期待した動作になりません。

「https://~」で指定するFQDNと「--resolv ~」で指定するFQDNが一致するようタイプミスに注意して下さい。
特に「--resolv ~」で指定するFQDNのTLDの後ろに余計なピリオドが付いているのを見逃すことが多いです。

参考

なお、curlコマンドについては「Linux便利コマンド : curl」でも解説しているの合わせてご参照ください。

Windowsの場合

Windowsの場合はWSL(Windows Subsystem for Linux)で任意のLinuxディストリビューションと組み合わせることで、curlコマンドも使うことできる場合が多いです。
WSLでLinuxコマンドを使えるようにする方法については「Windowsでdigコマンドを使う方法」を参考にして下さい。

ぜひ、curlコマンドの--resolvオプションを活用してみてください。