Homebrew cài một chương trình OpenVPN; Tunnelblick cài một trình quản lý chạy một hoặc nhiều động cơ. Đây là những tầng khác nhau, và câu hỏi hữu ích không phải là bạn có thích dùng terminal hay không. Mà là ai sở hữu cấu hình, các thay đổi DNS, yêu cầu thông tin đăng nhập và việc dọn dẹp khi phiên kết thúc. Chỉ một chủ sở hữu cho các tầng đó là điều khiến thiết lập có thể đoán trước.

Hãy thực hiện năm kiểm tra dưới đây theo thứ tự. Kiểm tra đầu tiên có hai chủ sở hữu chính là cái tạo ra những trạng thái nửa kết nối kỳ lạ mà mọi người đổ lỗi cho chính OpenVPN. Mỗi kiểm tra nêu ra bằng chứng quyết định nó.

Kiểm tra một: tệp nhị phân OpenVPN nào thực sự chạy

Chạy pgrep -fl openvpn khi đang kết nối và đọc toàn bộ dòng lệnh. Đường dẫn đầu tiên là động cơ thực sự đang chạy. Trên Apple Silicon, bản cài Homebrew thường nằm dưới /opt/homebrew, trong khi Mac Intel dùng /usr/local, và Tunnelblick chạy một động cơ từ bên trong gói ứng dụng của chính nó.

Tunnelblick đóng gói các động cơ và cho phép một cấu hình chọn một trong số đó. Cập nhật công thức Homebrew thay đổi tệp nhị phân độc lập, không phải động cơ mà một hồ sơ Tunnelblick khởi chạy. Nếu bạn so sánh phiên bản để giải thích khác biệt hành vi, hãy so sánh động cơ trong danh sách tiến trình chứ không phải cái trong trình quản lý gói. Chỉ chuỗi phiên bản không cho bạn biết động cơ đó đã tải hồ sơ nào.

Một hồ sơ được sao chép cũng có thể khiến hai động cơ trông giống nhau trong khi chúng đọc các tệp khác nhau. Đường dẫn hồ sơ trong dòng lệnh cho bạn biết tiến trình đang chạy đã tải cấu hình nào; một hồ sơ mở trong trình soạn thảo không phải là bằng chứng. Hãy so sánh đường dẫn đó trước khi so sánh hành vi.

Kiểm tra hai: ai thay đổi DNS và các tuyến đường

Động cơ có thể chạy các chỉ thị up và down riêng của OpenVPN, nhưng trình quản lý có thể sở hữu cùng vòng đời đó. Các thiết lập máy chủ tên của Tunnelblick điều khiển các script kết nối và ngắt kết nối tiêu chuẩn của nó, và khi tích hợp đó được bật, các chỉ thị cạnh tranh trong hồ sơ có thể bị bỏ qua.

Điều này quan trọng vì DNS là nơi một đường hầm đang hoạt động trông hỏng thường xuyên nhất. Kiểm tra scutil --dns khi đang kết nối, ghi lại trình phân giải nào đứng đầu và xác nhận nó trở lại sau khi ngắt kết nối. Nếu hồ sơ mong tự đặt DNS trong khi trình quản lý cũng quản lý nó, một trong hai sẽ thua.

Hãy quyết định tầng nào sở hữu DNS trước lần kết nối đầu tiên, sau đó xóa chỉ thị thua cuộc thay vì để cả hai. Các thay đổi tuyến đường theo cùng quy tắc: một chủ sở hữu, hiển thị trong cấu hình, với đường khôi phục được ghi lại.

Kiểm tra ba: thông tin đăng nhập đến từ đâu

Một yêu cầu tương tác và một tiến trình không có giám sát có yêu cầu khác nhau. Thông tin đăng nhập do một ứng dụng lưu không tự động khả dụng cho tiến trình khác, và một mục chuỗi khóa giới hạn cho trình quản lý có thể vô hình với động cơ độc lập khởi chạy từ shell.

Liệt kê nguồn thông tin đăng nhập cho hồ sơ: chứng chỉ và khóa máy khách, yêu cầu tên người dùng và mật khẩu, hoặc token do một trợ lý bên ngoài cung cấp. Sau đó xác nhận chủ sở hữu đã chọn có thể tiếp cận nguồn đó mà không cần người nếu kết nối phải tồn tại qua lần khởi động lại.

Kiểm tra bốn: ai khởi động, giám sát và dừng tiến trình

Một triển khai độc lập cần người giám sát nếu nó phải duy trì hoạt động. Launchd có thể khởi động động cơ khi đăng nhập hoặc theo yêu cầu, khởi động lại sau sự cố và dừng sạch, nhưng ai đó phải viết và sở hữu công việc đó. Chạy lệnh trong terminal phù hợp cho thử nghiệm và không phù hợp với người dùng đóng cửa sổ.

Nếu Tunnelblick vẫn là chủ sở hữu, hãy dùng các điều khiển được hỗ trợ của nó thay vì khởi chạy động cơ thứ hai. Tệp nhị phân Homebrew, khi được cấp một hồ sơ sao chép, sẽ mở kết nối độc lập với cấu hình và ngữ cảnh tích hợp riêng thay vì chỉ huy phiên Tunnelblick hiện có.

Dù chọn chủ sở hữu nào, hãy xác định điều gì xảy ra khi ngủ, khi đổi mạng và khi đăng xuất. Trình quản lý thường xử lý những sự kiện đó; một tiến trình trần thường không, và tuyến đường hay trình phân giải cũ còn lại dễ bị đọc nhầm là lỗi máy chủ.

Kiểm tra năm: việc bàn giao được xác minh thế nào

Kiểm tra chủ sở hữu mới với chủ sở hữu cũ bị tắt, sau đó kiểm tra lại chủ sở hữu cũ nếu bạn định giữ nó. Một tài nguyên riêng trả lời trong một luồng công việc mà không trả lời trong luồng kia là bằng chứng về tích hợp còn thiếu, không phải về máy chủ.

Để bàn giao cho một động cơ độc lập, hãy ghi lại đường dẫn hồ sơ, đường dẫn tệp nhị phân, người giám sát, chủ sở hữu DNS và nguồn thông tin đăng nhập. Sau đó xác minh tài nguyên riêng, đường ra internet công cộng và ngắt kết nối sạch theo thứ tự đó. Nếu DNS hoặc tuyến đường còn lại sau khi ngắt kết nối, chủ sở hữu mới chưa xong.

Để bàn giao cho Tunnelblick, chọn động cơ cho cấu hình, bật tích hợp DNS mà bạn dự định và xóa các chỉ thị hồ sơ chống lại nó. Sau đó lặp lại ba kiểm tra tương tự. Một kết nối hoạt động nhưng để lại trình phân giải đã thay đổi là bàn giao thất bại, kể cả khi đường hầm đã lên.

Việc đóng gói không quyết định tính tương thích với máy chủ. Hãy kiểm tra yêu cầu máy khách của chính dịch vụ và chỉ chọn riêng động cơ khi bạn định tự cung cấp việc quản lý nó.

Bài viết liên quan