[linux] 우분투 network static ip 수동으로 설정 - ifconfig,netplan, interfaces
[linux] 우분투 수동으로 network 설정 - ifconfig,netplan, interfaces 사용법
Ubuntu-Server-20.x LTS
netplan, interfaces 고정 IP 설정
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를 다시 시작하여 네트워크 설정의 변경 사항이나 문제 해결을 적용