리눅스에서 Wi-Fi가 작동하지 않나요? 해결 방법은 다음과 같습니다.

사용자들이 리눅스에서 자주 맞닥뜨리는 큰 문제 중 하나는 Wi-Fi입니다. Wi-Fi 드라이버는 커널에 포함되지 않는 경우가 많아, 결과적으로 비인텔 Wi-Fi 모듈을 리눅스에서 잘 작동시키는 데 많은 문제가 발생합니다. 여기서는 Wi-Fi가 리눅스에서 작동하지 않을 때 발생하는 일과 이를 해결하는 방법을 다룹니다.
목차
- 하드웨어 대 소프트웨어 Wi-Fi 문제
- Ubuntu ISO에서 드라이버 설치하기
- 문제 1: 장치 인식되지 않음
- 문제 2: 드라이버 모듈 누락
- 문제 3: DNS
- 문제 4: 네트워크 관리자 없음
팁: 리눅스에서 저장된 Wi-Fi 비밀번호를 찾는 방법을 알아보세요.
하드웨어 대 소프트웨어 Wi-Fi 문제
Wi-Fi 연결 문제는 하드웨어 문제일 수도 있고 소프트웨어 문제일 수도 있습니다. 하드웨어 문제는 진단하기가 상대적으로 쉽습니다. 터미널을 열고 다음 명령어를 입력하기만 하면 됩니다:
ping localhost
이는 물리적 하드웨어가 작동하고 있는지 확인하는 간단한 방법입니다. localhost는 NIC의 회로를 점검하기 위한 주소로 작용합니다. 이 작업이 되지 않으면 하드웨어에 대해 작업이 필요할 수 있습니다. 스스로 하거나 다른 사람에게 의뢰해야 할 수도 있습니다.
이 ping이 깨끗하게 돌아오거나 Wi-Fi 카드가 보이지 않으면 소프트웨어 문제일 가능성이 높습니다.
그 외에도 ip addr 명령어를 실행하여 시스템이 활성 네트워크 인터페이스를 감지하는지 확인할 수 있습니다. 대부분의 배포판은 현재 활성화된 무선 카드를 “wl”로 라벨링하며, 이후에는 컴퓨터의 마더보드에서 장치의 버스 및 슬롯 번호가 옵니다.
예를 들어, “wlp0s1”라는 라벨은 버스 0의 슬롯 1에 무선 네트워크 인터페이스가 있음을 의미합니다.

참고: 웹 서핑이 불가능한 경우, 리눅스 머신에서 IPv6를 비활성화해야 할 수 있습니다.
Ubuntu ISO에서 드라이버 설치하기
배포판이 Wi-Fi 네트워크를 전혀 감지하지 못하거나 오류가 발생하는 경우, Ubuntu ISO 파일에서 Wi-Fi 드라이버를 설치하거나 다시 설치해 볼 수 있습니다. 먼저, 해당하는 Ubuntu 버전에 맞는 Ubuntu ISO를 다운로드해야 합니다. (아마도 다른 장치에서 다운로드하거나 Ubuntu의 Ethernet 연결을 사용하여 다운로드해야 할 것입니다.)
터미널을 열고 Ubuntu ISO를 가상 드라이브에 마운트하기 위한 다음 명령어를 입력합니다:
sudomkdir/media/cdrom
sudomount-o loop ~/Downloads/ubuntu-*.iso /media/cdrom대시보드에서 “소프트웨어 업데이트 관리자”로 이동한 후, 창의 왼쪽 하단 모서리에 있는 설정 버튼을 클릭합니다.

