Tuyến VPN đã nhập khác với ứng dụng đang chạy? Hãy so sánh cả hai
Hồ sơ NetworkManager đã lưu và các tuyến thực sự được cài đặt là hai thứ khác nhau. Hãy so sánh đích riêng tư và công cộng trước khi thay đổi bất cứ điều gì.
Một dịch vụ riêng tư trả lời qua VPN trong khi lưu lượng internet thông thường hành xử hoàn toàn khác so với máy của đồng nghiệp, và người ta dễ kết luận rằng ứng dụng Ubuntu bị hỏng. Kết luận đó bỏ qua một bước. Một thao tác riêng tư đang hoạt động và một đường đi công cộng khác biệt là hai quan sát, và sự khác biệt thường nằm ở chính sách lưu lượng mà mỗi ứng dụng đã cài đặt, chứ không phải ở bản thân ứng dụng.
So sánh cấu hình đã lưu với trạng thái mạng thực tế chỉ cần ba lệnh và trả lời câu hỏi mà phỏng đoán đang cố trả lời.
Hồ sơ đã lưu trước, trạng thái thực tế sau
Một kết nối OpenVPN đã nhập sẽ trở thành hồ sơ NetworkManager riêng. Tệp .ovpn nguồn của nó không còn là nguồn chân lý ngay khi quá trình nhập kết thúc, nên việc sửa tệp đó sau này không thay đổi gì ở kết nối bạn đang dùng. Đây là chỗ đầu tiên phép so sánh đi sai, và nó sai một cách âm thầm.
nmcli -f connection.id,connection.uuid,ipv4.never-default,ipv4.routes,ipv4.dns connection show office-vpn
Đọc UUID khi tên trùng nhau; tên trùng vẫn tồn tại qua các lần cài lại và khôi phục hồ sơ, và bạn có thể mất một giờ để sửa bản sao không được dùng. Những giá trị bạn thấy mô tả ý định đã lưu: hồ sơ có được lấy tuyến mặc định hay không, những tuyến nào đã được lưu, và những trình phân giải cùng miền tìm kiếm nào được yêu cầu. Chúng không mô tả điều gì đã xảy ra khi kết nối được kích hoạt, vì một plugin hoặc lệnh đẩy từ máy chủ có thể thêm trạng thái mà hồ sơ không đề cập. Đó là lý do lệnh tiếp theo quan trọng.
Sau đó xem hệ thống thực sự đã làm gì với ý định đó, bao gồm các quy tắc chính sách và mọi bảng chứ không chỉ bảng chính. Các thuộc tính đã lưu là đầu vào, và các bảng đã cài đặt là kết quả.
ip -4 rule show
ip -4 route show table all
Hai đích đến, một phép so sánh
Chọn một đích riêng tư đang hoạt động và một đích công cộng thông thường, rồi hỏi nhân hệ điều hành mỗi đích sẽ đi theo đường nào. Làm việc này trên cả hai máy chính là điều biến một khác biệt mơ hồ thành cụ thể.
ip -4 route get 10.40.0.20
ip -4 route get 203.0.113.20
Các địa chỉ chỉ là ví dụ để thay bằng địa chỉ của bạn; điều quan trọng là cặp địa chỉ, không phải con số. Hãy so sánh giao diện, địa chỉ nguồn và bảng được nêu trong mỗi kết quả. Khi tra cứu riêng tư nêu đường hầm và tra cứu công cộng cũng nêu đường hầm, bạn có đường hầm đầy đủ và ứng dụng kia có thể dùng đường hầm chia tách, hoặc ngược lại.
Đừng đòi hai ứng dụng in ra văn bản giống hệt nhau. redirect-gateway def1 của OpenVPN thường được biểu diễn bằng hai tuyến nửa tiền tố thay vì một tuyến mặc định, và một trình quản lý hiển thị chúng khác đi không vì thế mà sai. Hãy đánh giá độ phủ, thứ mà các tra cứu cho thấy, chứ không phải định dạng.
Nơi hai ứng dụng khác nhau một cách chính đáng
Mặc định của ứng dụng là những lựa chọn chính sách, và chúng được phép không đồng ý với nhau. Một sản phẩm có thể thích đường hầm đầy đủ, sản phẩm khác giữ mặc định cục bộ và chỉ định tuyến các tiền tố riêng tư, còn sản phẩm thứ ba làm theo bất cứ thứ gì máy chủ đẩy xuống. Một khác biệt chỉ là khiếm khuyết khi nó trái với yêu cầu bạn được giao.
Vì vậy hãy so sánh từng ứng dụng với ý định đường hầm chia tách hoặc đầy đủ đã được phê duyệt, chứ không so sánh chúng với nhau. Nếu yêu cầu là lưu lượng riêng tư dùng đường hầm và đường internet cục bộ vẫn ở cục bộ, thì đường hầm đầy đủ là lỗi và đường hầm chia tách mới đúng, bất kể ứng dụng nào làm gì. Hãy ghi ý định ra trước khi bạn xem bất kỳ cấu hình nào, nếu không ứng dụng đầu tiên bạn kiểm tra sẽ âm thầm trở thành chuẩn.
DNS là trục thứ hai và nó hỏng độc lập. Một tuyến đúng vẫn có thể gửi truy vấn tới trình phân giải không thể trả lời cho vùng riêng tư, và một trình phân giải đúng không sửa được tuyến sai. Hãy kiểm tra cả hai, và coi một tên riêng tư phân giải được trong khi địa chỉ riêng tư thì không là bằng chứng rằng hai lớp đang được xử lý riêng rẽ.
Giữ phép so sánh sạch sẽ
Chỉ chạy một chủ sở hữu kết nối tại một thời điểm. Một phiên OpenVPN dòng lệnh chạy bên cạnh hồ sơ đã nhập sẽ cài tuyến riêng và trạng thái trình phân giải riêng, và hỗn hợp tạo ra không phải hành vi của ứng dụng nào cả. Hãy gỡ một cái trước khi đo cái kia. Khởi động lại nếu bạn không chắc còn gì đang giữ trạng thái, vì một tuyến cũ từ một giờ trước sẽ trông giống hệt một vấn đề chính sách.
Giữ mọi thứ khác cố định: cùng điểm cuối, cùng tài khoản, cùng phiên bản phần mềm, cùng mạng. Thành công trên laptop Windows của đồng nghiệp là kiểm tra một ứng dụng khác, một tích hợp trình phân giải khác và có thể là một hồ sơ máy chủ khác, nên đó không phải bằng chứng về trình quản lý Ubuntu.
Tài liệu tham chiếu cài đặt IPv4 của NetworkManager định nghĩa chính xác never-default và các thuộc tính tuyến đã lưu, đáng đọc trước khi bạn thay đổi một giá trị được quản lý. Và hãy nhớ phạm vi của phép so sánh này: nó chỉ đề cập IPv4 và không nói gì về chính sách IPv6 tương ứng, vốn có mặc định riêng và cách riêng để làm bạn bất ngờ.