Điểm:0

Tại sao api.nuget.org không giải quyết trong devcontainer docker-compose của tôi?

lá cờ ru

Tôi đang chạy Hệ thống con Windows cho Linux v2 với Ubuntu 20.04. Trong WSL của tôi, tôi đang chạy bộ chứa VS Code dev dựa trên docker-from-docker-compose container. Từ trong vùng chứa nhà phát triển của mình, tôi không thể giải quyết api.nuget.org, nhưng ở mọi nơi khác thì nó hoạt động tốt. Tôi cũng có thể ping các miền khác trong vùng chứa nhà phát triển của mình, chỉ là miền này không thành công. Tôi gần như là người mới bắt đầu khi nói đến kết nối mạng, vì vậy tôi đang tìm kiếm một số trợ giúp về cách gỡ lỗi này.Tôi đã đọc rất nhiều trong ngày qua để cố gắng thu hẹp vấn đề và tôi vừa nghĩ ra nhiều câu hỏi hơn. Đây là một số trong những điều tôi đã xem xét:

  • Đã có rất nhiều giải pháp được thảo luận trên vấn đề GitHub này, nhưng không ai trong số họ làm việc cho tôi
  • Tôi đã thử truy vấn bằng nhiều công cụ dòng lệnh khác nhau như đào, nslookup, chủ nhà... đây là nơi mọi thứ trở nên kỳ lạ: Khi tôi chạy đào +dấu vết api.nuget.org từ shell bash WSL của tôi, tôi nhận được điều này:
$ đào +dấu vết api.nuget.org

; <<>> DiG 9.16.1-Ubuntu <<>> +trace api.nuget.org
;; tùy chọn chung: + cmd
. 165287 TRONG NS g.root-servers.net.
. 165287 TRONG NS h.root-servers.net.
. 165287 TRONG NS a.root-servers.net.
. 165287 TRONG NS i.root-servers.net.
. 165287 TRONG NS j.root-servers.net.
. 165287 TRONG NS k.root-servers.net.
. 165287 TRONG NS l.root-servers.net.
. 165287 TRONG NS m.root-servers.net.
. 165287 TRONG NS b.root-servers.net.
. 165287 TRONG NS c.root-servers.net.
. 165287 TRONG NS d.root-servers.net.
. 165287 TRONG NS e.root-servers.net.
. 165287 TRONG NS f.root-servers.net.
;; Đã nhận 811 byte từ 172.24.176.1#53(172.24.176.1) trong 20 ms

tổ chức 172800 TẠI NS a0.org.afilias-nst.info.
tổ chức 172800 TẠI NS a2.org.afilias-nst.info.
tổ chức 172800 TẠI NS b0.org.afilias-nst.org.
tổ chức 172800 TẠI NS b2.org.afilias-nst.org.
tổ chức 172800 TRONG NS c0.org.afilias-nst.info.
tổ chức 172800 TẠI NS d0.org.afilias-nst.org.
tổ chức                   86400 TRONG DS 26974 8 2 4FEDE294C53F438A158C41D39489CD78A86BEB0D8A0AEAFF14745C0D 16E1DE32
tổ chức 86400 TRONG RRSIG DS 8 1 86400 20220608050000 20220526040000 47671 . DcP0H0m+uUbKqzYeO8vmGSeU4Ax1AzmdFTBvZl2PmrbkwFLoZTIP79Jn e4S4IIw9zAb2ZBwg5MOC634Q02HJW9znOMPclnT3T0OYbxQZumUZhcJK 3hw2Nf0fuYCzDgau72J8kXQU10CYgpRfY0chh21L11yaWn7m9Allwv9a fn2+FU6O6JhvHW8N+bOjVocqwLsPoUwqTSV/YtxAqKR00fAwaNhUT2lx BFdd3aZpYqNnypcYb96kVCX9eF81z53Bu8hOZDzr7p5IazzF+qFxGB1u G0Pi+WPFR5qOYu0d+7kHQ5HDnraDD7QEGX5kx5RmO7r1lKIX8DYiYAjt IPN3+w==
;; Đã nhận 779 byte từ 192.58.128.30#53(j.root-servers.net) trong 80 ms

