Study: ComputerScience(CS)/CS: Linux

[Linux] Rasp Ubuntu Server ๋„คํŠธ์›Œํฌ ์„ค์ •(Networkd/NetworkManager): /etc/netplan/*.yaml, nmcli, nmtui, ...

DrawingProcess 2023. 7. 4. 23:30
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” '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

์ฐธ๊ณ 

 

 

๋ฐ˜์‘ํ˜•