az login возвращает ошибку «Не удалось установить sh новое соединение: [Errno -3] Временный сбой при разрешении имени» - PullRequest
0 голосов
/ 03 марта 2020

Я делал az login из WSL моей windows машины. Затем выдает ошибку:

Please ensure you have network connection. Error detail: HTTPSConnectionPool(host='login.microsoftonline.com', port=443): Max retries exceeded with url: /common/oauth2/token (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f401d135630>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))

Я надеюсь, что это проблема DNS. Поэтому я проверил /etc/resolv.conf WSL:

# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line.
nameserver 192.168.1.1
nameserver fcc0:0:0:ffff::1
nameserver fcc0:0:0:ffff::2

192.168.1.1 является шлюзом по умолчанию.

Есть результаты некоторых команд, которые я пробовал:

$ ping 192.168.1.1

PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.                                                                                                                                          
64 bytes from 192.168.1.1: icmp_seq=1 ttl=128 time=0.351 ms                                                                                                                                   
64 bytes from 192.168.1.1: icmp_seq=2 ttl=128 time=0.888 ms                                                                                                                                   
64 bytes from 192.168.1.1: icmp_seq=3 ttl=128 time=0.883 ms  

$ dig 192.168.1.1

; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> 192.168.1.1                                                                                                                                          
;; global options: +cmd                                                                                                                                                                       
;; connection timed out; no servers could be reached 

$ nslookup 192.168.1.1

;; connection timed out; no servers could be reached   

Эти команды также дают вывод, который указывает на проблему.

Ping google.com
dig google.com

Все эти команды (или их альтернативы) работают из командной строки Windows и работают правильно.

Я нашел обходной путь здесь:

https://askubuntu.com/questions/91543/apt-get-update-fails-to-fetch-files-temporary-failure-resolving-error

В нем говорится, что я должен добавить следующую строку в /etc/resolv.conf. Если я попробую это так, это сработает.

nameserver 192.168.1.1
nameserver 8.8.8.8 
nameserver fcc0:0:0:ffff::1
nameserver fcc0:0:0:ffff::2

После этого ping google.com и dig google.com работают нормально. Но я вижу, что сервер имен, который он использует для разрешения, - 8.8.8.8.

Если я подключаюсь к VPN, он добавляет наши собственные серверы имен в /etc/resolv.conf, и после этого не возникает проблем с разрешением URL-адресов. После отключения VPN проблема возникает снова.

Примечание:

Подобных проблем раньше не было. В прошлый день мы изменили наш маршрутизатор, чтобы использовать новое подключение к интернет-провайдеру, и после этого возникает проблема. Другие машины в той же сети не имеют этой проблемы.

Почему это происходит и как я могу правильно решить эту проблему WSL?

Почему только один компьютер в нашей сети может пропинговать, но не удается перейти на шлюз по умолчанию?

Обновление:

Я вижу, что в таблице маршрутизации есть две записи, помеченные как стандартные:

 $ ip route show table all | grep default                                                                                

 none default via 192.168.0.1 dev wifi0 proto unspec metric 0                                                            
 none default via 192.168.1.1 dev eth6 proto unspec metric 0
...