๐ก ๋ณธ ๋ฌธ์๋ 'Ubuntu Server ๋คํธ์ํฌ ์ค์ (Networkd/NetworkManager): /etc/netplan/*.yaml, nmcli, nmtui, ...'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
Ubuntu 18 LTS ๋ถํฐ๋ Netplan์ด ์ ์ฉ๋์ด ๋คํธ์ํฌ ์ค์ ๋ฐฉ์์ด ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ Networkd, NetworkManager์ ์ด์ฉํ์ฌ ๋คํธ์ํฌ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1. ๋คํธ์ํฌ ์กฐํ
1.1. wireless-tools ์ด์ฉ
๋ฌด์ ๋ ์ค์ /์กฐํ๋ฅผ ์ง์ํ๋ ๋๊ตฌ์ธ 'wireless-tools'๋ฅผ ์ค์นํฉ๋๋ค(Ubuntu 20.04 LTS ๋ฒ์ ๋ถํฐ๋ ํฌํจ๋์ด ์์ผ๋ ๋ฑํ ์ค์นํ ํ์๋ ์์ต๋๋ค).
$ sudo apt install wireless-tools
์ค์น๋ iwconfig ๋๊ตฌ๋ก ํด๋น PC์์ ์ง์ํ๊ณ ์๋ ๋ฌด์ LAN ์ธํฐํ์ด์ค ์ ๋ณด๋ฅผ ์๋์ ๊ฐ์ด ์กฐํํด๋ณด๋ฉด 'wlan0'์์ ์ ์ ์์ต๋๋ค.
$ iwconfig
์กฐํ๋ ๋ฌด์ ๋ 'wlan0'๋ฅผ ํ์ฑํํด์ค๋๋ค.
$ sudo ifconfig wlan0 up
๋ค์์ ๋ช ๋ น์ผ๋ก, ํ์ฌ wlan0 ์ธํฐํ์ด์ค์ ์ฐ๊ฒฐ๊ฐ๋ฅํ WiFi SSID ๊ฐ์ ์ค์บํ์ฌ ์กฐํํ ์ ์์ต๋๋ค.
$ sudo iw wlan0 scan | grep SSID
์กฐํํ Wifi์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ '2. ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ค์ ๋ฐฉ๋ฒ: /etc/netplan/*.yaml'์์ ๋ค๋ฃจ๋๋ก ํ๊ฒ ์ต๋๋ค.
1.2. network manager ์ด์ฉ
Network Manager๋ ๊ธฐ๋ณธ์ ์ผ๋ก Ubuntu Desktop ๋ชจ๋์ GUI ํ๊ฒฝ์ ํตํ ๋คํธ์ํฌ ์ค์ ์ ๋ณด๋ฅผ ์์คํ ์ ๋ง์ํ์ง๋ง nmcli๋ผ๋ ๋๊ตฌ๋ฅผ ํตํด Ubuntu Server ๋ชจ๋์ CLIํ๊ฒฝ์ ์ง์ํฉ๋๋ค. Network Manager๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ผ์ ์ ๊ฐ์ด network-manager ํจํค์ง๋ฅผ ์ค์นํด์ฃผ์ด์ผ ํฉ๋๋ค.
$ sudo apt install network-manager
1.2.1. nmcli
์ค์น๋ nmcli ๋๊ตฌ๋ฅผ ํตํด ์ฐ๊ฒฐ๊ฐ๋ฅํ ๋ฌด์ ๋ ์ธํฐํ์ด์ค๋ฅผ ์กฐํํด๋ณด๋ฉด ์๋์ ๊ฐ์ด wlan0 ์ธํฐํ์ด์ค๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ด์ PW์์ WiFi๊ฐ ํ์ฑํ ๋์ด ์๋์ง ์กฐํํฉ๋๋ค. ํ์ฑํ๋ ์ํ๋ผ๋ฉด 'enabled'๋ก ์กฐํ๋๋ฉฐ ๋นํ์ฑ ์ํ๋ผ๋ฉด 'disabled'๋ก ์กฐํ๋ฉ๋๋ค.
$ sudo nmcli radio wifi
disabled
'disabled'๋ก ์กฐํ๋๋ค๋ฉด, ์๋์ ๊ฐ์ด WiFi๋ฅผ ํ์ฑํ ํด์ค๋๋ค.
$ sudo nmcli radio wifi on
์ด์ 'nmcli' ๋๊ตฌ๋ก ๋ฌด์ ๋ wlan0์ ์ฐ๊ฒฐ๊ฐ๋ฅํ WiFi ๋ฆฌ์คํธ๋ฅผ ์กฐํํด๋ณด๋ฉด, ์๋์ ๊ฐ์ด WiFi์ ๋ฆฌ์คํธ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
$ sudo nmcli device wifi list
์กฐํํ Wifi์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ '2. ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ค์ ๋ฐฉ๋ฒ: /etc/netplan/*.yaml'์์ ๋ค๋ฃจ๋๋ก ํ๊ฒ ์ต๋๋ค.
1.2.2. nmtui
Ubuntu Server์์ ์์ดํ์ด์ ์ฐ๊ฒฐํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก TUI ํ๊ฒฝ์ ์ด์ฉํฉ๋๋ค.
$ nmtui
nmtui๋ฅผ ์ ๋ ฅํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด terminal ๋ด์ gui์ ๊ฐ์ด ์ ํํ ์ ์๋ ์ฐฝ์ด ๋น๋๋ค.
- Edit a connection: ํ์ฌ ์ฐ๊ฒฐ์ค์ธ ๋คํธ์ํฌ ์ค์ ์ ๋ณ๊ฒฝ
- Activate a connection: ํ์ฌ ์ฐ๊ฒฐ ๊ฐ๋ฅํ ๋คํธ์ํฌ ํ์ถ
- Set system hostname: system์ hostname์ ๋ณ๊ฒฝ
'Edit a connection'์ ์ ํํ๋ฉด, ๊ตฌ์ฑํ ์ ์๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๊ฐ ํ์ถ๋ฉ๋๋ค. ์ดํ ํน์ ๋คํธ์ํฌ์ ์ค์ ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด '<Edit...>'์ ์ ํํ๋ฉด, ์๋์ ๊ฐ์ด ์๋ธ๋ท ๋ง์คํฌ, ๊ธฐ๋ณธ ๊ฒ์ดํธ์ฐ์ ๋ฐ DNS ์๋ฒ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
'Activate a connection'์ ์ ํํ๋ฉด ํ์ฌ ์ฐ๊ฒฐ์ค์ธ ๋คํธ์ํฌ๋ฅผ '<Deactivate>' ํ๊ฑฐ๋ ํน์ ๋คํธ์ํฌ๋ฅผ '<Activate>' ํ ์ ์์ต๋๋ค.
2. ๋คํธ์ํฌ ์ธํฐํ์ด์ค ์ค์ ๋ฐฉ๋ฒ: /etc/netplan/*.yaml
์์คํ ์ network interface ๋ชฉ๋ก์ ํ์ธํฉ๋๋ค. ์ฌ๊ธฐ์์ wlp5s0 ๋ฅผ ๊ณ ์ IP ๋ก ์ค์ ํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋๋ ip ๋ช ๋ น์ ์ฌ์ฉํด๋ ๋ฉ๋๋ค.
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 4c:ed:fb:72:a1:36 brd ff:ff:ff:ff:ff:ff
3: wlp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether 80:c5:f2:60:8f:51 brd ff:ff:ff:ff:ff:ff
$ ls /sys/class/net
enp0s31f6 wlp5s0 lo
netplan ์ ์ค์ ํ์ผ์ /etc/netplan ํด๋์ ์์นํ๊ณ ์์ผ๋ฉฐ NetworkManager์ networkd ๋๊ฐ์ ๋ ๋๋ฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. NetworkManger ๋ ๋๋ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ X Window ํ๊ฒฝ์์๋ง ์ฌ์ฉํ๊ณ ๋๋จธ์ง ๊ฒฝ์ฐ๋ networkd ๋ ๋๋ฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
ํน์ /etc/netplan ํด๋๊ฐ ์๋ค๋ฉด ๋ค์ ๋ช ๋ น์ผ๋ก ์์ฑํฉ๋๋ค.
$ sudo netplan generate
์ค์ ํ์ผ์ ํธ์ง๊ธฐ๋ก ์คํํฉ๋๋ค. Ubuntu ๋ฒ์ ์ ๋ฐ๋ผ ์ค์ ํ์ผ ์ด๋ฆ์ด ๋ค๋ฆ ๋๋ค.
# Ubuntu 18
sudo vi /etc/netplan/50-cloud-init.yaml
# Ubuntu 20
sudo vi /etc/netplan/01-netcfg.yaml
์ผ๋ฐ์ ์ผ๋ก ํ์ผ์ ์ด๋ฉด ๋ค์๊ณผ ๊ฐ์ด DHCP ๋ฐฉ์์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค.
network:
version: 2
renderer: networkd
ethernets:
wlp5s0:
dhcp4: yes
- version: netplan version 2
- renderer: networkd์ NetworkdManager๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ๋ฐ์คํฌํ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ง NetworkManager ์ฌ์ฉ
- wlp5s0: ์ ๋ด์ฉ์์ ์กฐํํ ์ด๋๋ท๋ช
์
๋ ฅ
- ์ ์ : ethernets > en-
- ๋ฌด์ : wifis > wl-
- dhcp4: [true or no] IP ์๋ํ ๋น์ ํ ์ง์ ์ฌ๋ถ๋ฅผ ์ ๋ ฅํ๋ ๋ถ๋ถ
yaml ์ ethernets ํญ๋ชฉ์ 1๋ฒ์์ ํ์ธํ ์ธํฐํ์ด์ค(wlp5s0) ํ์์ ์ ์ IP ๋ฅผ ์ค์ ํ๋ ์ค์ ์ ์ถ๊ฐํฉ๋๋ค. ๊ณ ์ IP ์ค์ ์ dhcp4: no ๋ฅผ ๊ผญ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ์ ์ ip addresses๋ฅผ ์ค์ ํจ์ ์์ด์ DHCP์ IP์ฃผ์ ๋์ฌ๋ฒ์์ ๋ฐ๋ผ์ ์ค์ ํด์ผํฉ๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ '[IPTIME ์ค์ ] DHCP๋? ๊ณ ์ IP์ ์๋IP๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ ์ค์ ๋ฐฉ๋ฒ' ์ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
$ sudo nano /etc/netplan/50-cloud-init.yaml
network:
version: 2
renderer: networkd
ethernets:
wlp5s0:
dhcp4: no
dhcp6: no
## ์ค์ ํ IP ์ Netmask
addresses: [192.168.0.214/24]
gateway4: 192.168.0.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
# optional: true
wifis:
wlan0:
dhcp4: true
access-points:
"WiFi ID":
password: "password"
"other WiFi ID":
password: "password"
"Public WiFi ID": {}
optional: true
- dhcp4 : IPv4 dhcp ์ค์
- dhcp6 : IPv6 dhcp ์ค์
- addresses [IP/Subnet]: ์ง์ ํ์ค IP์ ๋คํธ์ํฌ ๊ตฌ์ฑ๋์ด ์๋ ์๋ธ๋ท์ ์ ๋ ฅ
- gateway4 : IPv4 gateway ์ค์
- nameservers : dns ์ค์ ,๋ก ๊ตฌ๋ถ ๋ฉํฐ๋ก ์ค์ ๊ฐ๋ฅ [์๋ต ๊ฐ๋ฅ]
์ค์ ๋ฐ์ ๋ฐ ๋ฐ์ ํ์ธ
$ sudo netplan apply
$ ip addr
$ ip route
network ์ ์ฌ์ฉํ๋ ๋ช ๋ น์ด(Ex: nslookup)๋ฅผ ์ฌ์ฉํด์ ์ ์ ๋์ ์ฌ๋ถ ํ์ธ
$ nslookup google.com
์ฐธ๊ณ
- [Github] Setup Ubuntu 20.04 Server with WiFi, mysql, Apache and phpMyadmin: https://gist.github.com/stemy72/9d92c729382cf1fdc593c5004534c082
- [Blog] Ubuntu 20.04 Server ํ๊ฒฝ์์ Renderer(Networkd/NetworkManager)๋ณ ๋ฌด์ WiFi ์ฐ๊ฒฐํ๊ธฐ: https://m.blog.naver.com/love_tolty/222751620721
- [Blog] nmtui ๋๊ตฌ๋ก IP ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ: https://ko.linux-console.net/?p=678#gsc.tab=0
- [Blog] Setup WiFi on Ubuntu Server 20: https://jamesloper.com/ubuntu-server-setup-wifi
- [Blog] Ubuntu 18.04 ์๋ฒ ๋คํธ์ํฌ ์ค์ ์์๋ณด๊ธฐ: https://server-talk.tistory.com/376
- [Blog] Ubuntu 18.04 Netplan์ ์ฌ์ฉํ Static IP ์ค์ : https://blog.hkwon.me/ubuntu-18-04-netplan/
- [Blog] ubuntu netplan ์ผ๋ก ๊ณ ์ ip ์ค์ ํ๊ธฐ(static ip config): https://www.lesstif.com/lpt/ubuntu-netplan-ip-static-ip-config-61899302.html