日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
PING(8) FreeBSD システム管理者マニュアル PING(8) 名称 ping -- ICMP ECHO_REQUEST パケットをネットワーク上のホストへ送る 書式 ping [-AaDdfnoQqRrv] [-c count] [-G sweepmaxsize] [-g sweepminsize] [-h sweepincrsize] [-i wait] [-l preload] [-M mask | time] [-m ttl] [-P policy] [-p pattern] [-S src_addr] [-s packetsize] [-t timeout] [-W waittime] [-z tos] host ping [-AaDdfLnoQqRrv] [-c count] [-I iface] [-i wait] [-l preload] [-M mask | time] [-m ttl] [-P policy] [-p pattern] [-S src_addr] [-s packetsize] [-T ttl] [-t timeout] [-W waittime] [-z tos] mcast- group 解説 ping ユーティリティは、ホストまたはゲートウェイから ICMP ECHO_RESPONSE を 引き出すために ICMP プロトコルの強制な ECHO_REQUEST データグラムを使用し ます。ECHO_REQUEST データグラム (``ping'') には、IP および ICMP ヘッダ、 ``struct timeval''、パケットの残りを埋める適当な数の ``pad'' バイトが順に あります。オプションは以下の通りです: -A 聴覚モード。次のパケットを送信する前にパケットを受け取らないと、 ベル (ASCII 0x07) 文字を出力します。送信間隔よりも往復時間が長い 場合のために、未受信パケット数の最大値を増加させた場合のみ、それ を越えて喪失したパケットがベルを鳴らします。 -a 聴覚モード。パケットを受け取った時に、出力にベル (ASCII 0x07) 文 字を含みます。このオプションは、別形式のオプションがある場合は無 視されます。 -c count ECHO_RESPONSE パケットを count 回送出 (そして受信) してから終了し ます。本オプションが指定されない場合、ping は割り込まれるまで動作 を継続します。このオプションが ping sweep とともに指定されないな ら、各 sweep は、count パケットから成ります。 -D フラグメント無しフラグを設定します。 -d 使用する socket に SO_DEBUG オプションを設定します。 -f ping を垂れ流します。パケットが返って来るとすぐ、もしくは 100 分 の 1 秒に 1 回のいずれか多い回数だけパケットを出力します。 ECHO_REQUEST パケットを送るたびに ``.'' が表示され、ECHO_REPLY パ ケットを受信するたびにバックスペースが表示されます。これによりど れだけのパケットが欠落したのかをすばやく表示することができます。 スーパユーザのみ使用可能です。このオプションはネットワークに非常 に負荷をかけるので、注意して使用する必要があります。 -G sweepmaxsize 全面的な ping を送信するとき、ICMP ペイロードの最大サイズを指定し ます。このオプションは、ping sweep には必要です。 -g sweepminsize 全面的な ping を送信するとき、開始する ICMP ペイロードのサイズを 指定します。デフォルト値は、0 です。 -h sweepincrsize 全面的な ping を送信するとき、各 sweep の後の ICMP ペイロードのサ イズを増加するバイト数を指定します。デフォルト値は、1 です。 -I iface 与えられたインタフェースアドレスに対して、マルチキャストパケット を送ります。このフラグは、ping の宛先アドレスがマルチキャストアド レスの場合だけに適用できます。 -i wait wait 秒数だけパケットの送信間隔を待ちます。デフォルトでは送出間隔 は、1 秒です。より小さい値を指定できますが、1 より小さい値を指定 できるのはスーパユーザだけです。このオプションは、-f オプションと は同時に指定できません。 -L マルチキャストパケットのループバックを抑制します。このフラグは、 宛先アドレスがマルチキャストアドレスの場合だけ適用できます。 -l preload preload が指定されるなら、ping は、パケットを出来るだけ速く送信 し、通常の動作に戻ります。スーパユーザのみがこのオプションを使用 できます。 -M mask | time ICMP_ECHO の代りに ICMP_MASKREQ または ICMP_TSTAMP を使用します。 mask では、リモートマシンのネットマスクを表示します。 ICMP_MASKREPLY を有効にするために net.inet.icmp.maskrepl MIB 変数 を設定し、応答でメットマスクを上書きしたいなら、 net.inet.icmp.maskfake を設定します。time では、起点、受理、送信 のタイムスタンプが表示されます。ICMP_TSTAMPREPLY を有効、または無 効にするために net.inet.icmp.tstamprepl MIB 変数を設定します。 -m ttl 出力パケットの IP Time To Live を設定します。指定しないと、カーネ ルは、net.inet.ip.ttl MIB 変数の値を使用します。 -n 数値のみ出力します。ホストアドレスに対する名前を調べるようなこと はしません。 -o 応答パケットを 1 個受け取ると、成功状態で終了します。 -P policy policy は、ping セッションの IPsec ポリシを指定します。詳細につい ては、ipsec(4) と ipsec_set_policy(3) を参照してください。 -p pattern 送出するパケットを埋める最大 16 バイトの ``pad'' バイトを指定しま す。これはネットワーク上でデータ依存の問題を診断するときに有効で す。たとえば ``-p ff'' は全て 1 の送出パケットを生成します。 -Q いくらか静かな出力にします。自己が行なった問い合わせに対しての応 答に含まれる ICMP エラーメッセージは表示されません。もともとは、 -v オプションがそのようなエラーを表示するために必要でしたが、-v オプションは全ての ICMP エラーメッセージを表示します。忙しい機械 上では、この出力は更に負荷になるでしょう。-Q オプションを指定しな いと、ping は、自己の ECHO_REQUEST メッセージに起因する ICMP エ ラーメッセージを表示します。 -q 出力を抑制します。開始時と終了時の要約行しか表示しません。 -R 指定ホストまでの到達経路を記録します。ECHO_REQUEST パケット中に RECORD_ROUTE オプションをつけ、返送パケット上の経路バッファを表示 します。IP ヘッダには経路を 9 個収める大きさしかないことに注意し てください。特定の宛先に対してパケットを経路づけるには、通常 traceroute(8) コマンドを使う方が良いでしょう。不正に偽ったパケッ トによるなどしてしかるべき経路数よりも大くの経路が帰って来た場 合、ping は経路リストを表示し、正しい位置にまで縮めます。多くのホ ストは、RECORD_ROUTE オプションを無視するか捨てます。 -r 通常のルーティングテーブルを無視し、直接接続されているネットワー ク上のホストに対して送信します。指定接続されたネットワーク上にホ ストが存在しない場合には、エラーが返されます。このオプションは経 路情報を持たないインタフェースを経由してローカルホストに ping を かけるのに用いられます (たとえばインタフェースが routed(8) によっ てドロップされた後)。 -S src_addr 引き続いて指定する IP アドレスを、出力パケットの送信元アドレスと して使用します。複数の IP アドレスを持つホストでは、このオプショ ンを使用することにより、プローブパケットを送信するインタフェース 以外の送信アドレスを強制可能です。IP アドレスがこのマシンのインタ フェースアドレスではない場合、エラーが返され、送信は行われませ ん。 -s packetsize 送出するデータのバイト数を指定します。デフォルトでは、56 バイトで す。これは、ICMP ヘッダデータの 8 バイトと合せて 64 ICMP バイトに なります。スーパユーザのみ、デフォルト値より大きな値を指定可能で す。このオプションは、ping sweep と共に使用することができません。 -T ttl マルチキャストパケットの IP 寿命時間 (Time To Live) を設定しま す。このオプションは、宛先アドレスがマルチキャストアドレスの場合 だけ適用できます。 -t timeout タイムアウトを、秒単位で指定します。タイムアウトすると、受信パ ケット数にかかわらず ping は終了します。 -v 冗長出力を有効にします。ECHO_RESPONSE 以外の受信 ICMP パケットも 表示されます。 -W waittime 各パケットの送信のための応答を待つミリ秒単位の時間です。応答が遅 れて到着するなら、パケットは応答として印刷 (表示) されませんが、 統計を計算するとき、応答とみなします。 -z tos 指定されたタイプのサービスを使用します。 問題の切り分けのために ping を用いるにはローカルインタフェースが up かつ running であることを確認するため、まずローカルホスト上で実行します。その 後により遠くのホストやゲートウェイに ``ping'' します。経路周回時間 (round trip time) と消失パケットの統計が計算されます。重複したパケットが受信され た場合、そのパケットは消失パケットの計算には含まれませんが、経路周回時間 の統計の計算には使われます。指定されたパケットの数が送信され (受信され) たとき、もしくはプログラムが SIGINT で終了した場合、簡単な要約が表示され ます。要約は、送出したパケット数、受信したパケット数、そして経路周回時間 の最小/平均/最大/分散です。 ping が SIGINFO シグナル (stty(1) に対する status 引数を参照) を受信した 場合、現時点で送信および受信されたパケット数、経路周回時間の最小/平均/最 大/分散を、標準エラー出力に書き込みます。 このプログラムは主にネットワークのテスト、計測、管理に用いられことを想定 しています。ping はそれ自体ネットワークに負荷をかけるので、トラブルのない ときや自動スクリプトで用いることは勧められません。 ICMP パケットの詳細 オプションなしの IP ヘッダは、20 バイトです。ICMP ECHO_REQUEST パケットは さらなる 8 バイトの ICMP ヘッダとそれに続く任意の大きさのデータからなって います。この大きさは、packetsize によって指定されます (デフォルトでは、56 バイトです)。このように受信した IP パケット内の ICMP ECHO_REPLY データ量 は常に指定されたデータ (ICMP ヘッダ) の大きさよりも 8 バイト大きくなりま す。 データ領域が少なくとも 8 バイトあるとき、ping は最初の 8 バイトを経路周回 時間の計算に用いるタイムスタンプを書くために用います。指定された pad の大 きさが 8 バイトより小さい場合経路周回時間は得られません。 重複パケットと障害パケット ping ユーティリティは重複パケットと障害パケットを報告します。重複パケット はユニキャストアドレスに対しては起こるはずのないものですが、リンク層での 不適切な再送信によって引き起こされるようです。重複は様々な状況で起こる可 能性があります。低いレベルの重複の存在は必ずしも警告にならないかもしれま せんが、よい兆候ではありません。ブロードキャストもしくはマルチキャストア ドレスに ping する時には、重複が起こることが期待されます。実際に重複する のではなく、異ったホストから同じ要求に対して応答が行われからです。 障害を受けたパケットは明らかに重大な警告です。多くの場合、ping パケットの 経路のどこか (ネットワーク内かホスト内) のハードウェアの故障が考えられま す。 異なったデータパターンの試行 (インター) ネットワーク層はデータ部分に含まれるデータによってパケットの扱 いを変えません。不幸にもデータ依存性の問題がネットワークに侵入し長い間検 出されないままとなる可能性が知られています。多くの場合、問題を引き起こす 特殊なパターンはたとえば全部 1 や全部 0 のようなもの、あるいは右端以外が 0 であるような十分な ``遷移'' を持たないものです。コマンドラインで (たと えば) 全部 0 のデータパターンを指定するだけでは不十分かもしれません。なぜ なら問題のパターンはデータリンク層にあり、コマンドラインで指定したものと コントローラが送信するものとの間の関係は複雑だからです。 このことはデータ依存性が問題となるとき、それを見つけるために多くのテスト をしなければならないということを意味します。運がよければ、あるネットワー クを通して送れない、あるいは同じような長さのファイルよりもずっと長時間か かるファイルを見つけることができるかもしれません。この場合、そのファイル を調べ繰り返し現われるパターンを ping の -p オプションを使ってテストでき ます。 TTL の詳細 IP パケットの TTL 値はパケットが捨てられずに通過できる IP ルータの最大数 を表わします。今のところインターネット上の各ルータは、TTL フィールドを ちょうど 1 だけ減らすと期待できます。 TCP/IP の仕様では、IP パケットの TTL フィールドを 64 にすべきと推奨してい ますが、多くのシステムは、もっと小さい値を用いています (4.3BSD では、30、 4.2BSD では、15 を用いています)。 このフィールドに許される最大値は、255 です。そして多くの UNIX システムで は、ICMP ECHO_REQUEST パケットの TTL フィールドを 255 にしています。これ が ``ping'' は出来るのに telnet(1) や ftp(1) で入れないホストが発生する理 由です。 通常 ping は受け取ったパケットの ttl 値を出力します。リモートシステムが ping パケットを受け取るとき、その応答における TTL フィールドに関し以下の 3 つのうちの 1 つを行なうことができます。 • 変更しない; これは、4.3BSD-Tahoe リリース前の BSD システムが行なって いたことです。この場合、受け取ったパケット中の TTL 値は、255 から周回 経路におけるルータの数を引いた数です。 • 255 にセットする; これは現在の BSD システムが行なっていることです。こ の場合、受け取ったパケット中の TTL 値は、255 から、リモートシステムか ら ping しているホストまでの経路におけるルータの数を引いた数となりま す。 • ある他の値にセットする。マシンによっては 30 あるいは 60 のような TCP パケットで用いるのと同じ値を ICMP パケットに使います。また全く異なる 値を用いるマシンもあるかもしれません。 終了ステータス ping ユーティリティは、次の値の 1 つで終了します: 0 少なくとも 1 つの応答が、指定された host からありました。 2 転送は成功しましたが、応答は、受信されませんでした。 他の値 エラーが起こりました。これらの値は、<sysexits.h> に定義されていま す。 関連項目 netstat(1), icmp(4), ifconfig(8), routed(8), traceroute(8) 歴史 ping ユーティリティは、4.3BSD で登場しました。 作者 オリジナルの ping ユーティリティは、Mike Muuss が US Army Ballistics Research Laboratory にて記述しました。 バグ 多くのホストやゲートウェイは、RECORD_ROUTE オプションを無視します。 最大IPヘッダ長は、RECORD_ROUTE オプションを付加するには小さ過ぎます。しか しながら、これについては出来ることは多くありません。 ping を垂れ流しにするのは、一般に勧められません。特にブロードキャストアド レスに対して ping の垂れ流しを行なうのは、きちんと条件を整えた場合におい てのみにとどめるべきです。 -v オプションは忙しいホストではあまり価値がありません。 FreeBSD 11.4 March 11, 2016 FreeBSD 11.4