Hướng dẫn
Cách thiết lập VPN trên Linux
Ứng dụng của nhà cung cấp từ kho riêng, lựa chọn dùng tệp cấu hình với các công cụ có sẵn của hệ thống, chi tiết DNS gây rò rỉ trên Linux nhiều hơn bất kỳ nền tảng nào khác, cùng các bước kiểm tra từ terminal. Bài viết dựa trên Ubuntu 26.04 LTS và NetworkManager.
Trước khi bắt đầu
Hướng dẫn này không chọn thay bạn
Mọi bước dưới đây đều giống nhau dù bạn dùng nhà cung cấp nào, vì vậy không có nhà cung cấp nào được nêu ở đây. Việc lựa chọn là một công việc riêng và được thực hiện trên sổ đăng ký, nơi lựa chọn dựa trên điểm số đã công bố thay vì dựa trên một trang tải xuống.
Hãy cài đặt ứng dụng từ kho riêng của nhà cung cấp, với khóa ký lấy từ chính hướng dẫn của nhà cung cấp. Không bao giờ dán lệnh cài đặt một dòng từ diễn đàn hoặc blog vào terminal: lệnh đó chạy với quyền root và bạn không biết nó đã tải gì về. Gói từ kho đã ký có thể được kiểm tra; còn tập lệnh được chuyển vào shell thì không.
Cài đặt ứng dụng
Trên Linux có hai cách và cả hai đều minh bạch. Ứng dụng riêng của nhà cung cấp là cách thứ nhất; nó có sẵn công tắc ngắt kết nối, bộ chọn máy chủ và xử lý DNS. Dùng tệp cấu hình với các công cụ có sẵn của hệ thống là cách thứ hai, và phần cuối của hướng dẫn này nêu rõ cái giá phải trả.
- Đăng nhập trên trang web của nhà cung cấp và mở hướng dẫn dành cho Linux từ khu vực tài khoản. Hướng dẫn sẽ nêu kho, khóa và gói; hãy làm theo đúng những phần đó.
- Thêm kho và khóa của kho, sau đó cài đặt gói bằng trình quản lý gói của bản phân phối. Khóa là thứ cho phép trình quản lý gói từ chối một gói đã bị can thiệp, vì vậy kho được thêm mà không có khóa là kho mà bạn đã chấp nhận chỉ dựa trên sự tin tưởng.
- Bật dịch vụ của ứng dụng để dịch vụ khởi động cùng hệ thống. Ứng dụng thường gồm một daemon chạy với quyền root và một ứng dụng máy tính kết nối với daemon đó; daemon quản lý đường hầm, còn công tắc ngắt kết nối cần có daemon chạy ngay từ lúc khởi động để hoạt động ngay từ lúc khởi động.
- Đăng nhập vào ứng dụng — từ ứng dụng hoặc từ dòng lệnh bằng token mà khu vực tài khoản cung cấp — và đặt tên cho thiết bị sao cho không thể nhận diện bạn.
- Chưa kết nối vội. Trước tiên hãy mở phần cài đặt. Trong số ba mục dưới đây, có hai mục thường bị tắt theo mặc định ở hầu hết ứng dụng.
Ba cài đặt đáng kiểm tra
Các trình đơn của ứng dụng khác nhau, nhưng các cài đặt thì không. Cả ba mục đều có trong bảng thuật ngữ nếu tên gọi còn xa lạ.
Công tắc ngắt kết nối
Chặn toàn bộ lưu lượng nếu đường hầm bị ngắt, thay vì âm thầm để kết nối quay lại mạng thông thường. Trên Linux, đây là một tập hợp quy tắc tường lửa do ứng dụng ghi vào: mọi thứ ngoại trừ giao diện đường hầm và điểm cuối của chính đường hầm đều bị loại bỏ. Hãy bật mục này và chọn dạng luôn bật hoặc lockdown nếu ứng dụng có cung cấp, để các quy tắc được duy trì từ lúc khởi động chứ không chỉ khi đang kết nối. Mục đích của công tắc được giải thích trên trang riêng của nó.
DNS bên trong đường hầm
Các truy vấn tên có thể rời khỏi máy qua bên ngoài đường hầm ngay cả khi mọi thứ khác đều đi bên trong, và trên Linux đây là kiểu rò rỉ xảy ra nhiều nhất vì bộ phân giải là một thành phần luôn thay đổi. Trên Ubuntu, thành phần đó là systemd-resolved: mỗi giao diện có bộ phân giải riêng, và bộ phân giải có tuyến mặc định cho DNS sẽ trả lời mọi truy vấn không khớp với miền cụ thể hơn. Ứng dụng nên trỏ tuyến mặc định đó đến bộ phân giải của nhà cung cấp thông qua giao diện đường hầm. Hãy đặt DNS của ứng dụng thành DNS riêng của nhà cung cấp, không phải DNS của bên thứ ba; bên thứ hai chỉ nhìn thấy các truy vấn cũng là thêm một bên nữa. Cách rò rỉ xảy ra được giải thích trên trang về rò rỉ DNS.
Giao thức
Hãy giữ nguyên giao thức hiện đại được chọn mặc định, trừ khi có sự cố — trang giao thức liệt kê giao thức nào còn hiện hành và giao thức nào đã cũ. Nếu ứng dụng cung cấp một lựa chọn cũ hơn để khắc phục sự cố kết nối, đó là một đánh đổi cần thực hiện có cân nhắc rồi hoàn tác sau đó: sổ đăng ký đánh dấu giao thức yếu nhất mà nhà cung cấp vẫn cung cấp, và tự chọn giao thức đó nghĩa là bạn tự chọn mức đánh dấu ấy cho mình.
Xác nhận rằng nó thực sự hoạt động
Hãy kết nối rồi kiểm tra thay vì mặc định rằng mọi thứ đều ổn. Thực hiện ba bước kiểm tra từ terminal, theo thứ tự sau:
- Địa chỉ của bạn đã thay đổi. Dùng
curlvới bất kỳ dịch vụ nào có nội dung “IP của tôi là gì”, hoặc mở một dịch vụ như vậy trong trình duyệt, rồi xác nhận quốc gia khớp với điểm thoát bạn đã chọn. Lệnhip route getđến một địa chỉ công khai phải hiển thị giao diện đường hầm, không phải giao diện Wi-Fi hoặc Ethernet. - Các truy vấn nằm bên trong đường hầm. Chạy
resolvectl status: giao diện đường hầm phải mang bộ phân giải của nhà cung cấp và tuyến mặc định cho DNS; bộ phân giải của giao diện vật lý không được sử dụng. Kiểm tra rò rỉ DNS trong trình duyệt là ý kiến đối chiếu thứ hai, và bất kỳ mục nào thuộc về nhà cung cấp internet của bạn đều cho thấy cài đặt DNS chưa có hiệu lực. - Công tắc ngắt kết nối hoạt động đúng như mô tả. Khi đang tải xuống, hãy dừng dịch vụ của ứng dụng bằng
systemctl stop, hoặc đưa giao diện đường hầm xuống bằngip link set … down, để đường hầm bị ngắt mà không cần yêu cầu ứng dụng thực hiện. Quá trình truyền phải dừng ngay. Nếu vẫn tiếp tục, công tắc chỉ mang tính hình thức.
Bộ kiểm tra đầy đủ hơn, cùng những gì mỗi bước có thể và không thể cho thấy, nằm trong hướng dẫn riêng.
Những gì các bước kiểm tra chứng minh
+Lưu lượng của bạn đi qua máy chủ điểm thoát tại quốc gia bạn đã chọn
+Bộ phân giải trả lời các truy vấn của bạn là bộ phân giải của nhà cung cấp, bên trong đường hầm
+Đường hầm bị ngắt sẽ chuyển sang trạng thái đóng, thay vì âm thầm quay lại kết nối thông thường
Những gì chúng không chứng minh
−Chúng không nói gì về dữ liệu nhà cung cấp lưu giữ — đó là câu hỏi về tài liệu, được trả lời trên các trang về lưu giữ dữ liệu
−Chúng không khiến bạn ẩn danh: trình duyệt và các thông tin đăng nhập của bạn không thay đổi, hãy xem VPN không bảo vệ bạn khỏi điều gì
−Một bài kiểm tra đạt hôm nay không phải là lời hứa về bản cập nhật gói tiếp theo hoặc kernel tiếp theo
Cách dùng tệp cấu hình và cái giá phải trả
Hầu hết nhà cung cấp công bố tệp cấu hình cho hai giao thức phổ biến trong khu vực tài khoản. Tệp WireGuard được nhập vào NetworkManager từ trình chỉnh sửa kết nối hoặc bằng nmcli connection import, và cũng chạy tốt không kém dưới wg-quick; tệp OpenVPN được nhập theo cách tương tự với plugin OpenVPN. Bạn có đường hầm, nút bật tắt giao diện riêng của hệ thống, và không có gì ngoài những gì nhà cung cấp đã đưa vào tệp.
Thứ bạn mất là phần còn lại của ứng dụng. Không có công tắc ngắt kết nối trừ khi bạn tự viết các quy tắc tường lửa; một tệp được nhập vào NetworkManager mà bị ngắt sẽ đơn giản đưa lưu lượng trở lại mạng thông thường. Không có xử lý DNS ngoài dòng DNS trong tệp, và một tệp không có dòng này chính là nguyên nhân rò rỉ trong câu trả lời khắc phục sự cố đầu tiên. Không có bộ chọn máy chủ: mỗi tệp là một điểm thoát, và đổi điểm thoát nghĩa là dùng tệp khác. Hãy tạo tệp từ khu vực tài khoản và giữ chúng riêng tư: tệp WireGuard chứa khóa riêng tư, chính là danh tính của bạn đối với nhà cung cấp.
Cách này phù hợp với máy chủ, máy không có giao diện đồ họa hoặc bản phân phối không được ứng dụng hỗ trợ. Trên máy tính xách tay, hãy ưu tiên ứng dụng; công tắc mà ứng dụng mang theo chính là thứ tệp cấu hình không thể cung cấp.
Khi mọi thứ không hoạt động
Đường hầm đã hoạt động nhưng DNS vẫn đi đến nhà cung cấp internet của tôi
Đây là kiểu rò rỉ Linux kinh điển. Tệp cấu hình không đặt DNS sẽ để systemd-resolved tiếp tục dùng bộ phân giải do mạng cung cấp, nằm bên ngoài đường hầm. Chạy resolvectl status: giao diện đường hầm phải liệt kê bộ phân giải của nhà cung cấp và mang tuyến mặc định cho DNS, được đánh dấu bằng dấu cộng.
Thêm một dòng DNS vào cấu hình hoặc đặt DNS cho kết nối trong NetworkManager, rồi kết nối lại. Ứng dụng riêng của nhà cung cấp tự thiết lập mục này, đây là một trong những lý do nên ưu tiên ứng dụng đó.
Mọi thứ dừng hoạt động khi đường hầm bị ngắt, thật khó chịu
Đó là công tắc ngắt kết nối đang làm đúng nhiệm vụ: đường hầm bị ngắt sẽ trở thành kết nối chết thay vì âm thầm quay lại mạng thông thường. Hãy kết nối lại thay vì tắt công tắc.
Nếu đường hầm thường xuyên bị ngắt trên một mạng nhưng hiếm khi xảy ra ở nơi khác, hãy đổi giao thức một lần và thử một điểm thoát gần hơn. Nếu không giao thức nào duy trì được trên mạng đó, mạng đang chặn lưu lượng VPN và hướng dẫn này dừng ở đây.
Ứng dụng yêu cầu sudo hoặc mật khẩu mỗi lần
Tạo giao diện mạng là một thao tác cần quyền đặc biệt, và ứng dụng không cài dịch vụ chạy nền sẽ phải yêu cầu quyền mỗi lần. Hầu hết ứng dụng đều cài một dịch vụ như vậy — một daemon chạy với quyền root và một ứng dụng máy tính kết nối với daemon — nên lời nhắc lặp lại có nghĩa là dịch vụ chưa chạy hoặc chưa được bật.
Kiểm tra bằng systemctl status và tên dịch vụ trong hướng dẫn của nhà cung cấp, rồi bật dịch vụ để nó khởi động cùng hệ thống.
Địa chỉ IPv6 xuất hiện trên trang kiểm tra
Đường hầm mang IPv4 nhưng máy vẫn có tuyến IPv6 nằm bên ngoài đường hầm, vì vậy mọi thứ ưu tiên IPv6 sẽ đi vòng qua VPN. Các nhà cung cấp không chuyển IPv6 qua đường hầm nên tắt IPv6 trên giao diện; những ứng dụng tốt hơn sẽ tự làm việc này.
Nếu bạn tạo kết nối từ một tệp, hãy tắt IPv6 cho kết nối trong NetworkManager hoặc dùng sysctl để tắt, rồi kiểm tra lại. Một đường hầm để mở một họ địa chỉ thứ hai chỉ là đường hầm một nửa.
Cùng các bước, máy khác
Các nền tảng còn lại
Mỗi nền tảng có hướng dẫn riêng của mình chứ không phải một tab trên hướng dẫn này. Các bước bắt đầu khác nhau ngay khi trình cài đặt mở ra, và một trang trả lời cho ba nền tảng cùng lúc thì không trả lời đúng cho nền tảng nào cả.