해당 포스팅은 작성자가 공부 목적으로 작성한 글로써 작동하지 않거나 일부 틀린 부분이 존재할 수 있습니다.

개요

Ubuntu 18.04에서 nmcli 명령어를 사용하여 무선랜에 접속하고 IP를 고정(static)적으로 할당하는 방법을 알아본다. 일반적인 데스크탑 PC에서는 대부분 네트워크에 연결하기 위해 유선랜을 사용하고 무선랜을 사용할 일이 없지만 Jetson Platform같이 Ubuntu 18.04 OS임에도 Wifi 모듈이 달려있다면 이야기가 달라진다. 일반 wifi 모듈이 메인보드에 포함된 데스크탑에도 적용되고 Jetson 장비들에도 적용할 수 있다.

  • Ubuntu 18.04
  • Wifi(wlan) 연결
  • Jetson Platform 적용

서비스 설정

우분투 데스크탑이나 Jetson Platform 전부 networkingnetwork-manager 서비스가 존재한다. 무선랜에 접속하기 위해 본인은 network-manager 서비스 만을 이용하여 연결하기로 했다. 또 해당 서비스에 연결되는 nmcli, nmtui 등의 도구들이 있는데 nmcli를 이용하여 연결 할 것이다. 우선 서비스들을 정리해준다.

$ sudo systemctl stop networking.service
$ sudo systemctl disable networking.service

$ sudo systemctl start network-manager.service
$ sudo systemctl enable network-manager.service

인터페이스 확인

ifconfigip addr show 등의 명령어를 통해 무선랜을 연결 할 수 있는 네트워크 인터페이스 이름을 확인하자. 본인의 경우 아래와 같이 wlan0으로 표시가 된다.

$ ifconfig
>>>
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 48:e2:1f:5a:54:36  txqueuelen 1000  (Ethernet)

...
...
...

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.32.228  netmask 255.255.0.0  broadcast 172.16.255.255
        inet6 fe80::c624:f199:1b24:f6f1  prefixlen 64  scopeid 0x20<link>
        ether 90:9e:3e:0a:38:f4  txqueuelen 1000  (Ethernet)
        RX packets 5202  bytes 5251859 (5.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1330  bytes 141836 (141.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

네트워크 접속

nmcli 도구를 사용하여 wifi의 목록을 확인한다. 해당 명령어가 처음이라면 nmcli --help 명령어를 통해 간단한 사용법을 훑어보자.

wifi 목록 검색

아래 명령어를 통해 무선 랜카드나 와이파이 안테나가 잡을 수 있는 wifi 목록을 가져온다.

$ nmcli dev wifi list

위의 명령어에서 dev 대신 d 혹은 device 라고 입력해도 동일하게 작동한다. 해당 명령어를 실행하면 현재 검색되는 와이파이 목록이 출력된다. 아래의 wifi 이름은 wifi 1 이런식이 아니라 실제 iptime 같은 와이파이 이름으로 나온다.

        wifi_1                  Infra  11    270 Mbit/s  92      ▂▄▆█  WPA2
        wifi_2                  Infra  9     130 Mbit/s  85      ▂▄▆█  WPA2
        wifi_3                  Infra  2     270 Mbit/s  75      ▂▄▆_  WPA2
        wifi_4                  Infra  4     270 Mbit/s  75      ▂▄▆_  WPA2
        wifi_5                  Infra  1     130 Mbit/s  59      ▂▄▆_  WPA1
        wifi_6                  Infra  4     65 Mbit/s   59      ▂▄▆_  WPA2
        wifi_7                  Infra  1     270 Mbit/s  49      ▂▄__  WPA2
        ...
        ...

무선랜 접속 및 확인

무선랜 접속은 다음 명령어로 수행한다. 만약 와이파이 이름이 wifi_2이고 비밀번호가 qwer12!@ 이라면 다음과 같이 작성할 수 있다.

# nmcli dev wifi connect {SSID} password {PASSWORD}
$ nmcli dev wifi connect wifi_2 password qwer12!@

와이파이에 연결이 되었는지 여부만을 확인하려면 아래의 명령어를 통해 확인 할 수 있다. 연결 되었다면 현재 연결된 네트워크 인터페이스의 CONNECTION 탭에만 연결된 와이파이가 보일 것이다.

# d or dev or device
$ nmcli d status

>>>
DEVICE  TYPE      STATE        CONNECTION 
wlan0   wifi      connected    wifi_2  
eth0    ethernet  unavailable  --         
l4tbr0  bridge    unmanaged    --         
usb0    ethernet  unmanaged    --         
lo      loopback  unmanaged    --   

또한 ip 정보라던지 자세한 연결 상황을 보고 싶다면 show 옵션과 인터페이스 명을 조합하여 자세히 볼 수도 있다.

$ nmcli d show wlan

>>>
GENERAL.DEVICE:                wlan0
GENERAL.TYPE:                  wifi
GENERAL.HWADDR:                90:9E:3E:0A:38:F4
GENERAL.MTU:                   1500
GENERAL.STATE:                 100 (connected)
GENERAL.CONNECTION:            wifi_2
GENERAL.CON-PATH:              /org/freedesktop/NetworkManager/ActiveConnec
IP4.ADDRESS[1]:                172.16.32.228/16
IP4.GATEWAY:                   172.16.0.1
IP4.ROUTE[1]:                  dst = 172.16.0.0/16, nh = 0.0.0.0, mt = 600
IP4.ROUTE[2]:                  dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 100
IP4.ROUTE[3]:                  dst = 0.0.0.0/0, nh = 172.16.0.1, mt = 600
IP4.DNS[1]:                    172.16.0.1
...
...

IP 수동으로 변경

접속 구성에 대한 수정도 nmcli 명령어와 device 명령어 내에서 해결 할 수 있다. 추가적으로 modify 혹은 mod 명령어를 더 붙여서 접속을 구성하는 요소들을 변경해준다. 아래 명령어 들에서 wlan0은 사용자의 네트워크 인터페이스로 바꿔주자. 아래는 기존 접속 구성에서 IP 172.16.10.100/16에 접속하고 gateway는 172.16.0.1, dns를 8.8.8.8로 변경해주는 예제이다.

# 연결 방식을 수동으로 변경
$ nmcli dev mod wlan0 ipv4.method manual

# ip주소와 넷마스크 설정
$ nmcli dev mod wlan0 ipv4.address 172.16.10.100/16

# gateway 와 dns 설정(연속으로 입력해도 동작한다.)
$ nmcli dev mod wlan0 ipv4.gateway 172.16.0.1 ipv4.dns 8.8.8.8

경험상 유의할 점은 ip를 변경하는 순간 ssh등의 도구로 원격접속해 있었다면 ip가 실시간으로 바뀌어 연결이 멈출 수 있다는 점이다. 터미널을 다시 열어서 ssh를 다시 접속해야할 수도 있다. 그래서 본인의 경험 상 한줄에 처리하는 것이 좋다.

댓글남기기