6 네트워크 연결을 테스트하는 Linux 유틸리티

두 네트워크 끝점 간의 연결을 확인하는 방법이 궁금하십니까?

시스템 관리자의 일반적인 작업 중 하나는 연결을 확인하여 네트워킹 문제를 해결하는 것입니다. 애플리케이션이 백엔드 서비스에 연결할 수 없음, 외부 URL에서 데이터를 가져올 수 없음, 흐름이 열려 있는지 확인 등이 될 수 있습니다.

무엇이든 다음 유틸리티/명령이 도움이 될 것입니다. 그들은 CentOS에서 테스트되었으며 다른 Linux 배포판에서 작동하지 않을 이유가 없습니다.

탐구하자…

텔넷

서버와 다른 네트워크 장치의 IP 간 필수 연결을 테스트하기 위해 널리 사용되는 명령 중 하나입니다. 명령 구문은 간단합니다.

telnet $destinationIP $PORT

10.0.0.1 IP 주소에서 포트 8080에 연결할 수 있는지 테스트하고 싶다고 가정해 보겠습니다. 그러면 명령이 될 것입니다.

telnet 10.0.0.1 8080

연결에 문제가 없다면 연결되었다는 메시지가 표시되어야 합니다.

Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.

참고: telnet을 실행하는 동안 명령을 찾을 수 없는 경우 여기에서 설명한 대로 telnet을 설치해야 합니다.

대부분의 시나리오에서 telnet이 도움이 됩니다. 그러나 다른 옵션이 필요한 경우 여기에 몇 가지 텔넷 대안이 있습니다.

ncat 또는 nc

Ncat(일명 nc)은 바인딩 및 연결 수락, 원격 명령 실행, 데이터 쓰기 및 읽기 등과 같은 많은 기능을 갖춘 강력한 네트워크 유틸리티입니다. IPv4 및 IPv6 모두에서 작동합니다.

포트가 열려 있는지 여부를 확인하기 위한 간단한 테스트를 수행하려면 다음을 실행합니다.

nc -vz $HOSTNAME $PORT

koreantech.org.com에서 443 포트를 테스트하는 예를 들어 보겠습니다.

[[email protected] ~]# nc -vz koreantech.org.com 443
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 104.25.133.107:443.
Ncat: 0 bytes sent, 0 bytes received in 0.02 seconds.
[[email protected]ekflare-lab ~]#

언급했듯이 nc를 사용하여 특정 포트에서 수신하도록 연결을 바인딩할 수도 있습니다. 이는 실제 서비스가 실행되고 있지 않지만 연결이 존재하는지 확인하려는 경우에 유용할 수 있습니다.

포트에서 수신을 시작하려면:

nc -l $PORTNUMBER

포트를 주어진 번호에 바인딩합니다.

ncat이 설치되어 있지 않으면 CentOS/RHEL 서버에서 yum install nc를 사용하여 완료할 수 있습니다.

wget

wget은 HTTP, HTTPS 및 FTP를 다운로드/테스트하는 데 유용한 명령입니다. 웹 엔지니어로 일하거나 웹 관련 문제를 자주 다루는 경우 wget이 친구입니다. wget을 사용한 테스트는 간단합니다.

wget $URL

다음은 tools.koreantech.org.com 테스트의 예입니다.

[[email protected] ~]# wget tools.koreantech.org.com
--2019-05-09 20:40:01--  http://tools.koreantech.org.com/
Resolving tools.koreantech.org.com (tools.koreantech.org.com)... 104.25.134.107, 104.25.133.107, 2606:4700:20::6819:866b, ...
Connecting to tools.koreantech.org.com (tools.koreantech.org.com)|104.25.134.107|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://tools.koreantech.org.com/ [following]
--2019-05-09 20:40:01--  https://tools.koreantech.org.com/
Connecting to tools.koreantech.org.com (tools.koreantech.org.com)|104.25.134.107|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'index.html.2'

    [ <=>                                                                                                                                  ] 15,139      --.-K/s   in 0.001s  

