ไม่สามารถเข้าถึงไซต์ https ที่เลือกบน Linux ผ่าน PPPoE


18

การเชื่อมต่ออินเทอร์เน็ตของฉันเคยเป็นการเชื่อมต่อ LAN โดยตรงกับผู้ให้บริการของฉัน ย้อนกลับไปทุกอย่างจะโหลดได้ดีทั้งบน Windows และ Ubuntu (ดูอัลบูต) อย่างไรก็ตามเมื่อไม่นานมานี้พวกเขาเริ่มต้องการให้ฉันโทร (PPPoE) โดยใช้ชื่อผู้ใช้และรหัสผ่าน Gateway, subnet mask, IP, DNS servers ทั้งหมดยังคงเหมือนเดิม แต่ตั้งแต่นั้นมาฉันไม่สามารถเรียกดูบางเว็บไซต์ใน Ubuntu ได้แม้ว่าจะไม่มีปัญหาดังกล่าวใน Windows ตัวอย่างเว็บไซต์ ได้แก่ - หน้าลงชื่อเข้าใช้ของ Ovi (แม้ว่า share.ovi.com จะโหลดได้ดีและโหลด nokia.com ได้ดี), Live Mail (ใช้ได้กับ Chrome (ium) และ Opera แต่ไม่ใช่ใน Firefox (ทั้ง 3.6 และ 4) Mozilla เว็บไซต์ Addonsและเว็บไซต์สุ่มอื่น ๆ

บางเว็บไซต์ที่ไม่โหลดข้อความแสดงการหมดเวลาและสำหรับบางเว็บไซต์ (เช่น moz addons หนึ่ง) เบราว์เซอร์จะพยายามโหลดโดยไม่สิ้นสุด (ฉันทิ้งไว้อย่างนั้นแม้เป็นเวลาหลายชั่วโมง แต่ไม่สังเกตเห็นอะไรเลย เกิดขึ้น)

ฉันได้ลองเปลี่ยนเซิร์ฟเวอร์ DNS เป็นที่สาธารณะแล้ว ฉันได้ลองบูทจาก Fedora LiveCD แล้วเปลี่ยน DNS เป็นรายการเหล่านั้น (และแม้แต่เป็น OpenDNS) แต่สิ่งเดียวกันก็เกิดขึ้น สิ่งที่อาจผิดปกติในการตั้งค่าบางอย่างภายใน Linux เองที่ทำให้เกิดปัญหานี้?

ไม่มีใครรู้ว่าทำไมสิ่งนี้จึงเกิดขึ้นและจะแก้ไขได้อย่างไร?

หมายเหตุ: คำถามนี้ถูกโพสต์ข้ามกับ SU แต่ไม่ได้รับคำตอบใด ๆ

ปรับปรุง:เพิ่งเห็นนี่ว่าคนอื่นก็มีปัญหาที่คล้ายกันและแก้ไขได้โดยการวางNetworkManager.conf/etc/NetworkManagerแฟ้มใน สิ่งที่จำเป็นต้องมีในไฟล์นั้น

คำตอบ:


24

คุณมีอาการของปัญหาMTU : การเชื่อมต่อ TCP บางส่วนหยุดทำงานทำซ้ำได้มากขึ้นหรือน้อยลงสำหรับคำสั่งหรือ URL ที่กำหนด แต่ไม่มีรูปแบบโดยรวมที่มองเห็นได้ง่าย อาการปากโป้งก็คือว่าเซสชัน ssh แบบโต้ตอบทำงานได้ดี แต่การถ่ายโอนไฟล์มักจะล้มเหลว นอกจากนี้ PPPoE ยังเป็นเบอร์หนึ่งของปัญหา MTU สำหรับผู้ใช้ตามบ้าน ดังนั้นฉันจึงสั่งการตรวจสอบ MTU

มันคืออะไร? เมตร aximum T ransmission ยูนิดเป็นขนาดสูงสุดของแพ็คเก็ตผ่านการเชื่อมโยงเครือข่าย MTU แตกต่างกันไปจากสื่อการขนส่งไปยังสื่อการขนส่งเช่นสาย Ethernet และ wifi (802.11) มี MTUs ที่แตกต่างกันและลิงก์ATM (ซึ่งประกอบไปด้วยโครงสร้างพื้นฐานทางไกลส่วนใหญ่) แต่ละเครื่องมี MTU ของตนเอง PPPOEเป็นโปรโตคอลที่ห่อหุ้มซึ่งหมายความว่าทุกแพ็กเก็ตประกอบด้วยส่วนหัวสองสามไบต์แล้วตามด้วยแพ็กเก็ตพื้นฐาน - ดังนั้นจึงลดขนาดแพ็กเก็ตสูงสุดตามขนาดของส่วนหัว IPอนุญาตให้เราเตอร์แยกส่วนแพ็กเก็ตหากตรวจพบว่ามีขนาดใหญ่เกินไปสำหรับการฟ้อนรำครั้งต่อไป แต่วิธีนี้ไม่ได้ผลเสมอไป ในทางทฤษฎีควรค้นพบ MTU ที่เหมาะสมโดยอัตโนมัติแต่ก็ไม่ได้ผลเช่นกัน โดยเฉพาะอย่างยิ่ง googling ชี้ให้เห็นว่า Network Manager ไม่ได้ทำงานอย่างถูกต้องกับข้อมูล MTU ที่ได้รับจากการค้นพบ MTU แต่ฉันไม่รู้ว่าเวอร์ชันใดที่ได้รับผลกระทบหรือกรณีการใช้งานที่มีปัญหาคืออะไร

วิธีการวัด หากคุณมีtracepathจากiputils Linux ให้เรียกใช้tracepath 8.8.8.8เพื่อดู MTU ผ่านเส้นทางไปยังเซิร์ฟเวอร์ DNS ของ Google ถ้ารุ่นของคุณtracerouteมีตัวเลือกการทำงาน--mtu traceroute -n --mtu 8.8.8.8ดูDiscover MTU ระหว่างฉันกับ IP ปลายทางสำหรับตัวเลือกเพิ่มเติม

ไม่มีเครื่องมืออัตโนมัติคุณสามารถวัดได้ด้วยตนเอง ลองส่งแพ็กเก็ต ping ที่มีขนาดที่กำหนดไปยังโฮสต์ภายนอกที่ตอบสนองต่อพวกเขาเช่นping -c 1 -s 42 8.8.8.8(บน Linux; ในระบบอื่น ๆ ให้ค้นหาเอกสารของpingคำสั่งของคุณ) แพ็คเก็ตของคุณควรผ่านไปได้ด้วยค่าที่น้อยพอที่ 42 (ถ้า 42 ใช้ไม่ได้มีบางอย่างกำลังบล็อก ping อยู่) สำหรับค่าที่มากขึ้นแพ็คเก็ตจะไม่ผ่าน 1464 เป็นค่าสูงสุดโดยทั่วไปหากส่วน จำกัด ของโครงสร้างพื้นฐานคือเครือข่ายอีเธอร์เน็ตในพื้นที่ของคุณ หากคุณโชคดีเมื่อคุณส่งแพ็คเก็ตที่ใหญ่เกินไปคุณจะเห็นข้อความFrag needed and DF set (mtu = 1492)ดังนี้ หากคุณไม่โชคดีลองทำการทดสอบต่อไปเรื่อย ๆ จนกว่าคุณจะพบว่าค่าสูงสุดคืออะไรแล้วเพิ่ม 28 ( -sระบุขนาดของส่วนของข้อมูลและมี 28 ไบต์ของส่วนหัวนอกเหนือจากนั้น) ดูสิ่งนี้ด้วยวิธีเพิ่มประสิทธิภาพการเชื่อมต่ออินเทอร์เน็ตโดยใช้ MTU และ RWINบนฟอรัม Ubuntu

วิธีการตั้งค่า (แทนที่ 1454 ด้วย MTU ที่คุณกำหนดไว้และeth0ด้วยชื่อของอินเทอร์เฟซเครือข่ายของคุณ)

  • ในฐานะที่เป็นครั้งเดียว (Linux): เรียกใช้ ifconfig eth0 mtu 1454
  • ถาวร (Debian และสัญญาซื้อขายล่วงหน้าเช่น Ubuntu ถ้าไม่ใช้ตัวจัดการเครือข่าย): /etc/network/interfacesแก้ไข หลังจากที่รายการสำหรับอินเตอร์เฟซเครือข่ายของคุณ (หลังiface eth0 …สั่ง), pre-up ifconfig $IFACE mtu 1454เพิ่มเส้นด้วย อีกวิธีหนึ่งหากที่อยู่ IP ของคุณเป็นแบบคงที่คุณสามารถเพิ่มmtu 1454พารามิเตอร์ลงในiface eth0 inet staticคำสั่งได้
  • อย่างถาวร (Debian และ Derivatives เช่น Ubuntu โดยมีหรือไม่มี Network Manager): สร้างสคริปต์ที่/etc/network/if-pre-up.d/mtuมีเนื้อหาดังต่อไปนี้และทำให้สามารถเรียกใช้งานได้ทั่วโลก ( chmod a+rx):

    #!/bin/sh
    ifconfig $IFACE mtu 1454
    

แหล่งข้อมูลเพิ่มเติม


ฉันหยุดเชื่อมต่อโดยใช้ตัวจัดการเครือข่ายและเริ่มใช้ pppoeconf pppoeconf แนะนำให้ตั้งค่า mtu เป็น 1452 และใช้งานได้ดี ขอบคุณมาก.
Mussnoon

นอกจากนี้ถ้าคุณอยู่ใน superuser คุณสามารถโพสต์คำตอบที่นั่นได้เช่นกันเพื่อที่ฉันจะสามารถยอมรับมันได้เช่นกัน นี่คือลิงค์: superuser.com/questions/213264/…
Mussnoon

สวัสดี, ขอบคุณสำหรับการโพสต์. แต่ในการแก้ปัญหาสุดท้ายของคุณฉันไม่สามารถทำอะไรกับ ifconfig เนื่องจากในการกระจายของฉันนี้ล้าสมัย ฉันมี "ip" เท่านั้น ฉันจะทำอย่างไรโดยใช้ "ip"
Santi

2
@Santi ฉันคิดว่ามันip link set eth0 mtu 1454แต่ฉันไม่ใช่ipผู้เชี่ยวชาญตรวจสอบคู่มือ
Gilles 'หยุดชั่วร้าย'

@Gilles ขอบคุณ! นั่นมัน ฉันต้องการสิทธิ์ sudo แต่นั่นก็ไม่มีปัญหา หวังว่ามันจะช่วยได้ฉันมีปัญหาในการเข้าถึงที่เก็บ https (แฮงค์เวลาส่วนใหญ่) และการเชื่อมต่อ ssh กับพวกเขาไม่ได้ทำงาน ด้วยแล็ปท็อปเครื่องเดียวกันในเครือข่ายสถาบันของฉันโปรโตคอลทั้งสองทำงานได้ดี
Santi

2

ปรากฏว่าปัญหาหลักคือสิ่งที่ต้องทำกับ SSL ทั้งหมดของ URL ที่ปัญหาของคุณมีhttps://....คน

ฉันไม่เห็นว่าทำไมการเปลี่ยนแปลง PPPoE จึงส่งผลกระทบต่อสิ่งนี้ แต่บางที ISP ของคุณเปลี่ยนแปลงมากกว่าหนึ่งอย่างในคราวเดียวและคุณกำลังตำหนิการเปลี่ยนแปลงที่ผิด

ฉันจะลองเพิ่มเราเตอร์ฮาร์ดแวร์หนึ่งแนะนำโดยหมายเลขรุ่นโดย ISP ของคุณ ไม่เพียง แต่มีแนวโน้มที่จะเจรจาการเชื่อมต่อ PPPoE ตามที่ ISP ของคุณต้องการ แต่ก็อาจจะแก้ปัญหาด้วยการเชื่อมต่อ SSL ได้เช่นกัน

หากวิธีนี้ไม่ได้ช่วยแก้ปัญหาของคุณในทันทีคุณก็ยังได้รับผลประโยชน์อีกเล็กน้อย

ก่อนอื่นไฟร์วอลล์ฮาร์ดแวร์จะเพิ่มระดับความปลอดภัย หากคุณต้องการอนุญาตการเชื่อมต่อกับเครื่องที่อยู่หลังไฟร์วอลล์โปรดดูที่PortForward.comสำหรับคำแนะนำสำหรับคำแนะนำการส่งต่อพอร์ตเราเตอร์ทุกตัวที่คุณอาจใช้

ประการที่สองเราเตอร์ที่บ้านส่วนใหญ่ให้คุณแบ่งปันการเชื่อมต่ออินเทอร์เน็ตกับพีซีหลายเครื่อง


คุณอาจมีบางสิ่งที่นั่น แต่เว็บไซต์ Gmail และ Yahoo และ AOL เป็นอย่างไรบ้าง? และ Twitter ฉันได้ลองtwitter.comโดยเฉพาะและใช้งานได้
Mussnoon

1

ฉันมีปัญหาเดียวกันนี้กับโครเมียม (และโครเมียม) ฉันคิดว่ามันเป็นปัญหาของ webkit ฉันไม่เคยพบวิธีแก้ปัญหาแบบถาวร แต่ถ้าคุณ google รหัสข้อผิดพลาดนั้น (ไม่มีค่าจริง) คุณจะเห็นคนจำนวนมากมีปัญหาเดียวกัน ฉันสามารถทำให้มันใช้งานได้ชั่วคราวด้วยการปิดแท็บที่เชื่อมต่อกับเว็บไซต์นั้น ๆ แล้วล้างแคชและคุกกี้และทุกอย่าง

ฉันไม่เคยพบวิธีแก้ปัญหาและกลับไปใช้ Firefox อีกครั้ง


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