nuget.org. 86400 TRONG NS ns4-205.azure-dns.info.
nuget.org. 86400 TRONG NS ns1-205.azure-dns.com.
nuget.org. 86400 TRONG NS ns2-205.azure-dns.net.
nuget.org. 86400 TRONG NS ns3-205.azure-dns.org.
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 TRONG NSEC3 1 1 10 332539EE7F95C32A 1I87R64GAJU4O91MHKBU7I9EKBS7K8UT NS SOA RRSIG DNSKEY NSEC3PARAM
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 TRONG RRSIG NSEC3 8 2 86400 20220616154216 20220526144216 15843 tổ chức. juD6urMvH8mrHHkMAX7sFcQOs3ffqjJ2m5TppBSxCMFlSCHOEyEQT/Hg KpqL3TeoLBmvUi89Z3xSH78EQZGcWXNW5Rq2j5fIRNDMt9t2ePjftEPC 2lIiR4CkHgzelSGjTlfvaHvnCGUVJ2oXTEtumd4Jsj1hAGY=
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 TRONG NSEC3 1 1 10 332539EE7F95C32A PNNSJA6RL8J0AOQQ1NMHT3IUVLTC4CEN NS DS RRSIG
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 TRONG RRSIG NSEC3 8 2 86400 20220615152234 20220525142234 15843 tổ chức. rjaBgwKLles40lIIDm+K3iN49tFJ5gFRMLW5WMAjzN9dMDFj/Hribwxi ZMmt6L1GOgDxwBEA9SX0TVQb9RbGztyoeEiIIMytcx4dah5QnuaSKTOg cVCv+U6G6Hvix8+/yE1vSbDKcE8/RvDI2L8/Mw90/Mb90s/Ve8
;; Đã nhận được 697 byte từ 199.19.54.1#53(b0.org.afilias-nst.org) trong 210 ms

api.nuget.org. 300 TRONG CNAME nugetapiprod.trafficmanager.net.
;; Đã nhận 87 byte từ 13.107.24.205#53(ns3-205.azure-dns.org) trong 50 ms

Điều này gần giống với những gì tôi nhận được khi chạy nó bên trong vùng chứa nhà phát triển của mình:

$ đào +dấu vết api.nuget.org

; <<>> DiG 9.16.1-Ubuntu <<>> +trace api.nuget.org
;; tùy chọn chung: + cmd
. 165234 TRONG NS k.root-servers.net.
. 165234 TRONG NS l.root-servers.net.
. 165234 TRONG NS m.root-servers.net.
. 165234 TRONG NS b.root-servers.net.
. 165234 TRONG NS c.root-servers.net.
. 165234 TRONG NS d.root-servers.net.
. 165234 TRONG NS e.root-servers.net.
. 165234 TRONG NS f.root-servers.net.
. 165234 TRONG NS g.root-servers.net.
. 165234 TRONG NS h.root-servers.net.
. 165234 TRONG NS a.root-servers.net.
. 165234 TRONG NS i.root-servers.net.
. 165234 TRONG NS j.root-servers.net.
;; Đã nhận 811 byte từ 127.0.0.11#53(127.0.0.11) trong 20 ms

