Linux 에서 인터넷 연결 상태 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 기본적인 명령줄 도구를 사용하여 Linux 에서 인터넷 연결 상태를 확인하는 방법을 배우게 됩니다. 먼저, ping 명령을 사용하여 공용 서버에 대한 연결 가능성을 테스트하고 이 필수 네트워크 유틸리티의 기본 출력을 이해합니다.

그 다음으로, nslookup 명령을 사용하여 DNS (Domain Name System) 확인을 테스트하여 시스템이 도메인 이름을 IP 주소로 변환할 수 있는지 확인합니다. 마지막으로, curl 명령을 사용하여 웹 서버에서 콘텐츠를 가져오려고 시도하여 연결 상태를 확인합니다. 이러한 단계를 완료함으로써 Linux 환경에서 일반적인 네트워크 문제를 진단하는 실용적인 기술을 습득하게 됩니다.

ping 명령으로 공용 서버에 Ping 보내기

이 단계에서는 ping 명령을 사용하여 네트워크 연결 상태를 확인하는 방법을 배우게 됩니다. ping 명령은 대상 호스트로 패킷을 보내고 패킷이 반환되는 시간을 측정합니다. 이를 통해 서버에 연결할 수 있는지, 그리고 서버와 얼마나 빠르게 통신할 수 있는지 확인할 수 있습니다.

터미널이 아직 열려 있지 않다면 엽니다. 데스크탑 왼쪽에서 Xfce 터미널 아이콘을 찾을 수 있습니다.

이제 8.8.8.8에 있는 Google 의 DNS 서버와 같이 잘 알려진 공용 서버에 ping 을 보내보겠습니다. 다음 명령을 입력하고 Enter 키를 누르세요:

ping 8.8.8.8

다음과 유사한 출력을 볼 수 있습니다:

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=... time=... ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=... time=... ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=... time=... ms
...

출력은 컴퓨터가 8.8.8.8로 패킷을 보내고 응답을 받고 있음을 보여줍니다.

  • icmp_seq: 패킷의 시퀀스 번호입니다.
  • ttl: Time To Live (TTL), 패킷이 폐기되기 전에 거칠 수 있는 홉 수를 나타냅니다.
  • time: 패킷이 서버로 이동하여 다시 돌아오는 데 걸린 시간 (왕복 시간) 을 밀리초 단위로 나타냅니다.

ping 명령을 중지하려면 Ctrl + C를 누르세요.

google.com과 같이 도메인 이름으로 서버에 ping 을 보낼 수도 있습니다:

ping google.com

출력은 비슷하지만, ping은 먼저 도메인 이름을 IP 주소로 확인합니다.

PING google.com (...) 56(84) bytes of data.
64 bytes from ... (...): icmp_seq=1 ttl=... time=... ms
64 bytes from ... (...): icmp_seq=2 ttl=... time=... ms
...

ping을 사용하는 것은 네트워크 문제를 해결하는 기본적인 방법입니다. ping이 실패하면 네트워크 연결 또는 대상 서버에 문제가 있음을 나타냅니다.

명령에 익숙해지도록 몇 개의 다른 웹사이트 또는 IP 주소에 ping 을 보내 연습해 보세요.

다음 단계로 진행하려면 계속을 클릭하세요.

nslookup 으로 DNS 확인 테스트

이 단계에서는 DNS (Domain Name System, 도메인 이름 시스템) 에 대해 배우고 nslookup 명령을 사용하여 DNS 확인을 테스트하는 방법을 배우게 됩니다. DNS 는 인터넷의 전화번호부와 같습니다. 사람이 읽을 수 있는 도메인 이름 (예: google.com) 을 기계가 읽을 수 있는 IP 주소 (예: 8.8.8.8) 로 변환합니다.

nslookup 명령은 DNS 서버에 쿼리하여 도메인 이름에 대한 정보를 얻는 도구입니다.

터미널이 아직 열려 있지 않다면 엽니다.

nslookup을 사용하여 google.com의 IP 주소를 찾아보겠습니다. 다음 명령을 입력하고 Enter 키를 누르세요:

nslookup google.com

다음과 유사한 출력을 볼 수 있습니다:

Server:  ...
Address: ...#53

Non-authoritative answer:
Name: google.com
Address: ...
Name: google.com
Address: ...
...

