apt-get update ติดอยู่: เชื่อมต่อกับ security.ubuntu.com


79

เมื่อฉันเรียกใช้apt-get updateบนเครื่องของฉันมันติดอยู่ที่:

100% [Connecting to security.ubuntu.com (2001:67c:1562::15)] [Connecting to archive.canonical.com (2001:67c:1360:8c01::16)]

ฉันไม่ได้ทำการเปลี่ยนแปลงระบบและใช้เครือข่ายในบ้านของฉันซึ่งทำงานได้ดีก่อนหน้านี้

ฉันไม่สามารถอธิบายได้ว่าทำไมมันจึงเปลี่ยนเป็นการใช้ IPv6
ฉันได้ตั้งค่า IPv6 ไว้ignoreสำหรับเครือข่ายไร้สายแล้ว:

ป้อนคำอธิบายรูปภาพที่นี่

Ouput จากip addr:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
   valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever
2: mlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 4c:0b:be:22:0a:b4 brd ff:ff:ff:ff:ff:ff
inet 192.168.2.106/24 brd 192.168.2.255 scope global dynamic mlan0
   valid_lft 1814086sec preferred_lft 1814086sec
inet6 ::d5:b551:28db:2789:225/64 scope global temporary dynamic 
   valid_lft 604483sec preferred_lft 85483sec
inet6 ::d5:4e0b:beff:fe22:ab4/64 scope global mngtmpaddr dynamic 
   valid_lft 604779sec preferred_lft 86379sec
inet6 fe80::4e0b:beff:fe22:ab4/64 scope link 
   valid_lft forever preferred_lft forever

เปลี่ยนที่อยู่ IP เป็น IPv4 แล้วลองอีกครั้ง ..
heemayl

ทำไมคุณใช้ IPv6 อย่างที่ heemayl พูดไว้เปลี่ยนเป็นการใช้ IPv4 ภายใต้การตั้งค่าเครือข่าย> [อแด็ปเตอร์]> ขั้นสูง
TheWanderer

1
0:0:0:d5::/64มันดูเหมือนว่าคุณอาจจะมีโฮสต์ส่งโฆษณากับเราเตอร์ ช่วงนี้ถูกระบุว่าสงวนไว้โดย IETF ดังนั้นจึงไม่ใช่คำนำหน้าที่ถูกต้องที่จะโฆษณา หาก RAs เหล่านั้นหยุดทำงานไปแล้วอาจเป็นไปไม่ได้ที่จะทราบว่ามาจากไหน ในกรณีเช่นนั้นสิ่งที่คุณทำได้จริงๆคือรีสตาร์ทอินเทอร์เฟซเครือข่ายและปัญหาจะหายไป หาก RAs ยังคงถูกส่งคุณสามารถดูแพ็กเก็ตการจับภาพเพื่อดูว่า MAC มาจากไหน
kasperd

1
นอกเหนือจากการเชื่อมต่อ IPv6 ผิดพลาดอุปถัมภ์อีกปัญหาของคุณคือการขาดการ RFC 6555 apt-getการสนับสนุนในการ ได้apt-getติดตาม RFC 6555 คุณจะไม่พบปัญหาใด ๆ เลย
kasperd

1
เราเตอร์ในพื้นที่ของคุณกำลังทำอะไรผิดและให้ที่อยู่ IPv6 ที่ไม่ถูกต้องแก่คุณ ตรวจสอบและแก้ไขการกำหนดค่าของเราเตอร์
Michael Hampton

คำตอบ:


168