tổ chức 172800 TẠI NS a0.org.afilias-nst.info.
tổ chức 172800 TẠI NS a2.org.afilias-nst.info.
tổ chức 172800 TẠI NS b0.org.afilias-nst.org.
tổ chức 172800 TẠI NS b2.org.afilias-nst.org.
tổ chức 172800 TRONG NS c0.org.afilias-nst.info.
tổ chức 172800 TẠI NS d0.org.afilias-nst.org.
tổ chức 86400 TRONG DS 26974 8 2 4FEDE294C53F438A158C41D39489CD78A86BEB0D8A0AEAFF14745C0D 16E1DE32
tổ chức                   86400 TRONG RRSIG DS 8 1 86400 20220608050000 20220526040000 47671 . DcP0H0m+uUbKqzYeO8vmGSeU4Ax1AzmdFTBvZl2PmrbkwFLoZTIP79Jn e4S4IIw9zAb2ZBwg5MOC634Q02HJW9znOMPclnT3T0OYbxQZumUZhcJK 3hw2Nf0fuYCzDgau72J8kXQU10CYgpRfY0chh21L11yaWn7m9Allwv9a fn2+FU6O6JhvHW8N+bOjVocqwLsPoUwqTSV/YtxAqKR00fAwaNhUT2lx BFdd3aZpYqNnypcYb96kVCX9eF81z53Bu8hOZDzr7p5IazzF+qFxGB1u G0Pi+WPFR5qOYu0d+7kHQ5HDnraDD7QEGX5kx5RmO7r1lKIX8DYiYAjt IPN3+w==
;; Đã nhận 779 byte từ 192.5.5.241#53(f.root-servers.net) trong 20 ms

nuget.org. 86400 TRONG NS ns1-205.azure-dns.com.
nuget.org. 86400 TRONG NS ns4-205.azure-dns.info.
nuget.org. 86400 TRONG NS ns2-205.azure-dns.net.
nuget.org. 86400 TRONG NS ns3-205.azure-dns.org.
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 TRONG NSEC3 1 1 10 332539EE7F95C32A 1I87R64GAJU4O91MHKBU7I9EKBS7K8UT NS SOA RRSIG DNSKEY NSEC3PARAM
1i870vj5h429vj9pci7ar6e9gki74tr7.org. 86400 TRONG RRSIG NSEC3 8 2 86400 20220616154354 20220526144354 15843 tổ chức. J6jAHAorvmIVRWSZ0ew21ooNKkUhCsaMowR5qs+1uqJeCVAZEESSP9RW r7UiYCxXctu2dYIu2QRhypmvhIy4Ek3NXyOrIw3Cc8Ie3ndmG6wp+Ny3 T/IB7KolSZk755VzJd13dmbPSyzeifpdW92h8effCIA OkJUI1h8ffDSC
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 TRONG NSEC3 1 1 10 332539EE7F95C32A PNNSJA6RL8J0AOQQ1NMHT3IUVLTC4CEN NS DS RRSIG
pnnnukt76t98parmvalihebtso9erf6p.org. 86400 TRONG RRSIG NSEC3 8 2 86400 20220615152234 20220525142234 15843 tổ chức. rjaBgwKLles40lIIDm+K3iN49tFJ5gFRMLW5WMAjzN9dMDFj/Hribwxi ZMmt6L1GOgDxwBEA9SX0TVQb9RbGztyoeEiIIMytcx4dah5QnuaSKTOg cVCv+U6G6Hvix8+/yE1vSbDKcE8/RvDI2L8/Mw90/Mb90s/Ve8
;; Đã nhận 697 byte từ 199.19.56.1#53(a0.org.afilias-nst.info) trong 190 ms

api.nuget.org. 300 TRONG CNAME nugetapiprod.trafficmanager.net.
;; Đã nhận 87 byte từ 40.90.4.205#53(ns1-205.azure-dns.com) trong 50 ms

Tuy nhiên, khi tôi chạy nslookup -debug api.nuget.org trong WSL của tôi, tôi nhận được điều này:

$ nslookup -gỡ lỗi api.nuget.org
Máy chủ: 172.24.176.1
Địa chỉ: 172.24.176.1#53

