>  기사  >  운영 및 유지보수  >  Linux에서 네트워크 오류를 해결하는 방법

Linux에서 네트워크 오류를 해결하는 방법

齐天大圣
齐天大圣원래의
2020-11-14 10:42:142680검색

회사 홈페이지가 열리지 않는 경우, 네트워크 문제로 인해 어떻게 해결해야 하나요? 또 다른 예로, 원격 연결 도구로 서버에 연결할 수 없거나 mysql 데이터베이스에 연결할 수 없는 경우 네트워크 문제 때문일 수 있습니다. 일상 업무나 공부 중에 우리는 종종 다양한 네트워크 문제에 직면합니다(컴퓨터 네트워크가 너무 복잡하기 때문에). 이제 Linux 서버에 네트워크 문제가 있는 경우 문제를 해결하는 방법을 살펴보겠습니다.

ping

먼저 ping 명령을 살펴보겠습니다. 이 명령은 두 호스트 간에 정상적인 통신이 가능한지 테스트하는 데 사용되는 도구입니다. 핑의 대상은 IP 주소이거나 도메인 이름일 수 있습니다. 이 명령은 Linux 및 Windows의 cmd 모드에서 사용할 수 있습니다. 사용방법은 동일합니다.

# ping -c 4 8.210.247.5
PING 8.210.247.5 (8.210.247.5) 56(84) bytes of data.
64 bytes from 8.210.247.5: icmp_seq=1 ttl=64 time=1.54 ms
64 bytes from 8.210.247.5: icmp_seq=2 ttl=64 time=1.48 ms
64 bytes from 8.210.247.5: icmp_seq=3 ttl=64 time=1.46 ms
64 bytes from 8.210.247.5: icmp_seq=4 ttl=64 time=1.48 ms
--- 8.210.247.5 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 1.460/1.494/1.548/0.042 ms
 
# ping -c 1 baidu.com 
……

아래는 LAN에서 어떤 IP가 통신할 수 있는지 확인하는 데 사용되는 쉘 스크립트입니다.

#!/bin/bash
net='192.168.2.'
seqs=`seq 1 254`

for seq in $seqs
do
    ip=$net$seq
    /usr/bin/ping -c 1 -W 1 $ip >/dev/null 2>&1
    
    if [ "$?" == "0" ];then
        echo "$ip is UP"
    fi
done

traceroute

이 명령은 두 호스트 사이의 각 노드의 네트워크 상태를 확인하는 데 사용됩니다. 웹 사이트 접속 시 속도가 느린 경우 이 명령어를 사용하면 모든 노드의 네트워크 상태를 확인할 수 있습니다.

# traceroute -n google.com
traceroute to google.com (172.217.163.238), 30 hops max, 60 byte packets
 1  * * *
 2  11.109.220.61  1.444 ms  1.577 ms 11.109.216.189  1.500 ms
 3  11.109.220.190  5.512 ms * 11.109.220.174  5.382 ms
 4  11.131.180.222  1.660 ms 11.131.180.218  1.519 ms 11.131.180.250  1.365 ms
 ……

nslookup

이 명령은 도메인 이름을 통해 IP 주소를 역으로 확인할 수 있으며 사용이 매우 간단합니다.

nslookup 5iqm.com
Server:  100.100.2.136
Address: 100.100.2.136#53

Non-authoritative answer:
Name: 5iqm.com
Address: 121.196.12.64

netstat

. 웹 사이트에 접속할 수 없는 경우 가장 먼저 해야 할 일은 서버의 IP 주소에 대해 ping을 수행하는 것입니다. 정상적으로 ping이 가능하다면 웹 사이트 도메인 이름에 대해 ping을 수행하여 DNS가 정상적으로 확인되는지 확인해야 합니다. 문제가 없고 여전히 웹사이트에 접근할 수 없다면 포트 80이 외부에 열려 있는지 확인해야 합니다. netstat 명령은 호스트 포트 수신 상태를 확인하는 데 사용됩니다.

# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      30721/nginx: master 
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1275/pure-ftpd (SER 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1167/sshd           
tcp        0      0 0.0.0.0:888             0.0.0.0:*               LISTEN      30721/nginx: master 
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      2068/python

telnet

이 명령을 사용하면 서버의 지정된 포트가 자체적으로 열려 있는지 테스트할 수 있습니다.

# telnet 8.210.110.139 22
Trying 8.210.110.139...
Connected to 8.210.110.139.   
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4


# telnet 8.210.110.139 3306
Trying 8.210.110.139...  <=== 一直是这样的状态则

위의 첫 번째 경우라면 8.210.110.139의 22번 포트가 열려 있다는 뜻입니다. 두 번째 유형이고 계속 시도하는 경우 해당 포트가 자체적으로 열려 있지 않다는 의미입니다.

위 내용은 Linux에서 네트워크 오류를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.