Điều gì thực sự xảy ra khi bạn khởi động VPN trên Linux
Khởi động VPN trên Linux tạo ra một giao diện, cài đặt các tuyến đường và thay đổi bộ phân giải. Biết dịch vụ nào sở hữu từng bước sẽ giải thích phần lớn các lỗi thiết lập.
Nhấn kết nối và ba thứ thay đổi trên một máy Linux: một giao diện xuất hiện, các tuyến đường được cài đặt và bộ phân giải bắt đầu trả lời khác đi. Phần lớn lỗi thiết lập đến từ việc một trong ba thứ đó xảy ra mà không có những thứ kia, hoặc từ việc hai chương trình không đồng ý về việc ai sở hữu chúng. Hiểu trình tự giải thích lỗi nhanh hơn đọc đầu ra nhật ký của một ứng dụng khách.
Một giao diện xuất hiện trước khi bất cứ thứ gì hoạt động
Một ứng dụng khách đường hầm mở một giao diện ảo và giao các gói cho nó. Thiết bị TUN mang các gói IP, đó là thứ một VPN định tuyến cần; thiết bị TAP mang các khung Ethernet, đó là thứ một thiết kế cầu nối cần. Mô-đun nhân cung cấp thiết bị, và ứng dụng khách sở hữu nó chừng nào phiên còn kéo dài.
Giao diện nổi lên không giống với đường hầm hoạt động. Nó có thể tồn tại với một địa chỉ trong khi đối tác không thể tiếp cận, và đó là lý do danh sách giao diện là bước kiểm tra đầu tiên chứ không phải cuối cùng. Một thiết bị báo rằng nó đã lên đang mô tả góc nhìn của nhân về một liên kết ảo, không phải sự sẵn lòng trả lời của đối tác.
Hãy để chế độ giao diện được cung cấp yên như vậy. Chuyển một hồ sơ TUN sang TAP không biến một máy chủ định tuyến thành cầu nối, và thường tạo ra một kết nối được thiết lập mà không chuyển tiếp gì.
Các tuyến đường do người sở hữu đường hầm cài đặt
Các tuyến đường là thay đổi thứ hai, và quyền sở hữu chúng quan trọng hơn nội dung. Một hồ sơ NetworkManager, một đơn vị systemd và một ứng dụng khách chạy tay đều có thể cài đặt tuyến đường, và khi hai trong số đó làm cùng lúc thì sinh ra một bảng mà không ai giải thích được về sau.
ip -br addr show ip route show ip -6 route show
Hồ sơ đường hầm đầy đủ thay thế tuyến đường mặc định; hồ sơ đường hầm chia tách thêm các tuyến đường cụ thể hơn và để tuyến mặc định yên. Cả hai đều bình thường, và cái thứ hai là lý do vì sao xóa tuyến đường mặc định là một phép thử đầu tiên tồi trên một máy bạn quản trị từ xa. Xóa nó cũng là cách nhanh nhất để mất phiên bạn đang dùng để sửa sự cố.
Hãy đọc bảng thay vì giả định. Một tuyến đường cụ thể hơn hoặc một quy tắc chính sách có thể đẩy lưu lượng vào đường hầm trong khi tuyến mặc định vẫn trỏ tới giao diện vật lý, điều này có vẻ mâu thuẫn cho đến khi bạn đọc toàn bộ bảng. Sự kết hợp đó là bình thường với đường hầm chia tách và gây bối rối cho bất kỳ ai mong một dòng mô tả thiết kế. Hãy tìm tuyến đường khớp với đích thực của bạn, không phải tuyến khớp với sơ đồ.
Bộ phân giải đổi tay
DNS là thay đổi thứ ba và là thứ dễ được quản lý ở một nơi bạn không nhìn nhất. Trên máy tính để bàn, NetworkManager có thể đẩy cài đặt bộ phân giải theo từng kết nối. Trên hệ thống dùng systemd-resolved, cài đặt được áp dụng theo từng liên kết và /etc/resolv.conf có thể là một stub hoặc một liên kết tượng trưng chứ không phải tệp bạn nên sửa.
resolvectl status readlink -f /etc/resolv.conf cat /etc/resolv.conf
Nếu một chỉnh sửa thủ công tệp bộ phân giải biến mất sau khi kết nối lại, đó là dấu hiệu để tìm thành phần duy trì nó và thay vào đó đổi hồ sơ. Sửa tệp được tạo ra là một thay đổi mà việc kết nối lại sẽ xóa.
Tên riêng thường cần bộ phân giải nội bộ và các miền tìm kiếm mà nhà cung cấp đã cung cấp. Thay bằng một bộ phân giải công cộng có thể làm hỏng đúng tài nguyên mà VPN tồn tại để tiếp cận, và triệu chứng trông giống lỗi định tuyến chứ không phải lỗi DNS. Hãy kiểm tra tên và địa chỉ riêng rẽ, vì một cái hoạt động còn cái kia thất bại cho bạn biết chính xác nơi cần nhìn. Một so sánh đó tiết kiệm một giờ gỡ lỗi tuyến đường.
Một trình quản lý cho mỗi kết nối
Định dạng hồ sơ quyết định chương trình nào dùng được nó. Hồ sơ OpenVPN cần OpenVPN hoặc một phần bổ trợ tương thích, và cấu hình WireGuard có định dạng riêng với khóa đối tác và tiền tố được phép. Hộp thoại nhập không dịch cái này sang cái kia, bất kể phần mở rộng tệp gợi ý điều gì.
Chọn một trình quản lý và để nó sở hữu kết nối. Dựng cùng một đường hầm qua hai công cụ làm cho bảng tuyến đường và hành vi kết nối lại trở nên mơ hồ, và cái thứ hai khởi động thường thắng theo những cách khó tái tạo.
Cài các gói mà bản phân phối của bạn hỗ trợ và lấy hồ sơ từ nhà cung cấp. Hãy coi nó như thông tin đăng nhập, vì nó thường chứa khóa riêng hoặc vật liệu tương đương, và lưu nó ở nơi các bí mật khác của bạn sống. Một hồ sơ bỏ lại trong thư mục tải xuống là một chiếc chìa khóa bỏ lại trên bàn.
Cần kiểm tra gì khi nó đã lên nhưng không hoạt động
Khi giao diện đã lên và ứng dụng khách báo thành công, hãy làm việc hướng ra ngoài: bảng tuyến đường có chọn đường hầm cho đích không, bộ phân giải có trả lời cho tên riêng không, và phía xa có đường về không. Mỗi thứ có một lệnh riêng và một chủ sở hữu riêng.
nmcli connection show --active nmcli device status wg show
Tài liệu tham khảo nmcli ghi lại các lệnh trạng thái và kết nối nếu bạn cần trọn bộ. Điều quan trọng ở đây là sự phân biệt giữa một hồ sơ đang hoạt động và một thiết bị đang mang lưu lượng, vì hai thứ đó có thể không khớp nhau.
Kết nối lại một lần qua cùng trình quản lý trước khi bạn gọi thiết lập là xong, và kiểm tra rằng DNS vẫn hoạt động sau khi ngắt kết nối. Một cấu hình chỉ hoạt động đến lần thay đổi mạng đầu tiên thì chưa xong, nó chỉ đang hoạt động ngay lúc này.