추가 드라이버 탭을 클릭한 후, 무선 네트워크 어댑터 옵션을 선택하고 변경 사항 적용을 클릭합니다.
문제 1: 장치 인식되지 않음
무선 장치가 Ubuntu(또는 그 어떤 배포판)에서 인식되지 않는 경우, 터미널 세션을 열고 다음 명령어를 입력하세요:
sudo lsusb이 명령어는 현재 머신에 연결된 모든 USB 장치의 목록을 출력합니다. “무선 어댑터” 또는 “RTL”이 포함된 줄을 찾으세요.
sudo lsusb |grep"RTL"
모든 USB 어댑터 목록 외에도 PCI 무선 장치를 탐색할 수도 있습니다. 그렇게 하려면 다음 명령어를 실행합니다:
sudolspcilsusb 명령어와 마찬가지로, “네트워크 컨트롤러” 또는 “이더넷 컨트롤러” 라벨이 포함된 lspci 출력의 줄을 찾아보세요.

무선 장치가 현재 사용 중인 정확한 드라이버 모듈을 찾으려면 다음 명령어를 실행합니다:
sudo lshw -C network |grep"driver"“드라이버” 변수의 값을 강조 표시하고 클립보드에 복사합니다.

문제 2: 드라이버 모듈 누락
성공적으로 lsusb 및 lspci를 수행한 후, 당신의 리눅스 배포판이 무선 카드를 볼 수 있음을 확인한 경우, 펌웨어는 작동하고 있으나 시스템이 장치를 어떻게 처리할지 모르는 상태일 수 있습니다. 이럴 때 드라이버나 모듈이 필요합니다.
다음 명령어를 입력한 후 “modulename”을 클립보드의 내용으로 바꿉니다:
sudo modprobe modulename예를 들어, 무선 드라이버가 “iwlwifi”라면 다음과 같이 입력하면 됩니다:
sudo modprobe iwlwifi그 후 sudo lsmod | grep "modulename"을 실행하여 리눅스 커널이 Wi-Fi 장치를 올바르게 로드했는지 확인합니다.

부팅 시 드라이버 모듈 자동 로드
드물게 모듈이 부팅에서 유지되지 않는 경우가 있지만 이 상황에서는 영구적으로 로드하도록 강제할 수 있습니다. 터미널에 다음 명령어를 입력합니다:
sudonano/etc/modules파일 하단에 모듈 이름을 추가하고 파일을 저장합니다.

머신을 재부팅하여 리눅스 커널이 무선 장치를 올바르게 로드했는지 확인합니다.
알아두면 좋은 점: 지금 바로 Ubuntu에 나만의 커스텀 리눅스 커널을 설치하여 컴퓨터가 하드웨어를 관리하는 방법을 알아보세요.
문제 3: DNS
DNS가 문제인 경우는 드물지만 여전히 연결 문제가 있는 경우 조사해볼 만한 가치가 있습니다. 터미널에서 다음 명령어를 입력하여 시스템의 기본 DNS 리졸버를 확인합니다:
nmcli device show INTERFACE-NAME |grep IP4.DNS기본적으로 이 값은 라우터의 IP 주소로 설정됩니다. 작동하지 않으면 “wlp0s1”을 무선 네트워크에서 사용되는 값으로 변경해야 할 수 있습니다. 다음 명령어를 사용하여 식별명을 가져올 수도 있습니다:
ip addr|grep": "이 정보를 확보한 후, DNS 리졸버의 주소에 핑을 보냅니다. 이것이 작동하면 구글의 DNS 리졸버와 같은 외부 네트워크에 핑을 보내볼 수도 있습니다:
ping 8.8.8.8네트워크 내의 모든 장치에서 페이지 로드 오류가 발생하는 경우, 라우터의 DNS 리졸버를 구글 또는 OpenNIC 서버로 변경해야 합니다. 이를 수행하는 방법은 라우터 제조사에 문의해야 하지만, 일반적으로 장치의 관리 콘솔에 액세스하여 수행합니다. 대부분의 라우터에서는 웹 브라우저에서 “192.168.0.1” 또는 “192.168.254.254”로 이동하면 찾을 수 있습니다.
NetworkManager에 사용자 정의 DNS 서버 추가하기
그런데, 장치별로 DNS 리졸버를 변경할 수 있습니다. 이를 Ubuntu에서 하려면, 데스크탑 오른쪽 상단의 제어 메뉴 버튼을 클릭한 후 기어 아이콘을 선택합니다.

