ネットワークが到達可能であることをコマンドラインから確認する方法は?


12

SuSEサーバーがブートプロセスを完了した後、自分にうなり声を送りたいです。私はこのメッセージを受け取りましたsocket_sendto(): unable to write to socket [101]: Network is unreachable in

ネットワークに到達できるかどうかをコマンドラインから確認し、到達できない場合はどうすれば待機できますか?



Linuxのワンライナーで「はい」または「いいえ」と答えると、インターネットに接続されますping -c 1 www.yourtrustedserver.com | grep " 0% packet loss"。これは、1つのパケットでサーバーにpingを実行し、文字列「0%packet loss」の出力を取得します。(0%の前のスペースが重要です)コマンドが行を返す場合は接続されていますが、そうでない場合は接続されていません。
エリックレシンスキー

回答:


13

ping 外部ホストへの送信は、さまざまな理由で失敗する可能性がありますが、実際には、ご自身のネットワークの状態に関して有用なことを言っているのはごくわずかです。

最初のステップとして、ターミナルウィンドウを開き、次のように入力します。 ip route ls

次の行に沿って出力が表示されます。

shadur@equinox:~$ ip route ls
192.168.15.0/24 dev eth0  proto kernel  scope link  src 192.168.15.102 
default via 192.168.15.1 dev eth0 

これはあなたのローカルネットワークがeth0アドレスのイーサネット接続()で192.168.15.0あり、インターネットの残りにアクセスするデフォルトゲートウェイがで見つけられることを示し192.168.15.1ます。

次に、pingそのアドレスに試すことができます:

shadur@equinox:~$ ping 192.168.15.1
PING 192.168.15.1 (192.168.15.1) 56(84) bytes of data.
64 bytes from 192.168.15.1: icmp_req=1 ttl=255 time=0.352 ms
64 bytes from 192.168.15.1: icmp_req=2 ttl=255 time=0.269 ms
^C
--- 192.168.15.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.269/0.310/0.352/0.045 ms

上記に似たものが表示された場合、少なくともローカルネットワークは問題ありません。この時点でtraceroute、宛先への接続が失敗している可能性がある場所を確認するなど、より高度なツールで検索を開始できます。

しかし、growl実際に何が行われるのかをグーグルで簡単にチェックした後、何か他の問題があると感じています。質問を展開して、何をしようとしているのか、どのようにしようとしているのか、完全なエラー出力の詳細を教えてください。現在提供している回線は突然切断されます...


3
ip route get 1.2.3.4ただやるよりも信頼できるip route ls。前者は、ルートに加えて設定されているすべてのルールを有効にします。また、ルーティングテーブルを誤読する可能性も排除します。
パトリック

3

非常に簡単で迅速な方法は、pingコマンドを使用することです。

単純に入力できます

 $ ping yahoo.com

(またはcnn.comまたはその他のホスト)、出力が返されるかどうかを確認します。これは、ホスト名を解決できることを前提としています(つまり、dnsは機能しています)。そうでない場合は、リモートシステムの有効なIPアドレス/番号を提供し、到達できるかどうかを確認できます。

これがpingのmanページです。

更新

簡単な例として、戻り値(たとえば、"echo $?")をチェックしてping、コマンドが成功したかどうかを確認できます(コマンドの出力をいつでもにパイプできます> /dev/nul)。ここでは使用し-c 1ていますが、もっと使用することもできます。

$ ping -c 1 yahoo.com
PING yahoo.com (72.30.38.140) 56(84) bytes of data.
64 bytes from ir1.fp.vip.sp2.yahoo.com (72.30.38.140): icmp_seq=1 ttl=52 time=83.5 ms

--- yahoo.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 83.593/83.593/83.593/0.000 ms

echo $?
0


$ ping -c 1 unicorns.are.here
ping: unknown host unicorns.are.here

$ echo $?
2

しかし、pingを使用して、すべてが問題ないことをどのように認識できますか?
ラデック

1
@Radek実行してみましたか?pingは、返信があった場合に通知します。
jw013

サーバーがイントラネットのみにあり、外の世界にアクセスできない場合はどうなりますか?
ラデク

@ jw013:試したことがありません...無人スクリプトからpingを使用することを知りません。
ラデック

3
@Radekそれは非常に簡単です。「接続性」とは、イントラネット上の他のホストと通信できることを意味すると思います。したがってping -c 2 -n <other host's IP>、リターンコードを実行して操作します。true(0)の場合、接続性があります。false(1)の場合、そのマシンと通信できません。
lxop

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.