------------
    CÂU HỎI:
        api.nuget.org, loại = A, lớp = IN
    ĐÁP ÁN:
    -> api.nuget.org
        tên kinh điển = nugetapiprod.trafficmanager.net.
        tl = 0
    -> nugetapiprod.trafficmanager.net
        tên chuẩn = apiprod-mscdn.azureedge.net.
        tl = 0
    -> apiprod-mscdn.azureedge.net
        tên chuẩn = apiprod-mscdn.afd.azureedge.net.
        tl = 0
    -> apiprod-mscdn.afd.azureedge.net
        tên chuẩn = star-azureedge-prod.trafficmanager.net.
        tl = 0
    -> sao-azureedge-prod.trafficmanager.net
        tên chuẩn = dual.part-0043.t-0009.t-msedge.net.
        tl = 0
    -> dual.part-0043.t-0009.t-msedge.net
        tên chuẩn = part-0043.t-0009.t-msedge.net.
        tl = 0
    -> part-0043.t-0009.t-msedge.net
        địa chỉ internet = 13.107.213.71
        tl = 0
    -> part-0043.t-0009.t-msedge.net
        địa chỉ internet = 13.107.246.71
        tl = 0
    HỒ SƠ CHÍNH QUYỀN:
    HỒ SƠ BỔ SUNG:
------------
Câu trả lời không có thẩm quyền:
api.nuget.org tên chuẩn = nugetapiprod.trafficmanager.net.
nugetapiprod.trafficmanager.net tên chuẩn = apiprod-mscdn.azureedge.net.
apiprod-mscdn.azureedge.net tên chính tắc = apiprod-mscdn.afd.azureedge.net.
apiprod-mscdn.afd.azureedge.net tên chuẩn = star-azureedge-prod.trafficmanager.net.
star-azureedge-prod.trafficmanager.net tên chuẩn = dual.part-0043.t-0009.t-msedge.net.
dual.part-0043.t-0009.t-msedge.net tên chuẩn = part-0043.t-0009.t-msedge.net.
Tên: part-0043.t-0009.t-msedge.net
Địa chỉ: 13.107.213.71
Tên: part-0043.t-0009.t-msedge.net
Địa chỉ: 13.107.246.71
------------
    CÂU HỎI:
        part-0043.t-0009.t-msedge.net, gõ = AAAA, lớp = IN
    ĐÁP ÁN:
    -> part-0043.t-0009.t-msedge.net
        có địa chỉ AAAA 2620:1ec:46::71
        tl = 0
    -> part-0043.t-0009.t-msedge.net
        có địa chỉ AAAA 2620:1ec:bdf::71
        tl = 0
    HỒ SƠ CHÍNH QUYỀN:
    HỒ SƠ BỔ SUNG:
------------
Tên: part-0043.t-0009.t-msedge.net
Địa chỉ: 2620:1ec:46::71
Tên: part-0043.t-0009.t-msedge.net
Địa chỉ: 2620:1ec:bdf::71

Trong khi đây là những gì tôi nhận được từ bên trong vùng chứa dev:

$ nslookup -gỡ lỗi api.nuget.org
Máy chủ: 127.0.0.11
Địa chỉ: 127.0.0.11#53

------------
    CÂU HỎI:
        api.nuget.org, loại = A, lớp = IN
    ĐÁP ÁN:
    HỒ SƠ CHÍNH QUYỀN:
    HỒ SƠ BỔ SUNG:
------------
Câu trả lời không có thẩm quyền:
------------
    CÂU HỎI:
        api.nuget.org, gõ = AAAA, lớp = IN
    ĐÁP ÁN:
    HỒ SƠ CHÍNH QUYỀN:
    HỒ SƠ BỔ SUNG:
------------
*** Không tìm thấy api.nuget.org: Không có câu trả lời
  • Sự khác biệt duy nhất trong /etc/nsswitch.conf giữa WSL của tôi và vùng chứa dev của tôi là hệ thống các mục, nhưng nó trông như thế này:
$ con mèo /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Cấu hình ví dụ về chức năng Chuyển đổi dịch vụ tên GNU.
# Nếu bạn đã cài đặt các gói `glibc-doc-reference' và `info', hãy thử:
# `info libc "Name Service Switch"' để biết thông tin về tệp này.

