Không thể truy cập các trang web https chọn trên Linux qua PPPoE


18

Kết nối internet của tôi từng là kết nối mạng LAN trực tiếp với nhà cung cấp của tôi. Trước đó, mọi thứ sẽ tải tốt trên cả Windows và Ubuntu (khởi động kép). Tuy nhiên, một thời gian trước họ bắt đầu cần tôi quay số (PPPoE) bằng tên người dùng và mật khẩu. Cổng, mặt nạ mạng con, IP, máy chủ DNS đều giữ nguyên. Nhưng kể từ đó, tôi không thể duyệt một số trang web nhất định trên Ubuntu, mặc dù không có vấn đề nào như vậy trên Windows. Một số trang web ví dụ là - Trang đăng nhập của Ovi (mặc dù share.ovi.com tải tốt và nokia.com tải tốt), Live Mail (hoạt động trên Chrome (ium) và Opera nhưng không phải trên Firefox (cả 3.6 và 4)) Mozilla Trang web Addons và các trang web ngẫu nhiên khác.

Một số trang web không tải các tin nhắn hết thời gian hiển thị và đối với một số trang web (như addon moz), trình duyệt sẽ tiếp tục tải mà không có kết thúc (Tôi đã để nó như thế thậm chí trong nhiều giờ nhưng không nhận thấy điều gì khác biệt xảy ra).

Tôi đã thử thay đổi máy chủ DNS thành máy chủ công cộng. Tôi thậm chí đã thử khởi động từ Fedora LiveCD và sau đó thay đổi DNS thành những cái đó (và thậm chí là cả OpenDNS), nhưng điều tương tự chính xác xảy ra. Điều gì có thể đã sai với một số cấu hình trong chính Linux đang gây ra vấn đề này?

Có ai biết tại sao điều này xảy ra và làm thế nào nó có thể được sửa chữa?

Lưu ý: Câu hỏi này đã được đăng chéo trên SU, nhưng không nhận được bất kỳ câu trả lời nào.

Cập nhật: Chỉ cần thấy ở đây có người khác gặp vấn đề tương tự và giải quyết nó bằng cách đặt tệp NetworkManager.conf vào /etc/NetworkManager. Những gì cần phải có trong tập tin đó?

Câu trả lời:


24

Bạn có các triệu chứng của sự cố MTU : một số kết nối TCP bị đóng băng, ít nhiều có thể lặp lại cho một lệnh hoặc URL cụ thể nhưng không có mẫu tổng thể dễ nhận thấy. Một triệu chứng cụ thể là các phiên ssh tương tác hoạt động tốt nhưng việc truyền tệp hầu như luôn thất bại. Hơn nữa, pppoe là người gây ra vấn đề MTU số một cho người dùng gia đình. Vì vậy, tôi kê toa kiểm tra MTU.

Nó là gì? Các m aximum t ransmission u nit là kích thước tối đa của một gói dữ liệu qua một liên kết mạng. MTU thay đổi từ phương tiện vận chuyển sang phương tiện vận chuyển, ví dụ Ethernet có dây và wifi (802.11) có các MTU khác nhau và các liên kết ATM (chiếm hầu hết các cơ sở hạ tầng đường dài) đều có MTU riêng. PPPOE là một giao thức được đóng gói, có nghĩa là mỗi gói bao gồm một vài byte tiêu đề theo sau là gói bên dưới - vì vậy nó làm giảm kích thước gói tối đa theo kích thước của tiêu đề. IP cho phép các bộ định tuyến phân mảnh các gói nếu chúng phát hiện ra rằng chúng quá lớn cho bước nhảy tiếp theo, nhưng điều này không phải lúc nào cũng hoạt động. Về lý thuyết, MTU thích hợp nên được phát hiệntự động , nhưng điều này cũng không phải lúc nào cũng hoạt động. Cụ thể, Google cho biết rằng Trình quản lý mạng không luôn luôn hành động đúng với thông tin MTU thu được từ khám phá MTU, nhưng tôi không biết phiên bản nào bị ảnh hưởng hoặc trường hợp sử dụng có vấn đề là gì.

Làm thế nào để đo lường nó. Nếu bạn có tracepathtừ iputils Linux , hãy chạy tracepath 8.8.8.8để xem MTU qua đường dẫn đến máy chủ DNS của Google. Nếu phiên bản của bạn traceroutecó một --mtutùy chọn, hãy chạy traceroute -n --mtu 8.8.8.8. Xem Khám phá MTU giữa tôi và IP đích để có thêm tùy chọn.

Thiếu công cụ tự động, bạn có thể đo bằng tay. Hãy thử gửi các gói ping có kích thước nhất định đến các máy chủ bên ngoài đáp ứng với chúng, ví dụ ping -c 1 -s 42 8.8.8.8(trên Linux; trên các hệ thống khác, tìm tài liệu về pinglệnh của bạn ). Các gói của bạn sẽ vượt qua được với các giá trị đủ nhỏ là 42 (nếu 42 không hoạt động, có thứ gì đó đang chặn ping.). Đối với các giá trị lớn hơn, gói sẽ không được thông qua. 1464 là một giá trị tối đa điển hình nếu phần cơ sở hạ tầng giới hạn là mạng Ethernet cục bộ của bạn. Nếu bạn may mắn, khi bạn gửi một gói quá lớn, bạn sẽ thấy một thông báo như thế nào Frag needed and DF set (mtu = 1492). Nếu bạn không may mắn, chỉ cần tiếp tục thử nghiệm giá trị cho đến khi bạn tìm thấy mức tối đa là bao nhiêu, sau đó thêm 28 ( -schỉ định kích thước tải trọng và có thêm 28 byte tiêu đề). Xem thêmCách tối ưu hóa kết nối Internet của bạn bằng MTU và RWIN trên các diễn đàn Ubuntu.

