VPN을 사용하는 Windows의 Bash(Ubuntu)에서 DNS가 작동하지 않습니다.

VPN을 사용하는 Windows의 Bash(Ubuntu)에서 DNS가 작동하지 않습니다.

방금 "Windows의 Ubuntu에서 Bash"를 테스트하기 시작했는데 마음에 듭니다!

다만, 문제는 백엔드와 개발자 서버에 액세스하려면 VPN을 사용해야 한다는 것입니다. 예를 들어 Windows Bash 셸을 사용하여 개발 서버에 ssh를 시도하면 호스트 이름을 확인할 수 없습니다.

IP 주소를 사용하여 SSH에 연결할 수 있으며 이러한 호스트 이름은 Windows의 다른 곳에서도 잘 작동합니다. 퍼티, 일반 cmd, 파일 탐색기 등과 마찬가지로

또한 /etc/resolv.conf를 확인했는데 거기에 나열된 작업 네임서버를 볼 수 있었습니다.

여기서부터는 특히 Linux의 경우 네트워킹 기술이 부족하므로 도와주세요 :D

답변1

WSL의 버그가 아니라 라우팅 문제입니다. 로컬 서브넷이 원격 서브넷과 동일할 가능성이 높습니다. 그리고 브리지 VPN을 사용한다고 가정합니다.

나는 같은 문제에 직면했습니다. 저는 OpenVPN을 사용하여 사무실(원격)과 집(로컬)을 연결합니다. 두 개의 서브넷은 모두 192.168.1.0이며, 이는 많은 라우터에서 찾을 수 있는 가장 일반적인 것입니다.

결국 다음 구성으로 문제를 해결했습니다. 내 목표는 오버헤드를 줄이고 목적지가 사무실인 트래픽만 리디렉션하기 위해 tun을 사용하는 것입니다. 그러나 이는 브리지된 VPN에서도 작동합니다.

;make the dhcp-option works on Windows 10.
script-security 2
;do not accept any pushed route command.
route-nopull
;make sure the connection still go through my home router. This line may not be necessary. You can try to remove this line and see it the VPN works.
route 192.168.1.1 255.255.255.0 net_gateway
;redirect the traffic where the destination is within the 192.168.1.0 subnet to OpenVPN gateway.
route 192.168.1.128 255.255.255.128
route 192.168.1.0 255.255.255.128
;set the DNS server which is in the office
dhcp-option DNS 192.168.1.254
dhcp-option DNS 192.168.1.253
dhcp-option DOMAIN my.company.domain

답변2

이렇게 해도 DNS가 작동하지 않는 문제가 해결되지는 않지만 작동하는 것처럼 보이게 만드는 해결 방법입니다.

호스트 파일(/etc/hosts)을 편집하고 사용하려는 호스트 이름에 대한 항목을 추가할 수 있습니다.

IP 주소 뒤에 공백과 호스트 이름이 있는 항목을 추가합니다.

123.456.1.1 target.host.net

sudo참고로 편집 명령이 필요합니다 .sudo vi /etc/hosts

나에게는 편집 내용이 bash 쉘 세션 전반에 걸쳐 유지됩니다. 나는 이것이 Microsoft가 미래에 고칠 수 있는 버그라고 가정하고 있습니다. 지금은 이 해결 방법을 사용합니다.

답변3

나는 같은 문제를 가지고있다. 하나의 네임서버와 하나의 검색 도메인(VPN 네트워크용)으로 /etc/resolv.conf를 일시적으로 편집했고 해당 네트워크의 호스트 이름을 확인했습니다. 이 변경 사항은 영구적이지 않으므로 Windows의 Ubuntu에서 Bash를 종료했다가 다시 시작하면 /etc/resolv.conf가 기본 설정으로 복원됩니다.

관련 정보