mật khẩu: tập tin systemd
nhóm: tập tin systemd
bóng tối: tập tin
gshadow: tập tin

máy chủ: tệp dns
mạng: tập tin

giao thức: tập tin db
dịch vụ: tập tin db
ête: tập tin db
rpc: tập tin db

nhóm mạng: nis
  • Đây là /etc/hosts trên WSL của tôi:
$ mèo /etc/hosts
# Tệp này được tạo tự động bởi WSL. Để dừng tự động tạo tệp này, hãy thêm mục sau vào /etc/wsl.conf:
# [mạng]
# generateHosts = sai
127.0.0.1 máy chủ cục bộ
127.0.1.1 <DỮ LIỆU BỊ TÁC ĐỘNG - tên máy tính>
tôi"
74.121.<BẢO MẬT> <BẢO MẬT - máy chủ công ty>
192.168.0.170 máy chủ.docker.internal
192.168.0.170 cổng.docker.internal
127.0.0.1 kubernetes.docker.internal

# Các dòng sau là mong muốn cho các máy chủ có khả năng IPv6
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

và đây là của tôi /etc/hosts trong vùng chứa dev của tôi:

$ mèo /etc/hosts
127.0.0.1 máy chủ cục bộ
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.19.0.2 1376e18baa2d
  • Đây là của tôi /etc/resolv.conf trên WSL của tôi:
$ con mèo /etc/resolv.conf
# Tệp này được tạo tự động bởi WSL. Để dừng tự động tạo tệp này, hãy thêm mục sau vào /etc/wsl.conf:
# [mạng]
# tạoResolvConf = sai
máy chủ định danh 172.24.176.1

và đây là của tôi /etc/resolv.conf trên vùng chứa dev của tôi:

$ con mèo /etc/resolv.conf 
máy chủ định danh 127.0.0.11
tùy chọn ndots:0
  • Như đã đề cập, tôi có thể giải quyết các tên miền khác, chẳng hạn như google.com trên vùng chứa nhà phát triển của mình:
$ đào +dấu vết google.com

; <<>> DiG 9.16.1-Ubuntu <<>> +dấu vết google.com
;; tùy chọn chung: + cmd
. 164561 TRONG NS d.root-servers.net.
. 164561 TRONG NS e.root-servers.net.
. 164561 TRONG NS f.root-servers.net.
. 164561 TRONG NS g.root-servers.net.
. 164561 TRONG NS h.root-servers.net.
. 164561 TRONG NS a.root-servers.net.
. 164561 TRONG NS i.root-servers.net.
. 164561 TRONG NS j.root-servers.net.
. 164561 TRONG NS k.root-servers.net.
. 164561 TRONG NS l.root-servers.net.
. 164561 TRONG NS m.root-servers.net.
. 164561 TRONG NS b.root-servers.net.
. 164561 TRONG NS c.root-servers.net.
;; Đã nhận 811 byte từ 127.0.0.11#53(127.0.0.11) trong 20 ms

com. 172800 TRONG NS l.gtld-servers.net.
com. 172800 TRONG NS b.gtld-servers.net.
com. 172800 TRONG NS c.gtld-servers.net.
com. 172800 TRONG NS d.gtld-servers.net.
com. 172800 TRONG NS e.gtld-servers.net.
com. 172800 TRONG NS f.gtld-servers.net.
com. 172800 TRONG NS g.gtld-servers.net.
com. 172800 TRONG NS a.gtld-servers.net.
com. 172800 TRONG NS h.gtld-servers.net.
com. 172800 TRONG NS i.gtld-servers.net.
com. 172800 TRONG NS j.gtld-servers.net.
com. 172800 TRONG NS k.gtld-servers.net.
com. 172800 TRONG NS m.gtld-servers.net.
com. 86400 TRONG DS 30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com. 86400 TRONG RRSIG DS 8 1 86400 20220608050000 20220526040000 47671 . U/z96yxHnZx3nwEda11jaJom4DJC7fOBt4zsn8fC5ep60RfzAwMj1q8Y 4E4jRlSI28vFuiamNG2uuMAPO/lEUUYuHtYtNsHXnzBKcaDDVK1B3wCA VzEKAQwfh9knPSaD9vCRFfi7nGJWALJbKO3488gz1uBywWu7YQPDDfPp FB/whBsl7/yQihidbbNTbCfQ/oAd88bAq1eFt9tGSL6Wyf0jwp1aeWMd DuM+HcLjyR/7rtBa4YCKob3XniEn+NoavFuikKFJU1Nie1V83ZRU1Xcs OevXYQgT53P857tldjpEM/Lyp70+XgFMJXLoPCe0MfsMqoabiuIiDxyQ vUA5Mg==
;; Đã nhận 1170 byte từ 192.203.230.10#53(e.root-servers.net) trong 20 ms