2019-05-09 20:40:02 (12.8 MB/s) - 'index.html.2' saved [15139]

[[email protected] ~]#

연결됨이 표시되면 연결 문제가 없음을 의미합니다.

자주 사용되는 wget 명령 예제를 보려면 여기를 확인하십시오.

곱슬 곱슬하다

컬은 다목적 도구입니다.

curl을 사용하여 포트에 텔넷할 수 있다는 것을 알고 있습니까?

글쎄, 이제 당신은 알고 있습니다.

curl -v telnet://$IP:$PORT

다음은 작업 예입니다.

[[email protected] ~]# curl -v telnet://chandan.io:443
* About to connect() to chandan.io port 443 (#0)
*   Trying 104.31.68.106...
* Connected to chandan.io (104.31.68.106) port 443 (#0)

그리고 수신 포트나 방화벽 문제가 없으면 시도하는 중이라는 메시지가 표시됩니다.

[[email protected] ~]# curl -v telnet://chandan.io:4434
* About to connect() to chandan.io port 4434 (#0)
*   Trying 104.31.68.106...

curl을 사용하여 데이터를 다운로드할 수도 있습니다. HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, GOPHER 등 여러 프로토콜을 지원합니다.

nmap

수백 가지 기능을 갖춘 인기 있는 도구입니다. 종종 이것은 보안 도구로 간주됩니다. nmap 단일 IP/포트 또는 범위를 테스트할 수 있습니다.

단일 포트를 테스트하려면

nmap -p $PORT $IP

siterelic.com에서 포트 443을 테스트하는 예

[[email protected] ~]# nmap -p 443 siterelic.com
Starting Nmap 7.70 ( https://nmap.org ) at 2019-05-10 06:55 UTC
Nmap scan report for siterelic.com (104.27.174.50)
Host is up (0.0079s latency).
Other addresses for siterelic.com (not scanned): 104.27.175.50 2606:4700:30::681b:ae32 2606:4700:30::681b:af32

PORT    STATE SERVICE
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
[[email protected] ~]#

상태 열을 보십시오. 열림이 표시되면 연결이 정상임을 의미합니다. 상태가 필터링되면 연결이 존재하지 않음을 의미합니다.

널리 사용되는 명령 중 하나는 원격 호스트가 ICMP ECHO_REQUEST에 응답하는지 여부를 확인하는 것입니다. 원격 네트워크의 방화벽에서 ICMP가 차단된 경우 정확한 결과를 제공하지 못할 수 있습니다. 그렇지 않다고 가정하면 아래와 같이 IPv4 또는 IPv4 네트워크 끝점에 ping할 수 있습니다.

ping $ipaddress
ping $url

예를 들어 koreantech.org.com의 성공 결과

[email protected] ~ % ping koreantech.org.com
PING koreantech.org.com (104.27.119.115): 56 data bytes
64 bytes from 104.27.119.115: icmp_seq=0 ttl=53 time=7.944 ms
64 bytes from 104.27.119.115: icmp_seq=1 ttl=53 time=8.870 ms

예를 들어, 내부 IP의 실패 결과입니다.

[email protected] ~ % ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1

엔드포인트가 IPv6를 지원하는 경우 아래와 같이 ping6 명령을 사용할 수 있습니다.

[email protected] ~ % ping6 koreantech.org.com
PING6(56=40+8+8 bytes) 2a01:4b00:88e4:8700:d8ca:bf50:159c:2a1d --> 2606:4700:20::681b:7673
16 bytes from 2606:4700:20::681b:7673, icmp_seq=0 hlim=250 time=8.650 ms
16 bytes from 2606:4700:20::681b:7673, icmp_seq=1 hlim=250 time=8.738 ms

인터넷을 통해 원격 ping을 수행해야 하는 경우 온라인 ping 도구를 사용할 수 있습니다.

결론

telnet은 최신 Linux 버전에서 단계적으로 중단됩니다. 위의 텔넷 대안 덕분입니다.

Linux를 처음 사용하고 배우려는 경우 다음을 확인하십시오. 유데미 과정.