Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스에서 Wi-Fi가 작동하지 않나요? 단계별 해결 방법 총정리

리눅스에서 Wi-Fi가 작동하지 않나요? 단계별 해결 방법 총정리

리눅스 사용자들이 가장 자주 겪는 어려움 중 하나가 바로 Wi-Fi 연결입니다. Wi-Fi 드라이버는 커널에 기본으로 포함되어 있지 않은 경우가 많아서, 인텔 이외의 무선랜 모듈이 리눅스에서 제대로 작동하도록 만드는 데 여러 가지 문제가 발생하기 쉽습니다. 이 글에서는 리눅스에서 Wi-Fi가 작동하지 않을 때 나타나는 원인과 해결 방법을 단계별로 살펴보겠습니다.

하드웨어 문제 vs 소프트웨어 문제 구분하기

Wi-Fi 연결 문제는 하드웨어 문제일 수도 있고 소프트웨어 문제일 수도 있습니다. 하드웨어 문제는 비교적 쉽게 진단할 수 있는데, 터미널을 열고 아래 명령어를 입력하기만 하면 됩니다.

ping localhost
리눅스에서 Wi-Fi가 작동하지 않나요? 단계별 해결 방법 총정리

localhost는 NIC(네트워크 인터페이스 카드)의 회로를 점검하는 주소 역할을 합니다. 이 간단한 테스트로 물리적인 하드웨어가 정상적으로 작동하는지 확인할 수 있습니다. 만약 응답이 정상적으로 돌아오지 않는다면, 직접 수리하거나 전문가에게 하드웨어 점검을 맡겨야 할 수 있습니다.

반대로 ping 결과가 깨끗하게 돌아오는데도 Wi-Fi 카드가 보이지 않는다면, 대체로 소프트웨어 문제일 가능성이 높습니다.

Ubuntu ISO에서 드라이버 설치하기

배포판이 Wi-Fi 네트워크를 전혀 감지하지 못하거나 오류가 발생한다면, Ubuntu ISO 파일로부터 Wi-Fi 드라이버를 설치하거나 재설치해 볼 수 있습니다. 먼저 사용 중인 우분투 버전에 맞는 ISO 파일을 다운로드해야 합니다. (당연히 다른 기기에서 내려받거나, 우분투의 유선 이더넷 연결을 통해 다운로드해야 합니다.)

다운로드한 Ubuntu ISO를 홈 디렉터리에 넣은 뒤, 터미널에서 아래 명령어를 순서대로 입력하여 ISO를 가상 드라이브에 마운트합니다.

sudo mkdir /media/cdrom
sudo mount -o loop ubuntu-*.iso /media/cdrom

그다음 대시보드에서 "소프트웨어 & 업데이트(Software & Updates)"를 실행하고, 새 창에서 "CDrom with [사용 중인 배포판 이름 및 버전]" 항목에 체크한 후 요청 시 비밀번호를 입력합니다.

"추가 드라이버(Additional Drivers)" 탭으로 이동한 뒤 "무선 네트워크 어댑터(Wireless Network Adapter)" 옵션을 선택하고 "변경 사항 적용(Apply Changes)"을 클릭합니다.

문제 1: 장치가 감지되지 않음

우분투(또는 다른 배포판)가 무선 장치를 감지하지 못한다면, 터미널을 열고 다음 명령어를 입력해야 합니다.

sudo lsusb

USB 방식의 무선 카드/동글을 사용하는 경우 위 명령어를, 내장형 무선 카드를 사용하는 경우에는 아래 명령어를 입력합니다.

리눅스에서 Wi-Fi가 작동하지 않나요? 단계별 해결 방법 총정리
sudo lspci

명령어 결과가 아래 스크린샷과 비슷한 형태로 출력된다면 운이 좋은 것입니다. 우분투가 무선 카드를 찾아낸 것이며, 일반적으로 "Network Controller" 또는 "Ethernet Controller"라는 이름으로 표시됩니다.

과거에는 많은 리눅스 배포판이 무선 카드를 찾는 데 어려움을 겪었지만, 다행히 지원이 크게 개선되어 요즘은 드문 경우가 되었습니다.

추가 확인 명령어

시스템이 무선 장치를 인식하는지 확인하려면 아래 명령어를 사용할 수도 있습니다. 이 경우 lshw 패키지를 먼저 설치해야 할 수 있습니다.

sudo lshw -C network
리눅스에서 Wi-Fi가 작동하지 않나요? 단계별 해결 방법 총정리

출력 결과는 대략 다음과 같은 형태입니다.

*-network
description: Wireless interface
product: PRO/Wireless 3945ABG [Golan] Network Connection
vendor: Intel Corporation

이렇게 시스템이 무선 카드를 찾았다면, 아래에서 설명할 대로 드라이버/모듈 설치를 진행할 수 있습니다.

문제 2: 드라이버 모듈 누락

lsusblspci 명령이 성공적으로 실행되고 배포판이 무선 카드를 인식했다면, 펌웨어는 정상적으로 작동하고 있지만 시스템이 해당 카드를 어떻게 다뤄야 할지 모르는 상태라고 볼 수 있습니다. 바로 이때 드라이버 또는 모듈이 필요합니다.

터미널로 돌아가 다음 명령어를 입력합니다.

sudo lsmod

그러면 현재 사용 중인 모듈 목록이 표시됩니다. 모듈을 활성화하려면 아래 명령어에서 "modulename" 부분에 자신의 칩셋 이름을 넣어 입력합니다.

