도움이 되는 Tip/리눅스&워드프레스

아치리눅스 설치 과정 12 - 재부팅 후 인터넷 연결 안됨? (resolv.conf)

흔남. 2023. 2. 27. 01:17

이전 글(아치리눅스 설치 과정 11 - 시스템 설정, GRUB2 부트로더 설치, 재부팅)에 이어...

 

리눅스는 인터넷이 없으면 실사용 불가능하죠.

하지만 아치리눅스 설치 가이드 문서를 겉핥기식으로 따라했다가는
재부팅시 인터넷 연결이 끊긴 상태일 확률이 높습니다.

 

(pacman -Syu 입력했는데 업데이트 안되면 화가 많이 납니다.)

 

LANG=en_US.UTF-8

(한국어 로케일 설정때문에 깨져 보이면 위의 명령어를 입력해 보세요. 재부팅 전까지 영문으로 유지됩니다.)

 

▲ 왜 안될까 싶어서 ping 테스트 해봤는데, failure in name resolution 에러가.

 

제가 알아본 해결 방법은 2가지입니다.
1안, 2안 중 편한 방법을 선택하여 문제 해결하면 됩니다. (저는 1안을 추천합니다.)

 

유선인터넷 기준이고,

systemctl start iwd.service

무선인터넷(Wifi)은 위 명령을 입력한 다음 아래 글을 참고하여 각자 연결 후 따라오세요.

(참고글 : 아치리눅스 설치 과정 03 - 콘솔창/터미널창 유선랜 WiFi 연결 방법 )

 

1안 : systemd-networkd + systemd-resolved 조합

1안의 장점은 아치리눅스 설치시 기본으로 장착되는 systemd 기능을 활용한다는 것입니다. 그래서 별도의 패키지를 추가 설치할 필요가 없습니다.

 

이전 글을 따라서 아치리눅스를 설치하였다면 systemd-networkd 구동에 쓰이는 환경설정(conf) 파일들이 들어가 있을 것입니다.

다른 분들이 작성한 아치리눅스 설치 가이드를 따랐다면 환경설정 파일이 없을 확률이 높아요. 그렇다면 아래 링크의 아치위키 문서를 참고하여 systemd-networkd 구동에 쓰이는 환경설정 파일을 구성하십시오. conf 파일 내용에 대한 설명은 하지 않겠습니다.

 

https://wiki.archlinux.org/title/Systemd-networkd

 

 

systemctl start systemd-networkd.service

라고 입력하여 systemd-networkd 서비스를 1회성으로 구동해 봅니다.

ping -c 2 google.com

으로 인터넷 연결 테스트해봅니다. 안되면...

systemctl status systemd-networkd.service

입력하여 systemd-networkd 서비스가 active 상태인지 확인합니다. 위 스샷 기준으로 잘 돌아가고 있군요.ㅠㅠ

 

그렇다면 systemd-resolved 서비스를 더해볼 차례입니다.