Cách đặt nó (thay thế 1454 bằng MTU bạn đã xác định và eth0bằng tên giao diện mạng của bạn)

  • Là một lần (Linux): chạy ifconfig eth0 mtu 1454
  • Vĩnh viễn (Debian và các công cụ phái sinh như Ubuntu, nếu không sử dụng Trình quản lý mạng): Chỉnh sửa /etc/network/interfaces. Ngay sau mục nhập cho giao diện mạng của bạn (sau lệnh iface eth0 …), hãy thêm một dòng với pre-up ifconfig $IFACE mtu 1454. Ngoài ra, nếu địa chỉ IP của bạn là tĩnh, bạn có thể thêm mtu 1454tham số vào lệnh iface eth0 inet static.
  • Vĩnh viễn (Debian và các công cụ phái sinh như Ubuntu, có hoặc không có Trình quản lý mạng): Tạo tập lệnh được gọi /etc/network/if-pre-up.d/mtuvới nội dung sau và làm cho nó có thể thực thi được trên thế giới ( chmod a+rx):

    #!/bin/sh
    ifconfig $IFACE mtu 1454
    

Thêm tài nguyên


Tôi đã ngừng kết nối bằng trình quản lý mạng và bắt đầu sử dụng pppoeconf. pppoeconf đề nghị cài đặt mtu thành 1452 và nó hoạt động tốt. Cảm ơn rất nhiều.
Muss Chiều

Ngoài ra, nếu bạn đang sử dụng superuser, bạn có thể vui lòng đăng câu trả lời ở đó không để tôi cũng có thể chấp nhận nó ở đó. Liên kết dưới đây: superuser.com/questions/213264/
Mạnh

Xin chào, cảm ơn cho bài viết. Nhưng trong giải pháp cuối cùng của bạn, tôi không thể làm bất cứ điều gì với ifconfig, vì trong bản phân phối của tôi, điều này đã lỗi thời. Tôi chỉ có "ip". Làm thế nào tôi có thể làm điều đó bằng cách sử dụng "ip"?
Santi

2
@ Tôi nghĩ đó là ip link set eth0 mtu 1454nhưng tôi không phải là một ipchuyên gia, hãy kiểm tra hướng dẫn.
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles cảm ơn! Điều đó là vậy đó. Tôi cần quyền sudo mặc dù, nhưng đó không phải là vấn đề. Hãy hy vọng điều đó có ích, tôi đang gặp sự cố khi truy cập các kho lưu trữ https (nó bị treo hầu hết thời gian) và kết nối ssh với chúng thậm chí không hoạt động. Với cùng một máy tính xách tay trên mạng của viện tôi, cả hai giao thức đều hoạt động tốt.
Santi

2

Có vẻ như vấn đề cốt lõi là phải làm gì với SSL. Tất cả các URL vấn đề của bạn là https://....một.

Tôi không thấy lý do tại sao một thay đổi đối với PPPoE ảnh hưởng đến điều này, nhưng có lẽ ISP của bạn đã thay đổi nhiều thứ cùng một lúc và bạn đang đổ lỗi cho thay đổi sai.

Tôi sẽ thử thêm một bộ định tuyến phần cứng, một bộ định tuyến được đề nghị cụ thể theo số model của ISP của bạn. Không chỉ có khả năng đàm phán kết nối PPPoE chính xác như ISP của bạn muốn, có lẽ nó cũng sẽ giải quyết vấn đề với các kết nối SSL.

Nếu nó không giúp ích gì cho vấn đề trước mắt của bạn, bạn vẫn nhận được một vài lợi ích phụ từ nó.

Đầu tiên, một tường lửa phần cứng thêm một lớp bảo mật. Nếu bạn cần cho phép kết nối với máy phía sau tường lửa, hãy xem PortForward.com để biết hướng dẫn về hướng dẫn chuyển tiếp cổng mỗi bộ định tuyến bạn có thể sử dụng.

Thứ hai, hầu hết các bộ định tuyến gia đình cho phép bạn chia sẻ kết nối Internet của mình với nhiều PC.


Bạn có thể có một cái gì đó ở đó. Nhưng làm thế nào về các trang web thư Gmail và Yahoo và AOL? Còn Twitter? Tôi đã đặc biệt thử twitter.com và nó hoạt động.
Muss Chiều

1

Tôi đã có vấn đề chính xác tương tự với crom (và chrome). Tôi cho rằng đó là một vấn đề webkit. Tôi chưa bao giờ tìm thấy giải pháp lâu dài nhưng nếu bạn google mã lỗi đó (không có giá trị thực tế), bạn sẽ thấy nhiều người có cùng một vấn đề. Tôi có thể tạm thời làm cho nó hoạt động bằng cách đóng tab được kết nối với trang web cụ thể và sau đó xóa bộ nhớ cache và cookie và mọi thứ.

Tôi chưa bao giờ tìm thấy một giải pháp và kể từ khi quay trở lại firefox.


Tuy nhiên, trong trường hợp của tôi, nó không liên quan gì đến trình duyệt, tôi chắc chắn. Tôi cũng đã thử từ IE và Safari từ máy ảo XP - kết quả tương tự.
Muss Chiều
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.