สิ่งนี้ใช้ได้กับฉันด้วยความอนุเคราะห์จาก Zach Adams ( https://zach-adams.com/2015/01/apt-get-cant-connect-to-security-ubuntu-fix/ ):

ปรากฎว่านี่เป็นปัญหาที่การเชื่อมต่อผ่าน IPv6 บนเซิร์ฟเวอร์บางเครื่องทำให้พวกเขาติดค้างที่จุดนี้ การแก้ไขนั้นง่ายมาก

เปิด/etc/gai.conf

ใต้เส้น

# For sites which prefer IPv4 connections change the last line to

ยกเลิกหมายเหตุบรรทัดต่อไปนี้โดยลบ#:

# precedence ::ffff:0:0/96 100

สิ่งนี้จะช่วยให้คุณยังคงใช้ IPv6 แต่ตั้งค่า IPv4 เป็นลำดับความสำคัญเพื่อให้ apt-get ไม่ติดขัด


16
ขอบคุณ! คำตอบนี้ดีกว่าการปิด ipv6 เพียงเล็กน้อย
Cyrusmith

2
หากคุณไม่ได้รับโชคลองสิ่งนี้: askubuntu.com/a/759540/4246
Gauthier

1
OMG ที่ช่วยได้มาก!
GaTechThomas

4
หมายเหตุ: ยังคงใช้ได้กับรุ่น 14.04 และ 16.04 LTS
Elder Geek

1
ทำงานกับฉันใน Linux Mint 18.1 และ 18.2 นี่ควรเป็นค่าเริ่มต้น
เสื่อ

23

การตั้งค่า IPv6 สำหรับเครือข่ายถูกเพิกเฉย แต่การปิดใช้งาน IPv6 ผ่านการ/etc/sysctl.confทำงาน:

เพิ่มบรรทัดต่อไปนี้ที่ด้านล่างของ/etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

เรียกใช้sudo sysctl -pเพื่อโหลดการ/etc/sysctl.confตั้งค่าใหม่


6
นั่นไม่ใช่วิธีที่คุณควรทำ บรรทัดเหล่านั้นหมายถึงเมื่อคุณเชื่อมต่อกับเครือข่ายซึ่งมี IPv6 จริงคุณจะได้รับการเชื่อมต่อที่เชื่อถือได้น้อยกว่าที่ควรจะเป็น นอกจากนี้บรรทัดเหล่านั้นไม่ได้ทำอะไรเพื่อแก้ไขสาเหตุของปัญหาที่คุณไม่ได้ระบุ
kasperd

ฉันไม่ต้องการ IPv6 ที่ไหนก็ได้ดังนั้นมันใช้ได้ดี
Pabi

4
นั่นเป็นเพียงความโง่เง่าเพราะสำหรับการเชื่อมต่อกับโฮสต์ในส่วนเครือข่ายเดียวกันมีข้อดีหลายประการในที่อยู่ IPv6 link-local เทียบกับ IPv4
kasperd

1
ไม่สามารถทำได้จากโทรศัพท์ของฉัน;) ให้เห็นด้วยว่าเราไม่เห็นด้วย
Pabi

4
ทำในสิ่งที่คุณต้องการจะทำ ฉันเพียงแค่แสดงความคิดเห็นเพื่อให้แน่ใจว่าใครก็ตามที่อาจเจอปัญหาเดียวกันรู้ว่าการเปลี่ยนแปลงที่เสนอไปsysctl.confนั้นจะทำให้เกิดปัญหาในที่สุด
kasperd

15

วิธีที่ดีกว่าคือใช้ apt-get ดังนี้แทนที่จะแก้ไขไฟล์ gai.conf

sudo apt-get -o Acquire::ForceIPv4=true update

หากคุณต้องการทำให้ถาวรนี้เพียงเพิ่มนามแฝงสำหรับ 'apt-get' ในไฟล์ bash ของคุณ


แต่สิ่งนี้จะไม่ทำการเชื่อมต่อที่สามารถเป็น IPv6 ทั้งหมดได้หรือไม่?
metame

@metame นั่นคือประเด็นทั้งหมด OP กล่าวว่า IPv6 ของเขาถูกปิดใช้งานและพยายามที่จะใช้ทำให้เกิดปัญหา
Francesco Dondi

0

โซลูชันอื่น ๆ ไม่ได้ช่วย ... ในกรณีของฉันฉันได้สร้างอินสแตนซ์ aws ec2 Ubuntu 18.04 โดยใช้

Auto-assign Public IP -> no pick disable

หลังจากลองใช้วิธีแก้ปัญหาที่แนะนำทั้งหมดฉันก็ยกมือขึ้นแล้วฆ่ามันและสร้างอินสแตนซ์ ec2 ใหม่โดยใช้

Auto-assign Public IP -> yes  Use subnet setting (Enable) 

และมันใช้งานได้ดี ... apt-get update && apt-get upgradeมีความสุขแล้ว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.