【画像解説】RHELでよく使うcurlコマンド便利オプション10選と使い方

【画像解説】RHELでよく使うcurlコマンド便利オプション15選と使い方 Linuxサーバ

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


■実行結果

1.ファイルダウンロード(curl -O)

ダウンロードしたいファイル名まで入力してください。
「curl -O http://172.16.82.28/」だとエラーになります。



2.ファイルのアップロード(curl -F)
目的

ローカルファイルをサーバーにアップロードします。

利用シーン

フォームデータのテストやアップロード機能の確認ができます。

curl -F "file=@memo.txt" http://www.yourdomain.com/upload.php

アップロードしたいファイル名を「"file=@<ファイル名>"」で指定します。

■実行結果

サーバ

クライアント

クライアント側が指定するURLはファイルをアップロードできる機能を備えている必要があります。
サーバ側は、アップロードされたファイルがウイルスに感染していないことを確認できる対策を講じた上で、ファイルを受け入れる必要があります。



3.プロキシ経由の通信(curl -x)
目的

プロキシを利用した通信経路のテストを行います。

利用シーン

プロキシサーバーを介した接続設定の確認ができます。

curl -x 172.16.81.185:3128 https://isleofhoso.com

プロキシサーバの指定形式は、「<IPアドレス>:<tcpポート番号>」となります。

■実行結果

プロキシを利用する環境によっては、認証が必要になる場合があります。
その際には、プロキシ接続用のユーザーID(user)とパスワード(password)が必要です。
接続方法は以下になります。
「curl -x <プロキシIP>:<ポート番号> --proxy-user <user>:<password> 接続先URL」

curl -x 172.16.81.185:3128 --proxy-user hoge:pass https://isleofhoso.com



4.非標準ポートへの接続(curl <URL>:<ポート番号>)
目的

特定ポートを使ったサーバー接続を確認します。

利用シーン

カスタムポートで動作するサービスのテストを行います。


curl http://example.com:8000/todos

example.comへアクセスするには「TCP8000」のポート番号で接続する必要があります。

■実行結果

特定のポート番号を指定する場合にアクセス先が「http://example.com:8000」とトップページでなかった場合、ポート番号の後に「/」を使って接続したいパスやファイル名を指定します。

「http://example.com:8000/todos」
「http://example.com:8000/index.html」



5.HTTPリクエストとレスポンスのデバック(curl -v)
目的

詳細なHTTPリクエストおよびレスポンスを確認します。

利用シーン

HTTP通信の動作を詳しく調査したい場合に利用します。

curl -v http://example.com:8000/todos


■実行結果

【有】-vオプション

【無】-vオプション

-vオプションは他のオプションと併用して利用するケースが多くあります。



6.TCPポートの接続確認(curl telnet://)
目的

サーバーの指定ポートが開いているか確認します。

利用シーン

トラブルシューティングやポートの状態確認で利用します。

curl -v telnet://example.com:22

-vオプションと併用して利用することが多く「curl -v telnet://<アクセス先>:<ポート番号>」と指定して接続確認を行います。

■実行結果

コマンド実行後にプロンプトが返ってこないことがあります。
その場合は、【 ctrl + c 】で終了できます



7.SSL証明書の検証回避(curl -k)
目的

HTTPSリクエストを送信する際に SSL証明書の検証を無効化するために使用します。

利用シーン

証明書が有効でない場合や自己署名証明書を使用している場合でも、HTTPS通信を強制的に続行したい場合は開発環境でのテストで利用できます。

curl -k https://self-signed.badssl.com/


■実行結果
証明書が信頼されていないサイト(URL)へアクセスする場合に-kオプションを利用します。

内部/検証環境では自己証明書を利用して証明書が信頼されていないサイト(URL)があります。
このようなケースでは、「-k」オプションを利用しないとサイト(URL)に接続できません。



8.ヘッダー情報のみを取得(curl -I)
目的

レスポンスのヘッダー情報を確認できます。

利用シーン

サーバーが返すヘッダー情報を確認し、設定や動作を調査します。

curl -I https://google.co.jp


■実行結果

「-I」オプションを使用しないとヘッダー情報は表示されません。



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)だけを変更しコマンドをコピーして利用してください。

■実行結果

time_namelookup:DNSルックアップにかかった時間
time_connect:サーバへのTCP接続が確立されるまでにかかった時間
time_starttransfer:クライアントが最初のデータバイトを受信するまでにかかった時間
time_total:リクエストの開始から完了(全データの受信)までにかかった総時間



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」オプションの併用での利用となります。

■実行結果

「--limit-rate」オプションは、ダウンロードの帯域制限で利用します。
その為、ダウンロード先を指定する「-o」オプションを併用しないとエラーになるので注意してください。



curlオプションまとめ

オプション説明
-OURLから取得したファイルをリモート名のまま保存
-Fファイルをアップロードする
-x <プロキシURL>指定したプロキシを経由して通信
--proxy-user <ユーザー:パスワード>プロキシ認証に必要な資格情報を指定
<URL>:<ポート>指定ポートでのURL接続をする
-v詳細なデバッグ情報を表示する
telnet:// <ホスト名> <ポート>指定ポートへのTCP接続を確認する
-kSSL証明書の検証を無効にする
-Iレスポンスのヘッダー情報のみを取得
-w各通信ステージの時間情報をフォーマットして出力
--limit-rate <速度>ダウンロード速度の制限を設定

curlは、シンプルなリクエスト送信から高度な通信操作まで対応できる万能ツールです。
この記事で紹介した10の使い方をマスターすることで、日常の作業を大幅に効率化できます。


コメント

タイトルとURLをコピーしました