Bir komut satırından ağın erişilebilir olduğunu nasıl kontrol edebilirim?


12

SuSE sunucusu önyükleme işlemini bitirdikten sonra kendime hırıltı göndermek istiyorum. Bu mesajı aldım socket_sendto(): unable to write to socket [101]: Network is unreachable in.

Ağa erişilip erişilemediğini komut satırından nasıl kontrol edebilirim ve olmaması durumunda nasıl bekleyebilirim?



Linux one-liner evet cevap ya da olmasın, internete bağlı oldukları: ping -c 1 www.yourtrustedserver.com | grep " 0% packet loss". Bunun yaptığı sunucuya bir paket ping atmak ve "0% paket kaybı" dizesi için çıktı selamlıyor. (% 0'dan önceki boşluk önemlidir) Komut bir satır döndürürse, bağlısınız, aksi halde bağlı değilsiniz.
Eric Leschinski

Yanıtlar:


13

ping bir dış ana makineye birçok nedenden dolayı başarısız olabilir, bunlardan sadece birkaçı kendi ağınızın durumu hakkında faydalı bir şey söyler.

İlk adım olarak bir terminal penceresi açın ve şunu yazın ip route ls

Çizgisinde bir çıktı görmelisiniz

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 

Bu, yerel ağınızın eth0adresli bir ethernet bağlantısı ( ) 192.168.15.0olduğunu ve internetin geri kalanına eriştiği varsayılan ağ geçidinin bulunabileceğini gösterir 192.168.15.1.

Ardından, pingbu adresi deneyebilirsiniz :

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

Yukarıdakine benzer bir şey görürseniz, kendi yerel ağınız en azından iyidir. Bu noktada traceroute, hedef bağlantınızın nerede başarısız olabileceğini görmek gibi daha gelişmiş araçlarla aramaya başlayabilirsiniz .

Ancak, growlaslında ne olması gerektiğine dair hızlı bir google kontrolünden sonra başka bir şeylerin yanlış gittiğini hissediyorum. Bize ne yapmaya çalıştığınız, nasıl denediğiniz ve tam hata çıktısı hakkında birkaç ayrıntı vermek için sorunuzu genişletebilir misiniz? Şu anda bize verdiğiniz çizgi aniden kesiliyor ...


3
ip route get 1.2.3.4sadece yapmaktan daha güvenilirdir ip route ls. İlki, güzergahlara ek olarak yürürlükte olan kuralları da yürürlüğe koyacaktır. Ayrıca, yönlendirme tablolarını yanlış kullanma olasılığını da ortadan kaldırır.
Patrick

3

Çok basit ve hızlı bir yol pingkomutu kullanmaktır .

Yazmanız yeterlidir

 $ ping yahoo.com

(veya cnn.com veya başka bir ana bilgisayar) ve herhangi bir çıktı alıp almadığınızı görün. Bu, ana bilgisayar adlarının çözümlenebileceğini varsayar (örn. Dns çalışıyor). Değilse, umarım uzak bir sistemin geçerli bir IP adresini / numarasını girebilir ve bu sisteme erişilip erişilemeyeceğini görebilirsiniz.

İşte ping man sayfası .

Güncelleme :

Hızlı bir örnek olarak, kontrol edebilirsiniz dönüş değeri (örneğin, birlikte "echo $?") gelen pingkomut başarılı olup olmadığını görmek için (yapabildin daima boru için komutun çıktısı > /dev/nul). Not -c 1Burada kullanıyorum, ancak daha fazlasını kullanabilirsiniz.

$ 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

Ama ping'i kullanarak her şeyin yolunda olduğunu nasıl anlayabilirim?
Radek

1
@Radek Henüz çalıştırmayı denediniz mi? ping size yanıt alıp almadığını söyler.
jw013

Sunucu yalnızca intranet üzerindeyse ve dış dünyaya erişimi yoksa ne olur?
Radek

@ jw013: Denemedim ... Katılımsız bir komut dosyasından ping kullanmayı bilmiyorum.
Radek

3
@ Radek oldukça basit. 'Bağlanabilirlik' ile intranet üzerindeki başka bir sunucu ile konuşabileceğini kastediyorum. Bu yüzden ping -c 2 -n <other host's IP>dönüş kodunu çalıştırın ve çalıştırın: true (0) ise, bağlantıya sahiptir; yanlışsa (1), o makine ile konuşamaz.
lxop

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.