명령 줄에서 네트워크에 연결할 수 있는지 확인하는 방법은 무엇입니까?


12

SuSE 서버가 부팅 프로세스를 완료 한 후 으르렁을 보내려고합니다. 이 메시지를 받았습니다 socket_sendto(): unable to write to socket [101]: Network is unreachable in.

네트워크에 연결할 수 있는지 명령 줄에서 확인하고 연결되지 않은 경우 어떻게 기다릴 수 있습니까?



예 또는 아니오라고 대답하는 Linux one-liner는 인터넷에 연결되어 있습니까 ping -c 1 www.yourtrustedserver.com | grep " 0% packet loss"? 이 작업은 하나의 패킷으로 서버를 핑 (ping)하고 문자열 "0 % packet loss"에 대한 출력을 파악합니다. (0 % 앞의 공백이 중요합니다) 명령이 행을 반환하면 연결되어 있고 그렇지 않으면 연결되어 있지 않은 것입니다.
Eric Leschinski

답변:


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이제 대상에 대한 연결이 실패한 위치를 확인하는 등 고급 도구를 사용하여 시작할 수 있습니다.

그러나 Google에서 growl실제로 예상되는 내용을 빠르게 확인한 후에 다른 문제가 있다는 느낌이 들었습니다. 수행하려는 작업, 시도하는 방법 및 전체 오류 출력에 대한 몇 가지 세부 사항을 제공하기 위해 질문을 확장 할 수 있습니까? 현재 우리에게 제공하는 회선이 갑자기 끊어집니다.


3
ip route get 1.2.3.4그냥하는 것보다 더 신뢰할 수 ip route ls있습니다. 전자는 경로 외에 적용되는 모든 규칙을 적용합니다. 또한 라우팅 테이블을 잘못 읽을 가능성을 제거합니다.
Patrick

3

매우 간단하고 빠른 방법은 ping명령 을 사용하는 것 입니다.

간단히 입력 할 수 있습니다

 $ ping yahoo.com

(또는 cnn.com 또는 다른 호스트) 그리고 출력이 다시 나오는지 확인하십시오. 호스트 이름을 확인할 수 있다고 가정합니다 (예 : dns가 작동 중). 그렇지 않은 경우, 원격 시스템의 유효한 IP 주소 / 번호를 입력하여 도달 할 수 있는지 확인하십시오.

핑 맨 페이지 는 다음과 같습니다 .

업데이트 :

간단한 예를 들어, 당신은 확인할 수 반환 값을 (예를 들어,로 "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을 사용하여 모든 것이 정상이라는 것을 어떻게 알 수 있습니까?
Radek

1
@Radek 아직 실행 해 보셨습니까? ping은 응답이 있는지 알려줍니다.
jw013

서버가 인트라넷에만 있고 외부 세계에 액세스 할 수없는 경우 어떻게합니까?
Radek

@ jw013 : 시도하지 않았습니다 ... 무인 스크립트에서 ping을 사용하는 것을 모르겠습니다.
Radek

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.