sudo modprobe modulename

예를 들어 무선 칩셋이 "RT2870"이라면 다음과 같이 입력합니다.

sudo modprobe rt2800usb
리눅스에서 Wi-Fi가 작동하지 않나요? 단계별 해결 방법 총정리

실행 후 lsmod 명령을 다시 입력하여 모듈이 올바르게 로드되었는지 확인합니다.

부팅 시 모듈 자동 로드 설정

흔한 일은 아니지만, 때로는 모듈이 재부팅 후에 유지되지 않는 경우가 있습니다. 이럴 때는 모듈이 영구적으로 로드되도록 강제할 수 있습니다. 터미널에 아래 명령어를 입력합니다.

sudo nano /etc/modules

nano 텍스트 편집기가 열리면 파일 맨 아래에 모듈 이름을 추가하고 저장합니다. 그런 다음 재부팅하여 무선 카드가 네트워크를 정상적으로 인식하고 평소처럼 연결할 수 있는지 확인합니다.

막힌다면 같은 과정을 반복해 보세요. 참고로 우분투 온라인 문서에는 유용한 도움말 페이지가 많으니 함께 살펴보는 것도 좋습니다. 또한 터미널에서 아래와 같이 입력하면 내장 도움말을 활용할 수 있습니다.

man lsusb
man lspci

문제 3: DNS 오류

DNS가 원인인 경우는 드물지만, 여전히 연결 문제가 해결되지 않는다면 점검해 볼 가치가 있습니다. 터미널에서 아래 명령어를 입력하여 DNS 정보가 어디에서 오는지 확인합니다.

nmcli device show wlan1 | grep IP4.DNS

이 명령은 라우터의 LAN 주소를 보여줍니다. 만약 작동하지 않는다면 "wlan1"을 실제 사용 중인 무선 인터페이스 이름으로 변경해야 할 수 있습니다. 인터페이스 이름은 아래 명령어로도 확인할 수 있습니다.

ip a s

이 정보를 확보했다면, 다음 단계는 라우터의 LAN 주소로 ping을 보내는 것입니다. 성공한다면 구글 DNS 서버로도 ping을 시도해 봅니다.

ping 8.8.8.8

이 결과들을 통해 DNS 문제의 위치를 파악할 수 있습니다. 집이나 사무실의 모든 기기에서 페이지 로딩 오류가 발생한다면, 라우터의 DNS를 구글 DNS 또는 OpenDNS 서버로 변경하세요. 구체적인 방법은 라우터 제조사의 안내를 따라야 하지만, 일반적으로 관리자 페이지(주로 192.168.0.1 등)에 로그인하여 설정합니다.

DNS 문제가 우분투에서만 발생한다면, Network Manager GUI를 통해 다음 단계를 따라 해결할 수 있습니다.

  • Network Manager 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.
  • Edit Connections(연결 편집)를 선택합니다.
  • 문제가 되는 Wi-Fi 연결을 선택합니다.
  • IPv4 Settings(IPv4 설정) 탭으로 이동합니다.
  • Method를 "DHCP Addresses Only"로 변경합니다.
  • DNS 서버 입력란에 8.8.8.8, 8.8.4.4를 추가합니다. IP 주소는 반드시 쉼표로 구분하고 공백은 넣지 않습니다.
  • 저장 후 창을 닫습니다.

마지막으로 시스템을 재부팅하거나, 터미널에서 Network Manager를 재시작합니다.

sudo service network-manager restart

문제 4: Network Manager가 없음

Network Manager를 삭제했거나 실수로 제거한 상황을 가정해 봅시다. 인터넷도 없고 Network Manager도 없는 정말 곤란한 상황이지만, 그래도 방법은 있습니다.

패키지가 아직 캐시에 남아 있다면, 터미널에서 아래 명령어를 입력해 재설치할 수 있습니다.

# Debian/Ubuntu
sudo apt install network-manager
 
# Fedora
sudo dnf install network-manager
 
# Arch Linux
sudo pacman -Syu network-manager

만약 캐시마저 삭제했다면, 이더넷 케이블을 이더넷 포트에 꽂아 유선으로 연결한 뒤 위 명령어를 다시 실행하면 됩니다.

위 방법 모두 실패한다면, 마지막 단계로 설정 파일을 직접 수정해야 합니다. 여기서는 gedit을 텍스트 편집기로 선택했지만, 선호하는 편집기로 바꿔 명령어를 조정해도 됩니다.

sudo gedit /etc/network/interfaces

파일 내용을 다음과 같이 수정합니다.

auto lo
iface lo inet loopback
 
auto wlan0
iface wlan0 inet dhcp
wpa-essid myssid
wpa-psk mypasscode

그런 다음 아래 코드를 입력하여 인터페이스를 재시작합니다.

sudo ifdown wlan0 && sudo ifup -v wlan0

리눅스 무선 서브시스템에 대해 더 자세히 알고 싶다면 kernel.org 위키를 참고하시기 바랍니다.

Wi-Fi가 정상적으로 작동하게 되었다면, 리눅스에서 윈도우 게임을 즐기는 최고의 방법을 알아보며 축하해 보는 건 어떨까요? 아니면 리눅스에서 파일 이름을 변경하는 다양한 방법을 아직 잘 모른다면, 관련 가이드를 확인해 보세요.