티스토리 뷰

반응형

WSL2 Sound 설정 꿀팁

 

WSL2 Sound 설정 꿀팁(WSL2 IP Range for sound & internet support)

 

WSL2, Kali Linux, Kex에서는 kex --sl -s 또는 kex --win -s 명령어를 사용하면 PulseAudio를 통해 사운드를 들을 수 있습니다. 그러나 "Establishing connection to PulseAudio. Please wait..."와 같은 에러가 발생하는 경우가 많습니다.

그 해결법에 대해서 자세히 설명드리도록 하겠습니다.
고고씽~

 

공용 네트워크 프로필 설정 확인

 

공용 네트워크 프로필 확인(1)

 

Seamless 기능을 지원하는 vcxsrv.exe 와 PulseAudio.exe는 "공용 네트워크" 프로필을 이용합니다.

따라서 "공용 네트워크" 프로필 - 들어오는 연결 - "허용되는 앱 목록에 있는 연결을 포함하여 들어오는 연결을 모두 차단합니다."에 체크가 된 상태라면 이용이 불가능합니다.

이 설정은 기본적으로 "체크 해제"입니다. 따라서 확인을 했을 때 체크가 없는게 일반적입니다. 만약 이 항목에 체크가 된 상태라면 체크를 해제해 주세요.

 

공용 네트워크 프로필 확인(2) - 체크해제

 

방화벽 Inbound rule 추가

 

Firewall inbound rule - 원격 IP 주소 범위 설정

 

WSL2에서는 기본적으로 172.16.0.0/12 Class B hosts와 192.168.0.0/16 Class C hosts가 랜덤으로 설정되게 됩니다.
따라서 이 모든 WSL2 IP Range를 방화벽 Inbound Rule - "원격 IP 주소" 항목에 각각 추가시켜주는 방법이 있습니다.

[주의]
해당 IP 범위를 허용한 경우, 카페, 식당, 공항 등 공공 네트워크에서 이 방화벽 규칙을 사용하는 경우 보안 문제가 생길 수 있습니다. 주의하세요.

 

WSL2 IP Range (Class B, Class C)

 

172.16.0.0/12 Class B에서는 1,048,574 개의 Private Internet이 허용되게 됩니다.
192.168.0.0/16 Class B에서는 65,534 개의 Private Internet이 허용되게 됩니다.

 

방화벽 룰 - "규칙 사용 안 함"

 

평소에는 방화벽 룰을 "규칙 사용 안 함"으로 놓고 사용하고, Sound 지원이 필요한 경우 그리고 네트워크에 본인과 가족, 믿을 만한 사람만 있는 네트워크에서만 해당 규칙을 사용으로 바꿔서 사용하는 것이 좋을 것 같습니다.

 

ip 확인 명령어

 

가장 불편하지만 가장 안전한 방화벽 설정을 원한다면, 매번 ip addr show eth0 명령어를 사용하여 WSL2에 할당된 IP만 방화벽 규칙에 등록해서 사용하시면 됩니다.

 

vcxsrv.exe 및 PulseAudio.exe 방화벽 허용 (공용 네트워크 프로필 통신 허용 필수)

 

방화벽 Inbound rule 설정이 완료되었다면, Kali Linux 터미널에서 kex --sl -s 또는 kex --win -s 명령어를 실행합니다.
명령어를 최초로 실행하게 되면 vcxsrv.exe, PulseAudio.exe 파일을 각각 방화벽에 허용시킬지 물어보는 Windows 보안 경고가 나오게 됩니다.

공용 네트워크 및 개인 네트워크 모두 체크하고 "액세스 허용"을 누릅니다.

 

vcxsrv.exe 방화벽 허용 - 공용 네트워크 필수

 

각각 "액세스 허용"을 누르셨다면 정상적으로 kex가 실행되며 PulseAudio가 활성화됩니다.

 

vcxsrv.exe 방화벽 룰 - 허용

 

방화벽에는 vcxsrv.exe가 tcp, udp 각각 2개의 룰이 생성되며, Pulseaudio 역시 tcp, udp 각가 2개의 룰이 생성됩니다.

 

pulseaudio.exe 방화벽 룰 - 허용

 

kex --sl -s 명령어를 실행하게 되면 /etc/resolv.conf의 nameserver에서 IP를 가져와 kex 연결에 사용되게 됩니다.
만약 /etc/resolv.conf의 nameserver 1.1.1.1, nameserver 1.0.0.1, nameserver 8.8.8.8과 같이 임의의 nameserver로 변경한 경우 정상적으로 seamless mode가 실행되지 않습니다.

 

kex --sl -s (seamless & sound support)

 

seamless mode에 error가 발생한 경우 /etc/resolv.conf의 nameserver IP를 ip addr show eth0에서 나오는 IP로 다시 바꿔주세요.

 

cat /etc/resolv.conf 확인

 

/ect/resolv.conf는 wsl2 가 재부팅되면 자동으로 다시 생성되는데요, 자동 인터넷 설정을 위해 임의로 자동 생성되지 못하게 막아서 사용하는 경우도 있습니다. 이런 경우 설정을 다시 원래대로 바꿔주셔야 합니다.

또는 kex --sl -s -i 옵션 뒤에 ip를 넣어서 시도해 보세요. 

 

cat /etc/resolv.conf 관련 심볼릭 링크

 

kex seamless mode, window mode, sound support

 

wsl2 seamless & sound support

 

seamless pipe라고 있습니다. 일반적으로 판(plate)를 말아서 pipe로 만든 경우, 끝단끼리 용접을 하기 때문에 파이프에 용접 자국이 생기게 됩니다. 그러나 pipe로 뽑아낸 경우 이런 welding 자국이 전혀 안 보이게 됩니다.

이처럼 Windows, Kali Linux 전혀 다른 운영체제인데 한 화면에 같이 나오는 방식을 seamless mode라고 합니다.
Windows 10의 상단에 각각 Kali Linux의 메뉴가 보이고, 실행된 프로그램 역시 한 운영체제처럼 보이게 됩니다.

 

vcxsrv.exe 프로그램

 

kex --sl -s 명령어를 사용하게 되면, vcxsrv.exe 가 windows에 실행되게 됩니다. 작업 표시줄을 잘 살펴보시면 해당 프로그램이 실행되고 있음을 확인할 수 있습니다. (갑자기 안 보이던 프로그램이 생겼다고 놀라지 마세요)

 

kex -s 옵션 사용시

 

-s 는 sound support 옵션인데요, kex -s 명령만 사용하게 되면 PulseAudio가 잘 지원이 안 됩니다.
kex --win -s 옵션과 같은 기능을 할지 알았는데, 각각 비교해 보니 Sound 지원에서 차이가 발생했습니다.

 

PulseAudio 연결안됨

 

"Establishing connection to PulseAudio. Please wait..."이 나오는데, 아무리 기다려도 PulseAudio에 연결이 안 됩니다.

 

kex --win -s (window mode, sound support)

 

그러면 seamless mode가 아닌 window mode를 실행시켜 보겠습니다. kex --win -s로 실행합니다.

 

sound support on kex window mode

 

정상적으로 PulseAudio가 연결되었습니다. seamless도 멋지지만, 개인적으로 저는 window mode가 더 편한 것 같아요.
개인의 취향이니 편한 mode를 사용하세요.

 

kex sound 설정시 주의사항

 

Adguard On -> Off

 

Adguard의 경우 프로그램에서 사용되는 Private IP가 일부 wsl2 IP range와 충돌하는 것 같습니다.
kex sound를 사용해야 하는 경우, Auguard는 잠시 off 시켜주세요.

 

반응형
댓글