google.com. 172800 TRONG NS ns2.google.com.
google.com. 172800 TRONG NS ns1.google.com.
google.com. 172800 TRONG NS ns3.google.com.
google.com. 172800 TRONG NS ns4.google.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com.86400 TRONG NSEC3 1 1 0 - CK0Q2D6NI4I7EQH8NA30NS61O48UL8G5 NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 TRONG RRSIG NSEC3 8 2 86400 20220530082513 20220523071513 37269 com. rGFmb7KWfFWLa2wdegU/hcqoDHxSKwJUkbj6DMSYfkHrwKot/T2EROZQ RF5KJtD3Ae6u7xRPIqGft5rvKOPQD40klXtYrMmMv23rCwXaHjGkdtez HLFl8//cjwFArN7MQZlUdGqDiFDHRIFP7gj9vJ/f+E9wrZs5zmsGy/We J+5hwjAyDh+GDCvNxTnJcmsRGOVJsdPmSlL7KrTiWOMRBA==
S84BKCIBC38P58340AKVNFN5KR9O59QC.com. 86400 TRONG NSEC3 1 1 0 - S84BUO64GQCVN69RJFUO6LVC7FSLUNJ5 NS DS RRSIG
S84BKCIBC38P58340AKVNFN5KR9O59QC.com. 86400 TRONG RRSIG NSEC3 8 2 86400 20220601051858 20220525040858 37269 com. hM5qmz0t0spOwBlaXh4fROrcKNjN3urcmJ3AnAA/NCMGyMJEOKS/r+LF R3Qf3hNRB6dgCN0sL3LAfH9QDMHPbLhfgsga1jBCEjP25fvjb7QW43ey yVOSeQzBaVFdV86vhalBhkANzDNXtsnaSGuWVAbsGcXjalBa3EhcXAE2 Fnlvzyu+nRavl0R6iJEjY2hV1kJxXSJ+RWOw/HVlSWvgWQ==
;; Đã nhận được 836 byte từ 192.12.94.30#53(e.gtld-servers.net) trong 30 ms

google.com. 300 TRONG 142.250.68.14
;; Đã nhận 55 byte từ 216.239.38.10#53(ns4.google.com) trong 80 mili giây
  • Khi tôi chạy cùng một bộ chứa dev từ Docker cho Windows bằng trình điều khiển Hyper-V (tức là không phải từ docker WSL), miền api.nuget.org sẽ giải quyết tốt. Ngoài ra, khi tôi chạy bộ chứa docker-for-docker dev từ cùng một repo trong docker WSL của tôi, mọi thứ đều hoạt động tốt. Cuối cùng, (và điều này tương đối rõ ràng) nếu tôi thiết lập mạng soạn thảo docker của mình để sử dụng chế độ mạng "Máy chủ" thì mọi thứ đều hoạt động tốt.

Xin lỗi vì bài đăng dài, chỉ muốn cung cấp càng nhiều thông tin càng tốt. Bất kỳ trợ giúp nào về những gì cần điều tra tiếp theo sẽ được đánh giá cao!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.