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