InfraPlatform

[linux] 우분투 수동으로 network 설정 - ifconfig,netplan, interfaces 사용법

IT오이시이 2024. 2. 5. 16:09
728x90

[linux] 우분투  수동으로 network 설정 - ifconfig,netplan, interfaces  사용법

 

Ubuntu에서 수동으로 Ethernet 네트워크 설정을 하는 방법

다음과 같은 순서로 네트웍 드라이버를 설정 합니다.

1.  ifconfig로 네트워크 인터페이스를 확인한다.
2.  netplan 방식 으로 설정
3.  /etc/network/interfaces 방식으로 설정

 

 


* " netplan " 방식은 Ubuntu 17.10부터 도입된  YAML 기반의 새로운 네트워크 구성 도구입니다.
/etc/netplan/ 디렉터리에 YAML 파일을 생성하여 네트워크 설정이 간편합니다. 변경된 설정은 sudo netplan apply 명령을 사용하여 즉시 적용되며, 서비스를 다시 시작할 필요가 없습니다.

* Ubuntu 20.04 이상에서는 기본적으로 netplan을 사용하는 것이 권장합니다.

 

* "  /etc/network/interfaces 방식" 은  Ubuntu 18.04 이전 버전에서 사용되며, 네트워크 설정을 변경할 때마다 수동으로 파일을 수정해야 하며, 설정을 적용하려면 서비스를 다시 시작해야 합니다.

 


 

1. 네트워크 인터페이스 확인: ifconfig


사용 가능한 네트워크 인터페이스를 확인합니다. 일반적으로 Ethernet 인터페이스는 ethX 또는 enpXsX와 같은 이름을 가집니다.  

# ifconfig 는 리눅스/유닉스에서 (RHEL, CentOS, Rocky, Ubunto)사용 가능한 명령어입니다.

# 사용가능한 네트웍 인터페이스 목록 조회
ifconfig -a   


# 사용중인 네트웍 인터페이스 목록 조회
sudo ifconfig


다음과 같이 사용가능한 드라이버 목록이 조회 됩니다.

couple@mygpt:~$ sudo ifconfig -a
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.2.15  netmask 255.255.255.0  broadcast 10.0.2.255
        inet6 fe80::a00:27ff:fe87:dfcb  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:87:df:cb  txqueuelen 1000  (Ethernet)
        RX packets 650  bytes 262848 (262.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 479  bytes 60301 (60.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s8: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 08:00:27:59:64:fd  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

아래와 같이 아직 설정되지 않은 드라이버의 내용이 출력됩니다.

enp0s8: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 08:00:27:59:64:fd  txqueuelen 1000  (Ethernet)

 


 

2. netplan 방식으로 네트워크 설정

  - /etc/netplan/ 디렉토리에 "00-installer-config.yaml" 을 보면 다음과 같이 설정 되어 있습니다.

# 00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
  version: 2

 

 2.1  네트워크 인터페이스 정보 저장 

   새로운 디바이스 "enp0s8"을 추가하여 아래와 같이 수정 합니다.

   - ip : 192.168.56.10
   - gateway : 192.168.56.1

#/etc/netplan/01-installer-config.yaml
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      addresses: [192.168.56.10/24]
      nameservers:
        addresses: [8.8.8.8]
  version: 2
  
# 만약 enp0s8로 외부 gateway를 설정한다면 다음과 같습니다. --------------

    enp0s8:
      addresses: [192.168.56.10/24]
      routes:
        - to : 0.0.0.0/0
          via: 192.168.56.1
      nameservers:
        addresses: [8.8.8.8]

 

enp0s3 인터페이스:
   - DHCP를 통해 자동으로 IP 주소를 얻습니다.
   - 현재 vm에서 외부 default gateway로 설정 된 디바이스

enp0s8 인터페이스:
   - 내부 로컬 통신을 위해 만든  IP 주소이며 192.168.56.10과 서브넷 마스크 24를 사용합니다.
   - 내부 로컬망으로 gateway를 추가 하지 않았습니다.

   
만약 추가로, gateway를 설정한다면 "route:"  라우트를 추가하면됩니다.  이 라우트는 192.168.56.1을 통해 이동합니다.
DNS 서버로 Google의 공개 DNS 서버(8.8.8.8)를 사용합니다.

 

* 다음과 같은 내용은 Deprecated 되었다.

# gateway4  : Deprecated

enp0s3:
    addresses: [192.168.56.10/24]
    gateway4:192.168.56.1
    nameservers:
        addresses:[8.8.8.8,8.8.4.4]

 

 

2.2 네트워크 설정을 적용한다.

sudo netplan apply

 

  "netplan" 명령으로 네트워크 설정 상태 확인 합니다.

couple@mygpt:/etc/netplan$ netplan get
network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      addresses:
      - "192.168.56.10/24"
      nameservers:
        addresses:
        - 8.8.8.8
      routes:
      - to: "0.0.0.0/0"
        via: "192.168.56.1"

 

 


 

3.  /etc/network/interfaces 으로 네트워크 설정

 

   - 이 파일은 Ubuntu 18.04 이전 버전에서 네트워크 인터페이스를 구성하는 데 사용됩니다.
   - 예를 들어, IP 주소, 서브넷 마스크, 게이트웨이, DNS 등을 직접 명시해야 합니다.
   - 네트워크 설정을 변경할 때마다 수동으로 파일을 수정해야 하며, 설정을 적용하려면 서비스를 다시 시작해야 합니다.

 

sudo vi /etc/network/interfaces

# 다음과 같은 내용을 추가 합니다.
auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0
    gateway 192.168.56.1
    dns-nameservers 8.8.8.8

 * (주의) 자신의 네트워크 환경에 따라서 IP 주소, 서브넷 마스크, 게이트웨이 및 DNS 값을 수정합니다.

 

 

2.3) 네트웍 드라이버  서비스를 재로딩합니다.

 

- Ubunto  network 재기동 

sudo systemctl restart systemd-networkd.service

couple@mygpt:~$ systemctl restart systemd-networkd.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'systemd-networkd.service'.
Authenticating as: cdr (couple)
Password:
==== AUTHENTICATION COMPLETE ===

 

- RHEL, CentOS, Rocky

# systemd-networkd나 NetworkManager와 같은 백엔드 네트워크 매니저 재기동
sudo systemctl restart NetworkManager

sudo systemctl restart systemd-networkd

*  Network Manager를 다시 시작하여 네트워크 설정의 변경 사항이나 문제 해결을 적용

 


 

728x90
반응형