출력은 다음을 보여줍니다:

  • Server: 조회를 위해 컴퓨터가 사용한 DNS 서버입니다.
  • Address: DNS 서버의 IP 주소입니다.
  • Non-authoritative answer: DNS 서버에서 반환된 정보입니다.
  • Name: 쿼리한 도메인 이름입니다.
  • Address: 도메인 이름과 관련된 하나 이상의 IP 주소입니다. 웹사이트는 로드 밸런싱 및 중복성을 위해 여러 IP 주소를 갖는 경우가 많습니다.

nslookup을 사용하여 IP 주소와 관련된 도메인 이름을 찾을 수도 있습니다 (역방향 DNS 조회). IP 주소 8.8.8.8을 시도해 보겠습니다:

nslookup 8.8.8.8

출력은 다음과 유사하게 표시됩니다:

Server:  ...
Address: ...#53

Non-authoritative answer:
...
Name: dns.google.

이는 IP 주소 8.8.8.8이 도메인 이름 dns.google.과 관련되어 있음을 보여줍니다.

nslookup은 도메인 이름 확인과 관련된 네트워크 문제를 진단하는 데 유용한 도구입니다. IP 주소는 ping 할 수 있지만 도메인 이름은 ping 할 수 없는 경우 DNS 에 문제가 있을 수 있습니다.

다양한 도메인 이름을 조회하여 nslookup을 실험해 보세요.

계속 진행하려면 계속을 클릭하세요.

curl 명령으로 연결 상태 확인

이 단계에서는 curl 명령을 사용하여 웹 서버에 대한 연결을 확인하고 콘텐츠를 검색합니다. curl은 URL 을 사용하여 데이터를 전송하기 위한 다목적 명령줄 도구입니다. HTTP, HTTPS, FTP 등 다양한 프로토콜을 지원합니다.

터미널이 아직 열려 있지 않다면 엽니다.

curl을 사용하여 example.com과 같은 간단한 웹페이지의 콘텐츠를 가져오겠습니다. 다음 명령을 입력하고 Enter 키를 누르세요:

curl example.com

example.com 웹페이지의 HTML 콘텐츠가 터미널에 직접 출력되는 것을 볼 수 있습니다.

<!doctype html>
<html>
<head>
    <title>Example Domain</title>

    <meta charset="utf-8" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <style type="text/css">
    body {
        background-color: #f0f0f2;
        margin: 0;
        padding: 0;
        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;

    }
    div {
        width: 600px;
        margin: 5em auto;
        padding: 2em;
        background-color: #fdfdff;
        border-radius: 0.5em;
        box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
    }
    a:link, a:visited {
        color: #38488f;
        text-decoration: none;
    }
    @media (max-width: 700px) {
        div {
            margin: 0 auto;
            width: auto;
        }
    }
    </style>
</head>

<body>
<div>
    <h1>Example Domain</h1>
    <p>This domain is for use in illustrative examples in documents. You may use this
    domain in examples without prior coordination or asking for permission.</p>
    <p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>

이는 컴퓨터가 example.com에 연결하여 해당 콘텐츠를 검색할 수 있었음을 보여줍니다.

curl은 웹 연결을 테스트하고, 웹 서비스를 디버깅하고, 파일을 다운로드하는 강력한 도구입니다.

-I 옵션과 함께 curl을 사용하여 HTTP 헤더만 가져올 수도 있습니다. 이는 전체 콘텐츠를 다운로드하지 않고 웹페이지의 상태를 확인하는 데 유용합니다:

curl -I example.com

출력은 응답 헤더를 표시합니다:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Etag: "..."
Expires: ...
Last-Modified: ...
Server: ECS (sg2/2A3E)
Vary: Accept-Encoding
X-Cache: HIT
Content-Length: 1270
Date: ...
Connection: close

HTTP/1.1 200 OK 상태는 성공적인 연결을 나타냅니다.

curl은 웹 기술을 사용하는 모든 사람에게 필수적인 도구입니다.

이 랩을 완료하려면 계속을 클릭하세요.

요약

이 랩에서는 여러 기본적인 명령을 사용하여 Linux 에서 인터넷 연결을 확인하는 방법을 배웠습니다. IP 주소와 도메인 이름 모두를 사용하여 공용 서버에 대한 연결 가능성을 테스트하기 위해 ping 명령을 사용하여 시작했으며, 왕복 시간 (round-trip time) 과 패킷 시퀀스를 관찰했습니다. 이를 통해 기본적인 네트워크 연결을 확인하고 잠재적인 문제를 식별하는 방법을 보여주었습니다.