Wi-Fi 카테고리를 클릭한 후, 가시적인 네트워크 카테고리를 찾습니다.

무선 액세스 포인트 이름이 포함된 줄의 기어 아이콘을 선택합니다.
작은 창의 상단 바에서 IPv4 탭을 클릭합니다.

DNS 섹션으로 이동하여 자동 스위치를 끕니다.

DNS 텍스트박스에 “8.8.8.8,8.8.4.4”를 입력한 다음 적용 버튼을 클릭하여 설정을 저장합니다.

새로운 터미널을 열고 다음 명령어를 실행하여 이전 DNS 리졸버 데이터를 제거합니다:
resolvectl flush-caches시스템이 이제 새로운 DNS 리졸버 설정을 사용하고 있는지 확인하려면 다음 명령어를 실행합니다:
resolvectl status |grep"Current DNS Server"현재 DNS 설정이 네트워크 문제를 해결했는지 확인하려면 웹 브라우저에서 웹 페이지를 로드해보세요.

알아두면 좋은 점: 리눅스에서 dig를 사용하여 이름 서버와 DNS 리졸버에 대해 더 알아보세요.
문제 4: 네트워크 관리자 없음
네트워크 관리자를 제거했거나 우연히 삭제한 경우를 가정해봅시다. 이는 정말 골치 아픈 상황입니다: 인터넷도 없고 네트워크 관리자도 없으며 하지만 할 수 있는 것들이 있습니다.
패키지가 여전히 캐시에 있다면 터미널로 가서 다음 명령어를 입력할 수 있습니다:
# Debian/Ubuntu
sudo apt install network-manager
# Fedora
sudo dnf install NetworkManager
# Arch Linux
sudo pacman -Syu networkmanager이것이 작동하지 않으면 wpa_supplicant를 사용하여 시스템이 무선 액세스 포인트에 연결하도록 강제할 수 있습니다. 이는 네트워크 관리자를 사용하지 않고 무선 장치의 드라이버를 사용하여 액세스 포인트에 연결하는 명령줄 도구입니다.
시작하려면, 좋아하는 텍스트 편집기를 사용하여 wpa_supplicant용 구성 파일을 만듭니다:
sudonano/etc/wpa_supplicant.conf구성 파일 내에 다음 코드 블록을 붙여넣고, “SSID” 및 “PASSWORD”를 라우터의 액세스 포인트 이름과 비밀번호로 바꿉니다:
network={
ssid="SSID"
password="PASSWORD"
}구성 파일을 저장한 후, 터미널 세션에 다음 라인을 붙여넣습니다:
sudo wpa_supplicant -B-i INTERFACE-NAME -c/etc/wpa_supplicant.conf -D nl80211“-i” 플래그의 값을 무선 인터페이스 이름으로 바꿉니다.
참고: 이 명령어는 최신 무선 카드에서만 작동합니다. 오래된 Wi-Fi 카드에 연결하려고 하는 경우, “-D” 플래그의 값을 “wext”로 바꿉니다.
라우터에서 새로운 IP 주소를 요청하려면 DHCP 지속성 프로세스를 다시 로드합니다:
sudo dhclient INTERFACE-NAME이제 Wi-Fi 연결이 작동하는지 외부 사이트에 핑을 보내 테스트합니다:
ping-c5 maketecheasier.com리눅스 시스템의 Wi-Fi 기능을 복원하려면 네트워크 관리자를 다시 설치합니다:
sudo apt install network-manager새로운 네트워크 관리자 설치를 로드하기 위해 머신을 재부팅합니다.
Wi-Fi 모듈과 커널 드라이버가 작동하는 방식에 대한 이해는 리눅스가 내부에서 어떻게 작동하는지를 배우는 첫 번째 단계에 불과합니다. Shufflecake를 사용하여 숨겨진 파일 시스템을 생성하여 이 운영 체제의 기술적인 측면을 더욱 탐구해보세요.