proto udp hay tcp-client: máy chủ của bạn nghe loại nào?
Chỉ thị này quy định transport của kết nối bên ngoài. Sửa nó cục bộ không thể tạo trình lắng nghe trên máy chủ, vì vậy hãy kiểm tra mục remote trước.
Một hồ sơ từng hoạt động tháng trước giờ bị hết thời gian, và ai đó đề nghị đổi proto udp thành proto tcp-client. Đôi khi đó là bước đúng, đôi khi nó tạo ra một ứng dụng khách kết nối tới cổng không có gì lắng nghe, vì máy chủ chưa bao giờ được cấu hình cho transport kia. Chỉ thị mô tả phía bạn nói như thế nào; nó không thể tạo trình lắng nghe ở phía bên kia. Hãy đọc hồ sơ và máy chủ cùng nhau trước khi thay đổi bất kỳ cái nào.
Đọc transport mà kết nối đang chọn sử dụng
Một hồ sơ có thể chứa nhiều mục remote, và mỗi mục có thể nêu transport riêng. Ứng dụng khách xử lý chúng theo thứ tự, nên dòng bạn thấy đầu tiên không nhất thiết là dòng được áp dụng.
Tìm mục thực sự đang được thử, rồi đọc transport của nó. Thứ tự rất quan trọng, vì ứng dụng khách không lặng lẽ chuyển sang mục tiếp theo. Một số bản dựng chỉ thử mục tiếp theo sau khi hết thời gian, nên một phương án thay thế hoạt động ở cuối tệp được đạt tới chậm hơn vài giây so với bạn tưởng. Hãy xem nhật ký để biết điểm cuối nào đang được thử thay vì cho rằng dòng đầu tiên đã thắng.
Nếu tệp có một dòng proto gần đầu và một vài mục remote bên dưới, dòng đó là giá trị mặc định cho mọi remote không ghi đè nó. Sửa cục bộ giá trị mặc định không có tác dụng gì với một mục remote nêu transport riêng.
grep -nE '^(remote|proto)\b' client.ovpnUDP và TCP không phải là thiết lập tốc độ
UDP gửi datagram mà không xây dựng một luồng có thứ tự, nên lưu lượng của chính đường hầm không bị bọc trong một transport đáng tin cậy thứ hai. TCP cho bạn một đường đi xuyên qua các mạng loại bỏ hoặc chặn UDP, với cái giá là việc truyền lại lồng nhau có thể khiến một liên kết có mất mát cảm thấy tệ hơn.
Đây là sự đánh đổi về khả năng tiếp cận, không phải một bảng xếp hạng phổ quát. Lựa chọn đúng là lựa chọn mà mạng trước mặt ứng dụng khách cho phép. Một đường đi loại bỏ UDP trên cổng VPN sẽ không bao giờ thương lượng, dù hồ sơ có được viết tốt đến đâu. Hãy thử đường đi, rồi chọn transport.
Chọn giữa hai loại chỉ dựa trên một phép đo là sai lầm, vì câu trả lời phụ thuộc vào điều mạng trước mặt bạn cho phép. Một khách sạn hoặc proxy doanh nghiệp có thể chỉ cho phép TCP đi ra trên cổng 443 và không gì khác, đó là lý do các nhà cung cấp đưa ra biến thể đó. Nó vẫn là kết nối OpenVPN trên cổng đó, không phải phiên HTTPS, dù số cổng là con số quen thuộc.
tcp-client thực sự có nghĩa là gì
Chỉ thị phía ứng dụng khách nêu tên đầu khởi tạo một kết nối TCP. Phía máy chủ dùng hình thức lắng nghe riêng của nó, và việc sao chép từ của ứng dụng khách vào cấu hình máy chủ tạo ra một trình lắng nghe chờ được gọi chứ không phải thứ chấp nhận kết nối.
Khớp nhau nghĩa là hai đầu đồng ý về transport, không phải là chúng chia sẻ cùng một chuỗi.
grep -nE '^proto\b' /etc/openvpn/server/server.conf
ss -lntp | grep openvpnHãy hỏi máy chủ xem nó đang lắng nghe gì trước khi cho rằng hồ sơ sai. Trình lắng nghe UDP không xuất hiện trong danh sách socket TCP, và ngược lại cũng đúng, nên hãy xem chế độ xem dành riêng cho giao thức thay vì một chế độ chung.
Khi hồ sơ được nhập nhưng không bao giờ kết nối
Một hồ sơ đã nhập bị hết thời gian ngay lập tức thường thất bại trước mọi xác thực. Gói tin đi tới một cổng không có trình lắng nghe, hoặc mạng lặng lẽ loại bỏ nó.
Hãy thử đường đi theo cách đơn giản nhất: kết nối tới cùng máy chủ và cổng với transport mà hồ sơ tuyên bố, từ cùng mạng với ứng dụng khách đang thất bại.
Nếu thử nghiệm UDP không nhận được gì và thử nghiệm TCP kết nối được, máy chủ đang cung cấp transport kia và hồ sơ chỉ đơn giản là lỗi thời. Nếu cả hai đều không phản hồi, vấn đề nằm phía trên lựa chọn transport và không chỉnh sửa hồ sơ nào sửa được. Phân biệt hai trường hợp này mất một phút và tiết kiệm một giờ gỡ lỗi chứng chỉ vốn chưa bao giờ liên quan.
Ghi lại transport hoạt động được
Khi một tổ hợp hoạt động, hãy ghi nó lại cùng máy chủ, cổng và giao thức, và ghi chú nó đã được thử từ mạng nào.
Nếu không, người tiếp theo gặp hết thời gian sẽ lặp lại thí nghiệm tương tự theo hướng ngược lại, và có thể thay đổi một máy chủ vốn đang tốt.
Nếu nhà cung cấp công bố cả hai biến thể, hãy giữ cả hai tệp và dán nhãn theo mạng mà chúng phù hợp. Hai hồ sơ có tên rõ ràng ngăn việc vô tình trộn transport của ứng dụng khách với một trình lắng nghe máy chủ chưa bao giờ được cấu hình cho nó.