(참고 문서 : https://wiki.archlinux.org/title/systemd-resolved )

 

 

systemctl start systemd-resolved.service

라고 입력하여 systemd-resolved 서비스를 1회성으로 구동해 봅니다.

서비스가 시작되면 /run/systemd/resolve/ 경로에 파일들이 많이 생성되었을 겁니다.

 

 

rm /etc/resolv.conf

(또는 mv /etc/resolv.conf /etc/resolv_ori.conf)

하여 기존의 /etc/resolv.conf 파일을 삭제합니다. (또는 백업합니다.)

ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

라고 심볼릭 링크를 생성합니다. /etc/resolv.conf 의 역할을 /run/systemd/resolve/stub-resolv.conf 파일이 대신하도록 시키는 거예요.

 

 

systemctl restart systemd-resolved.service

systemd-resolved 서비스를 재시작하여 /etc/resolv.conf 파일을 다시 읽어들이게 합니다.

systemctl restart systemd-networkd.service

(혹시 몰라서) systemd-networkd 서비스를 재시작하여 유선랜/무선랜 활성화를 다시 합니다.

ping -c 2 google.com

인터넷 연결 테스트. 잘 되는 것을 확인했습니다.

 

 

▼ 아래의 enable 명령어는 GUI를 설치할 계획이면 안 넣는 것이 좋습니다. GUI 기반 네트워크 매니저를 설치하면 자동으로 인터넷 연결 문제가 해결되기 때문입니다.

systemctl enable systemd-networkd.service

systemctl enable systemd-resolved.service

두 서비스를 정식으로 등록합니다. 부팅/재부팅 등 유선랜/무선랜이 재설정되는 상황에서 자동으로 작동할 겁니다.

 

2안 : systemd-networkd + dhcpcd 조합

2안의 장점은 상대적으로 편하다는 것입니다. 단점은 dhcpcd 패키지가 설치되어 있어야 한다는 것입니다.

 

이전 글을 따라서 아치리눅스를 설치하였다면 과정 중에 dhcpcd 패키지를 설치하셨을 거예요.

다른 분들이 작성한 아치리눅스 설치 가이드를 따랐다면 dhcpcd 패키지가 없을 수 있어요. pacman -Qn dhcpcd 라고 입력해보고, 없으면 아치리눅스 설치 USB로 부팅 후 파티션 마운트 + chroot 하여 dhcpcd 패키지를 설치한 다음 돌아오세요. 

 

 

systemctl start systemd-networkd.service

라고 입력하여 systemd-networkd 서비스를 1회성으로 구동해 봅니다.

ping -c 2 google.com

으로 인터넷 연결 테스트해봅니다. 안되면...

systemctl status systemd-networkd.service

입력하여 systemd-networkd 서비스가 active 상태인지 확인합니다. 위 스샷 기준으로 잘 돌아가고 있군요.ㅠㅠ

 

그렇다면 dhcpcd 서비스를 더해볼 차례입니다.

 

 

systemctl start dhcpcd.service

라고 입력하여 dhcpcd 서비스를 1회성으로 구동해 봅니다.

ping -c 2 google.com

인터넷 연결 테스트. 잘 되는 것을 확인했습니다.

 

 

systemctl enable systemd-networkd.service

systemctl enable dhcpcd.service

두 서비스를 정식으로 등록합니다. 부팅/재부팅 등 유선랜/무선랜이 재설정되는 상황에서 자동으로 작동할 겁니다.

 

참고 문서 :

https://wiki.archlinux.org/title/Dhcpcd

https://blog-jooso.tistory.com/4

 

문제의 원인

▲ 아치리눅스 설치 직후에는 /etc/resolv.conf 파일 내용에 항목들이 아무 것도 들어 있지 않습니다.

 

▲ 그런데 systemd-resolvd 서비스 구축 후에 /etc/resolv.conf 의 내용을 보면 nameserver 라는 항목이 있고, (비정상적이지만) 루프백 형태로라도 정의되어 있습니다.

 

▲ dhcpcd 작동 후 /etc/resolv.conf 파일을 봐도 제대로 된 DNS서버 주소는 아니지만 어찌됐든 nameserver 라는 항목이 있습니다.

 

그러니까 아치리눅스 설치 직후 재부팅했을 때 인터넷이 안되는 이유는

systemd-networkd 서비스가 시작되지 않고 있던 것, resolv.conf 에 DNS 서버가 정의되지 않았던 것이 동시에 문제를 일으키고 있었다... 정도로 생각하면 되겠습니다. DNS 서버는 실제로 작동하는 것이 아니라도 어쨌든 하나라도 들어가 있어야 다음 단계로 실제 DNS서버 찾아가는 과정으로 넘어가는 것 같네요.

 

https://man.archlinux.org/man/resolv.conf.5.en

/etc/resolv.conf 파일의 옵션들은 위 링크에서 확인 후 적절히 구성하면 되겠고...

 

( 출처 : https://wiki.archlinux.org/title/Network_configuration )

 

리눅스에서 네트워크 매니저는 종류도 많고 GUI 지원 여부도 제각각이라, DE(Desktop Environment) 환경 구축 후에 현재 네트워크 설정이 오작동하면

 

systemctl disable systemd-networkd.service

systemctl disable systemd-resolved.service
systemctl disable dhcpcd.service

등으로 문제가 생긴 CLI 기반의 서비스들을 죽이고 재부팅 후 GUI 기반의 서비스들을 사용하는 식으로 대응할 필요가 있겠습니다. (실제로 경험하진 않았습니다. 추측임.)

 

설치 이후

아래 문단은 아치위키의 설치 가이드 문서 내용을 복붙한 것입니다.

 

시스템 관리에 대한 안내나 GUI 환경 설정, 소리, 터치패드 등 추가적으로 해야할 일은 General recommendations를 보십시오.

관심을 가질만한 프로그램 목록들도 참고하십시오.

 

참고글 :

https://wiki.archlinux.org/title/Installation_guide_(한국어)

https://hoodiejun.tistory.com/20

https://dawoum.ddns.net/wiki/Arch_Linux

https://wnw1005.tistory.com/603

https://m.dcinside.com/board/github/10947

 

다음글 : 아치리눅스 설치 과정 13 - 일반 추천사항 : 사용자/그룹 생성, sudo 권한

반응형