Embedded Linux

네트워크 관련 명령어(1) : ifquery , ifup와 ifdown , ifconfig

작성자 임베디드코리아 작성일24-11-29 22:33 조회609회 댓글0건
<* 네트워크 설정 명령어 *>
    리눅스 환경에서 네트워크를 다루려면 가장 기본이 되는 네트워크 설정과 상태 정보를 읽을 수 있어야 한다.
      $ sudo apt install ifupdown

1. 네트워크 설정과 상태 확인
    [ 1 ]  ifquery 명령
            fquery는 매우 유용한 명령으로, 간략한 네트워크 인터페이스 목록을 보여준다.

                    < 기본 형식 >          ifquery    [옵션]

          예 )
                  $ ifqury  -l 

          예 )  Allow-hotplug 키워드를 사용하여 인터페이스 구성 출력
                $ ifquery  -l  --allow=hotplug

    [ 2 ]  ifup와 ifdown 명령
            ifdown 및 ifup은 각각 인터페이스를 활성화하고 비활성화하는데 사용된다.
            - 이 명령어는 대부분 Debian 및 Ubuntu와 같은 Debian 계열의 리눅스 배포판에서 사용된다.
            - Red Hat 및 CentOS와 같은 다른 리눅스 배포판에서는 ifconfig를 사용하여 네트워크 인터페이스를 구성하거나
              systemctl을 사용하여 서비스를 제어한다.
          (1)  ifdown 명령
                ifdown 명령은 네트워크 인터페이스를 비활성화합다.
                이 명령은 root 권한이 필요하다.

                예 )  eth0 인터페이스를 비활성화
                        $ sudo  ifdown  eth0

          (2)  ifup 명령
                ifup 명령은 비활성화된 네트워크 인터페이스를 활성화한다.
                이 명령은 root 권한이 필요하다.

                예 )  eth0 인터페이스를 활성화
                      $ sudo ifup  eth0

    [ 3 ]  ifconfig 명령
            가장 기본적으로 사용하는 명령어로 네트워크 인터페이스의 설정과 상태 정보를 출력해 준다.

              < 기본 형식 >    ifconfig  [interface]  [option]  [address]  [up/down]

      (1)  네트워크 정보 확인

              $ ifconfig

              **<  ifconfig 주요 필드의 의미 >**
              현재는 eth0`과 `lo`두 가지의 네트워크 인터페이스를 확인할 수 있다. `
             
              ◎ eth0:
                  `eth0`은 우분투 설치 시 기본으로 세팅되는 네트워크 인터페이스로 유선 이더넷 인터페이스를 의미한다.
                    이더넷(ethernet)의 `이더(ehe)`를 표현한 것으로 무선 인터페이스는 `wlan0` 등으로 표현된다. 
 
                ◎  lo:
                      이름 짓기 규칙을 보면 `lo`도 어떤 단어의 앞글자를 딴 것이라고 합리적으로 추측해 볼 수 있다.
                    `lo`는 루프백(loopback)이며, 루프백 인터페이스라고 불린다.
                      주로 시스템에서 자체 통신을 위해 사용되는 인터페이스를 말한다.

              ◎  flags
                    `flags`는 인터페이스의 상태와 옵션을 나타낸다.
                    예를 들어 `UP(활성화됨)`, `BROADCAST(브로드캐스트 지원)`, `MULTICAST(멀티캐스트 지원)` 등을 포함할 수 있다. 

                                eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>

              ◎  mtu(Maximum Transmission Unit)
                    mtu`란 네트워크 인터페이스의 최대 전송크기 이다.

                        eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                          - 단위는 `바이트(byte)`로 즉 여기서는 1500바이트가 최대전송단위임을 알 수 있다.
                          - 이더넷 환경에서는 기본 1500바이트가 디폴트 값이라고 한다.

              ◎  inet, netmask, broadcast
                  ▷  inet : IPv4주소를 말함. 
                  ▷  netmask : 서브넷 마스크
                  ▷  broadcast : 브로드캐스트 주소
                  ▷  inet 172.xxx.xxx.xxx  netmask 255.255.240.0  broadcast 172.xxx.xxx.xxx

              ◎  inet6
                  ▷  inet6 : IPv6주소를 나타냄. 
                  ▷  prefixlen : 서브넷 접두사 길이를 나타냄
                  ▷  scopeid : 주소의 범위와 유형을 나타냄. 
                  ▷  Ex)  inet6 fe80::xxx:xxxx:xxxx:xxxx  prefixlen 64  scopeid 0x20<link>
                        IPv6로 표현된 ip 주소와 서브넷접두사 길이(64비트), 링크 로컬 주소임을 의미한다.

              ◎  ether, txqueuelen
                  ▷  ether: MAC주소
                  ▷  exqueuelen: 전송 큐 길이
                  ▷  Ex)  ether xx:xx:xx:xx:xx:xx  txqueuelen 1000  (Ethernet)
                                MAC주소와 전송큐의 길이가 1000 임을 나타낸다.

              ◎  RX packets, TX packets
                  ▷  RX packets 470  bytes 74575 (74.5 KB)
                  ▷  RX errors 0  dropped 0  overruns 0  frame 0
                  ▷  TX packets 25  bytes 1822 (1.8 KB)
                  ▷  TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
                  ----------------------------------------------------------------------
                  ▷  RX packets: 수신된 패킷 수
                  ▷  bytes: 수신된 데이터 바이트 수
                  ▷  errors: 수신 중 발생한 오류 수
                  ▷  dropped: 드롭된 수신 패킷 수
                  ▷  overruns: 오버런 된 수신패킷 수 
                  ▷  frame: 프레임 오류 수
                  ▷ TX packets: 전송된 패킷 수
                  ▷ bytes: 전송된 데이터 바이트 수
                  ▷ errors: 전송 중 발생한 오류 수
                  ▷ dropped: 드롭된 전송 패킷 수
                  ▷ overruns: 오버런된 전송패킷 수
                  ▷ carrier: 캐리어 오류 수
                  ▷ collisions: 충돌 수 

          예 )  IP확인하기
                  $ ifconfig

            예 )  IP설정하기  ifconfig 이더넷명 주소 netmask 주소 broadcast 주소
                  $ ifconfig enp0 192.168.1.15    <--_enp0라는 이더넷에 아이피 192.168.0.9를 설정
                  $ ifconfig enp0 netmask 255.255.255.224    <----  enp0라는 이더넷에 서브넷 마스크만 255.255.255.224로 설정한다.
                  $ ifconfig enp0 broadcast 192.168.1.255    <----  enp0라는 이더넷에 브로드캐스트주소만 192.168.1.255로 설정한다.
                  $ ifconfig enp0 192.168.1.15 netmask 255.255.255.224    <--- enp0라는 이더넷에 아이피 192.168.1.15를 설정하고,
                                                                                                                        서브넷마스크를 255.255.255.224로 설정한다.

            예 )  이더넷(네트워크 인터페이스) 올리기/내리기  ifconfig 이더넷명 [up/down]
                    $ ifconfig enp0 up    <--- enp0라는 이더넷을 올린다(활성화한다).
                    $ ifconfig enp0 down    <--- enp0라는 이더넷을 내린다(비활성화한다).

            예 )  enp0라는 이더넷에 아이피, 서브넷마스크, 브로드캐스트 주소를 다음 각 주소로 설정하고 올린다(활성화한다).
                    $ ifconfig enp0 192.168.1.15  netmask 255.255.255.224 broadcast 192.168.1.255  up