커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 네트워크(network) 도움말
검색 : 사이트 WHOIS 웹서버 종류

TCP/IP, 프로토콜, 포트 (11, 글 2, 자료 25)
인터넷 접속 (1, 글 3)
웹 서버(web, httpd, apache) (48, 글 42, 자료 31)
메일 서버(mail) (31, 글 42, 자료 23)
네임서버(name server, dns, bind) (15, 글 18, 자료 4)
FTP 서버 / rsync / 미러링 / CVSup (12, 글 13, 자료 9)
망관리 / SNMP / QoS (13, 자료 16)
삼바 (samba) (4, 글 1, 자료 5)
프락시 서버(프록시, proxy server) (6, 글 3, 자료 2)
네트워크 툴 (15, 글 1, 자료 11)
클러스터링(cluster) (6, 자료 1)
장비 / 라우터 / 스위칭 (8, 글 3, 자료 8)
IRC (Internet Relay Chat) / 메신저 (6)
ssh / telnet (10, 글 3, 자료 2)
NFS / SHFS (5, 자료 2)
VPN 서버, FreeS/WAN (4)
DHCP (1, 자료 1)
LDAP (3, 자료 1)
SAN / NAS / 스토리지 (4, 글 2, 자료 6)
음악방송 / icecast (3, 글 1)

  기본적인 네트워크 명령어 사용하기 (9.22 최종수정) 작성일 : 2003/08/27 14:35
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 20666
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : 기본적인 네트워크 명령어 사용하기
    작성자 : 좋은진호(truefeel, http://coffeenix.net/ )
    작성일 : 2003.02~, 수시로 추가 정리함
    최종수정일 : 2003.9.22(월)

    여러 네트워크 명령의 실제 사용 예를 설명한다.

    1. PC나 서버가 동작중인지 확인하는 기본적인 툴 ping, fping

       fping 구할 곳 http://www.fping.com/
      
       ICMP 프로토콜의 echo request, reply type을 사용하여 지정한 시스템의
       응답을 확인한다.
       요즘은 방화벽이나 서버에서 필터링하는 경우가 상당하므로 ping이 안된다고
       해당 서버가 죽었다고 생각해서는 안됨

       fping은 ping과 같으나 한번의 명령으로 여러 서버의 응답을 확인할 수 있다.

       ping  < 확인할 서버 주소 >
       fping < 확인할 서버 목록 나열 >
      
       fping 192.168.1.1 192.168.1.5
       fping -g 192.168.123.0/24
       fping < 파일명    : 지정한 파일명에 나열된 IP에 모두 ping을 함

       # fping 192.168.1.1 192.168.1.5 192.168.1.10 192.168.1.30
       192.168.1.1 is alive
       192.168.1.5 is alive
       192.168.1.10 is alive
       192.168.1.30 is unreachable

    2. 라우팅 경로를 찾는 traceroute, tracepath

       traceroute 를 위해서는 ICMP type 11(time-execeeded) 가 필터링되어서는 안됨

       1) ICMP 대신 UDP를 사용하려면

       traceroute -I < trace할 서버 주소 > 또는
       tracepath < trace할 서버 주소 >

       2) TCP를 사용하는 traceroute 툴, lft와 tcptraceroute

       lft : http://www.mainnerve.com/lft/
       tcptraceroute : http://michael.toren.net/code/tcptraceroute/

       lft < trace할 서버 주소 >

       # lft -d 80 lug.or.kr (해당 사이트가 80포트가 열린 경우 이용)

       Tracing ___________________________.

       TTL  LFT trace to 211.214.161.175:80/tcp
       1   192.168.123.254 1.4ms
       ... 중략 ...
       9   211.58.252.150 23.2ms
       10   211.108.63.222 21.2ms
       11   218.38.58.22 20.6ms
       12   [target] 211.214.161.175:80 75.9ms

       lft에서 네트워크명, AS번호까지 표시하도록 하려면 -N옵션을 사용하면 된다.

       # lft -N -d 80 lug.or.kr

       Tracing ____________________________________________________________________

       LFT can't seem to round-trip.  Local packet filter in the way?

       TTL  LFT trace to 211.214.161.175:80/tcp
       1   [IANA-CBLK1] 192.168.123.254 13.2ms
       ... 중략 ...
       9   [APNIC-CIDR-BLK2/HANANET-DONGJAK-KR] 211.58.252.150 24.2ms
       10   [APNIC-CIDR-BLK2/WULSANSO-KR] 211.108.63.222 25.0ms
       11   [APNIC4/HANANET-IDC-NGENE-KR] 218.38.58.22 39.4ms
       **   [80/tcp failed]  Try alternate options or use -V to see packets.

    3. 네트워크 상태확인하는 netstat

       자주 사용하는 옵션 (워낙 옵션을 조합해서 자주 사용하므로 정리할 필요 있음)

       -n : 호스트명, 포트명을 lookup하지 않고 그대로 IP, Port번호로 보여준다.
       -a : 모든 네트웍 상태(listening, non-listening)를 보여준다.
       -t : TCP 프로토콜만
       -u : UDP 프로토콜만
       -p : 해당 포트를 사용하는 프로그램과 프로세스ID(PID)를 보여줌
           (솔라리스에서는 ARP 테이블을 보여줌)
       -s : 프로토콜별(IP, ICMP, TCP, UDP 등)로 통계를 보여줌
       -c : 1초 단위로 continuous하게 보여줌 (지속적인 접속 변화를 확인해야할 때 유용)
       -r : 라우팅 테이블을 보여줌. route 명령처럼

       netstat -nlp         Listening(l)중인 포트/소켓을 해당 PID와 프로세스명과 함께
       netstat -tn          TCP 접속 상태
       netstat -un          UDP 접속 상태
       netstat -rn          routing 테이블
       netstat -ntp         TCP 접속 상태를 해당 PID와 프로세스명과 함께
       netstat -atnp        모든 TCP 접속상태를 해당 PID와 프로세스명과 함께
       netstat -s           통계
       netstat -c -t        TCP 접속을 continuous 하게 보여줌

       # netstat -atnp
       Active Internet connections (servers and established)
       Proto Recv-Q Send-Q Local Address      Foreign Address     State    PID/Program name
       tcp        0      0 0.0.0.0:515        0.0.0.0:*           LISTEN   671/lpd Waiting
       tcp        0      0 127.0.0.1:3333     0.0.0.0:*           LISTEN   738/avmilter
       tcp        0      0 0.0.0.0:3306       0.0.0.0:*           LISTEN   720/mysqld
       ... 생략 ...

    4. fuser : 파일이나 소켓을 사용하는 프로세스 ID를 보여줌

       1) TCP 25(mail)포트를 사용하는 PID를 보여줌

       # fuser -n  tcp 25
       mail/tcp:              757

       2) http 포트를 사용하는 PID, USER, 명령어를 보여줌
        (-vn을 -nv 처럼 사용해서는 안됨
      
       # fuser -vn tcp http
      
                            USER        PID ACCESS COMMAND
       http/tcp             root       1652 f....  httpd
                            root       1659 f....  httpd
       ... 생략 ...

       3) /dev/hdb1 을 사용하는 사용자와 PID, 명령어
         (umount해야할 때 사용중이라 나올 때 유용하게 쓰임)
      
       # fuser -vm /dev/hdb1
      
                            USER        PID ACCESS COMMAND
       /dev/hdb1            truefeel   1669 f....  xmms
                            truefeel   1670 f....  xmms

    5. 패킷 모니터링을 위한 트래픽 덤프 툴 tcpdump
      
       1) eth0 인터페이스로 오고가는 트래픽 정보를 보여줌(-i eth0 옵션없으면 eth0임)
      
       tcpdump
      
       2) 192.128.1.1 host로 오고가는 또는 제외한 트래픽

       tcpdump host 192.128.1.1
       tcpdump src host 192.128.1.1
       tcpdump dst host 192.128.1.1
       tcpdump not host 192.128.1.1

       3) 192.128.1.1과 192.128.1.2 사이를 오고가는 트래픽만

       tcpdump host 192.128.1.1 and 192.128.1.2

       4) ICMP, ARP, UDP 프로토콜만, ICMP 프로토콜 20개만

       tcpdump icmp -i eth0
       tcpdump arp
       tcpdump udp
       tcpdump icmp -c 20

       5) 웹 포트로 오고가는 패킷만

       tcpdump port 80

       6) dhcp 패킷 확인할 때

       # tcpdump -v -s 1500 port 67 or port 68
       tcpdump: listening on eth0
       01:17:16.803166 0.0.0.0.bootpc > 255.255.255.255.bootps:  [udp sum ok]
       xid:0x29b28363 vend-rfc1048 DHCP:REQUEST RQ:truefeel
       PR:SM+BR+TZ+DG+DN+NS+HN+YD+YS+NTP [tos 0x10]  (ttl 16, id 0, len 328)
       01:17:16.806441 192.168.1.254.bootps > 255.255.255.255.bootpc:
       ... 생략 ...

    6. 도메인 네임 찾기 dig, nslookup
       워낙 다양한 사용법이 있으므로 기본적인 사용과 유용한 것 몇 개만

       1) linux.or.kr 의 IP 확인

       dig linux.or.k
       nslookup linux.or.kr

       2) SOA, MX 등의 레코드 확인

       dig linux.or.kr soa
       dig linux.or.kr mx

       3) bind 네임서버 버전 확인

       dig @네임서버 txt chaos version.bind
       nslookup -q=txt -class=CHAOS version.bind. 네임서버
      
       4) 존파일 transfer
      (존파일 전송을 허용한 경우 해당 도메인의 모든 목록을 얻을 수 있다.)

       dig @네임서버 도메인명 axfr

       # dig @ns.daum.net daum.net axfr

       ; <<>> DiG 9.2.1 <<>> @ns.daum.net daum.net axfr
       ;; global options:  printcmd
       daum.net.               86400   IN      SOA     ns.daum.net.
       hostmaster.daum.net. 2003082602 2700 900 604800 86400
       daum.net.               86400   IN      NS      ns.daum.net.
       daum.net.               86400   IN      NS      ns2.daum.net.
       daum.net.               86400   IN      MX      10 mx1.hanmail.net.
       daum.net.               86400   IN      MX      10 mx2.hanmail.net.
       daum.net.               86400   IN      MX      10 mx3.hanmail.net.
       ... 생략 ...
      
    7. 웹서버 benchmark 할 때 유용한 lynx, ab

       1) time lynx -source localhost > /dev/null
       2) ab -n 10 localhost/         10회 반복해서 요청
          ab -n 10 -c 10 loclahost/   10회 반복, 10건이 동시 접속일 때

    8. 도메인 whois 검색하는 fwhois, whois -h

       whois.krnic.net 서버에 linux.or.kr 에 대해 whois 검색 요청

       fwhois linux.or.kr@whois.krnic.net
       whois linux.or.kr -h whois.krnic.net

    9. 웹서버 종류 확인

       1) telnet 이용

       # telnet localhost 80
       Trying 127.0.0.1...
       Connected to localhost.
       Escape character is '^]'.
       HEAD / HTTP/1.0

       HTTP/1.1 200 OK
       Date: Tue, 20 May 2003 12:48:08 GMT
       Server: Apache/2.0.44 (Unix) DAV/2 PHP/4.3.1
       ... 생략 ...

       2) HEAD, GET 이용 (perl libwww 모듈에 포함된 툴임)

       # HEAD localhost
       200 OK
       Date: Tue, 20 May 2003 12:51:13 GMT
       Accept-Ranges: bytes
       Server: Apache/2.0.44 (Unix) DAV/2 PHP/4.3.1
       ... 생략 ...

       3) apachebench 툴 ab 이용

       # /usr/local/apache/bin/ab localhost/
       ... 생략 ...
       Server Software:        Apache/2.0.44
       Server Hostname:        localhost
       ... 생략 ...

       4) netcat(nc)를 이용 (레드햇 8.x에서 기본 설치됨)

       nc : http://www.atstake.com/research/tools/network_utilities/

       # echo "HEAD / HTTP/1.0"|nc localhost 80
       HTTP/1.1 200 OK
       Date: Sun, 21 Sep 2003 20:00:57 GMT
       Server: Apache/2.0.44 (Unix) DAV/2 PHP/4.3.2
       ... 생략 ...

    10. 솔라리스에서 패킷 모니터링

       snoop  
       snoop port 53

    11. 솔라리스에서 회선이 연결됐는지 확인하는 방법

       while 1
       ? ndd -get /dev/hme link_status
       ? sleep 1
       ? end

      커피닉스 카페 최근 글
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Server 개발 팀장을 모십니다.
    [12/21] 브라우저별 SHA1 퇴출 시점
    [09/15] [구인] 시스템엔지니어 (경력)
    [08/05] Re: 칼리리눅스 텔넷관련
    [08/04] 칼리리눅스 텔넷관련
    [06/29] 또 다른 무료 SSL 인증서, Let's Encrypt
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~