curlコマンドは、「URLを利用してデータを取得・送信するツール」です。
RHEL環境におけるネットワーク操作や障害調査、サーバ運用など、以下のように工夫次第で多くの場面で役立つ便利な機能が豊富にあります。
特に、HTTP/HTTPSをはじめとした多くの通信プロトコルをサポートし、コマンドラインで簡単に疎通確認やデータ転送が可能です。
- 疎通確認(HTTP/HTTPSやポートの応答チェック)
- ファイルのダウンロード・アップロード
- API通信のテストやデバッグ障害調査(DNSやSSL/TLSの問題検証)
- 自動化スクリプトへの組み込み
この記事では、curlコマンドの便利な使い方をわかりやすく解説します。
便利な使い方10選
1.ファイルダウンロード(curl -O)
目的
指定したURLからファイルをダウンロードします。
利用シーン
必要なファイルを取得したい場合に役立ちます。
このオプション(-O)をはずすと標準出力(画面)にファイルの内容が表示されます。
curl -O http://www.yourdomain.com/index.html
■実行結果
2.ファイルのアップロード(curl -F)
目的
ローカルファイルをサーバーにアップロードします。
利用シーン
フォームデータのテストやアップロード機能の確認ができます。
curl -F "file=@memo.txt" http://www.yourdomain.com/upload.php
アップロードしたいファイル名を「"file=@<ファイル名>"」で指定します。
■実行結果
サーバ側
クライアント側
3.プロキシ経由の通信(curl -x)
目的
プロキシを利用した通信経路のテストを行います。
利用シーン
プロキシサーバーを介した接続設定の確認ができます。
curl -x 172.16.81.185:3128 https://isleofhoso.com
プロキシサーバの指定形式は、「<IPアドレス>:<tcpポート番号>」となります。
■実行結果
4.非標準ポートへの接続(curl <URL>:<ポート番号>)
目的
特定ポートを使ったサーバー接続を確認します。
利用シーン
カスタムポートで動作するサービスのテストを行います。
curl http://example.com:8000/todos
example.comへアクセスするには「TCP8000」のポート番号で接続する必要があります。
■実行結果
5.HTTPリクエストとレスポンスのデバック(curl -v)
目的
詳細なHTTPリクエストおよびレスポンスを確認します。
利用シーン
HTTP通信の動作を詳しく調査したい場合に利用します。
curl -v http://example.com:8000/todos
■実行結果
【有】-vオプション
【無】-vオプション
6.TCPポートの接続確認(curl telnet://)
目的
サーバーの指定ポートが開いているか確認します。
利用シーン
トラブルシューティングやポートの状態確認で利用します。
curl -v telnet://example.com:22
-vオプションと併用して利用することが多く「curl -v telnet://<アクセス先>:<ポート番号>」と指定して接続確認を行います。
■実行結果
7.SSL証明書の検証回避(curl -k)
目的
HTTPSリクエストを送信する際に SSL証明書の検証を無効化するために使用します。
利用シーン
証明書が有効でない場合や自己署名証明書を使用している場合でも、HTTPS通信を強制的に続行したい場合は開発環境でのテストで利用できます。
curl -k https://self-signed.badssl.com/
■実行結果
証明書が信頼されていないサイト(URL)へアクセスする場合に-kオプションを利用します。
8.ヘッダー情報のみを取得(curl -I)
目的
レスポンスのヘッダー情報を確認できます。
利用シーン
サーバーが返すヘッダー情報を確認し、設定や動作を調査します。
curl -I https://google.co.jp
■実行結果
9.接続通信の時間計測(curl -w)
目的
通信の各段階にかかる時間を計測してネットワーク遅延を特定できます。
利用シーン
ネットワークが遅いと感じた場合、DNS解決や接続遅延の原因を調査するのに利用します。
curl -w "time_namelookup: %{time_namelookup}\ntime_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" -o /dev/null -s https://isleofhoso.com
サイト(https://isleofhoso.com)だけを変更しコマンドをコピーして利用してください。
■実行結果
10.ダウンロード速度制限の設定(curl --limit-rate)
目的
帯域幅を制限して通信を実行します。
利用シーン
ネットワーク負荷を抑えながらファイルをダウンロードする場合に利用します。
curl --limit-rate 100k https://cloud.centos.org/centos/10-stream/x86_64/images/CentOS-Stream-Container-Base-10-20250123.0.x86_64.tar.xz -o CentOS-Stream-Container-Base-10-20250123.0.x86_64.tar.xz
「-o」オプションの併用での利用となります。
■実行結果
curlオプションまとめ
オプション | 説明 |
---|---|
-O | URLから取得したファイルをリモート名のまま保存 |
-F | ファイルをアップロードする |
-x <プロキシURL> | 指定したプロキシを経由して通信 |
--proxy-user <ユーザー:パスワード> | プロキシ認証に必要な資格情報を指定 |
<URL>:<ポート> | 指定ポートでのURL接続をする |
-v | 詳細なデバッグ情報を表示する |
telnet:// <ホスト名> <ポート> | 指定ポートへのTCP接続を確認する |
-k | SSL証明書の検証を無効にする |
-I | レスポンスのヘッダー情報のみを取得 |
-w | 各通信ステージの時間情報をフォーマットして出力 |
--limit-rate <速度> | ダウンロード速度の制限を設定 |
curlは、シンプルなリクエスト送信から高度な通信操作まで対応できる万能ツールです。
この記事で紹介した10の使い方をマスターすることで、日常の作業を大幅に効率化できます。
コメント