Tắt tự động kết nối VPN mà không xóa hồ sơ
NetworkManager không tự động kết nối các hồ sơ VPN. Nguyên nhân là một mục secondaries trên kết nối cơ sở, và đó là thứ cần thay đổi.
Mỗi lần khởi động, đường hầm hiện lên trước khi ai đó quyết định dùng nó, và hộp kiểm trông có vẻ chịu trách nhiệm không làm gì khi bị bỏ chọn. Đây không phải lỗi của giao diện. NetworkManager không tự động kết nối các hồ sơ VPN; một VPN khởi động vì một kết nối cơ sở gọi tên nó. Cách sửa nằm ở hồ sơ kia, và nó chỉ là một thuộc tính.
Cờ bạn đang bỏ chọn không được xem xét
Hồ sơ VPN có thuộc tính tự động kết nối riêng, và với các kết nối VPN, trình quản lý không dùng nó để khởi động bất cứ thứ gì. Bỏ chọn nó làm hồ sơ được đọc nhất quán và không thay đổi hành vi nào, và chính vì thế sự bất ngờ vẫn còn sau khi sửa.
Cơ chế được ghi nhận là một danh sách các kết nối thứ cấp trên hồ sơ cơ sở. Khi kết nối Wi-Fi hoặc Ethernet được kích hoạt, trình quản lý cũng kích hoạt các UUID VPN được liệt kê ở đó. Hiện nay danh sách đó chỉ hỗ trợ kết nối VPN, và nếu nó có nhiều mục thì một lần sửa ảnh hưởng đến tất cả.
Độ ưu tiên tự động kết nối xếp hạng các ứng viên; nó cũng không phải công tắc tắt.
Đọc cả hai hồ sơ trước khi sửa
Trước hết hãy ghi lại tên, UUID và loại, vì tên hiển thị hay trùng lặp và dễ nhầm kết nối cơ sở với VPN. Sau đó đọc các thuộc tính quan trọng ở mỗi bên.
nmcli -f NAME,UUID,TYPE connection show
nmcli -f connection.secondaries connection show "Wired connection 1"
nmcli -f connection.autoconnect,connection.autoconnect-priority connection show "Work VPN"
Trong trình biên tập đồ họa, các giá trị giống nhau hiện dưới nhãn khác nhau. Tab General của kết nối cơ sở chứa thiết lập kết nối tự động và, khi đã cài plugin, tùy chọn dựng VPN cùng với nó. Một màn hình đã dịch có thể gọi trường ưu tiên là kết nối tự động có ưu tiên, mà đó không phải công tắc bật. Nhầm lẫn hai thứ này tạo ra hộp kiểm đã bỏ chọn và lần khởi động không đổi.
Xóa một mục, không phải toàn bộ danh sách
Thuộc tính là một danh sách, nên gán giá trị mới sẽ thay thế mọi thứ trong đó. Dùng dấu trừ ở đầu để xóa một UUID và giữ nguyên phần còn lại của danh sách.
nmcli connection modify uuid BASE_UUID -connection.secondaries VPN_UUID
nmcli -f connection.secondaries connection show "Wired connection 1"
Kiểm tra danh sách trước và sau, đặc biệt trên máy phụ thuộc vào một VPN thứ hai.
Hồ sơ có thể bị giới hạn cho những người dùng nhất định. Khi đó, tài khoản bạn sửa phải xuất hiện trong danh sách ấy; nếu không, lệnh có thể bị từ chối, hoặc trình quản lý ghi một hồ sơ riêng cho từng người dùng mà chủ sở hữu ban đầu không bao giờ thấy. Hãy kiểm tra chủ sở hữu trước khi kết luận rằng việc sửa không làm gì, vì một bản sao thầm lặng cho từng người dùng giải thích nhiều kết quả khó hiểu.
Thử một chuyển đổi thật, không phải khởi động lại thủ công
Kết nối lại hồ sơ cơ sở là phép thử có ý nghĩa. Hạ nó xuống rồi nâng lên, hoặc khởi động lại, sau đó xem danh sách đang hoạt động, danh sách giao diện và tra cứu tuyến đến một địa chỉ nội bộ.
nmcli connection show --active
ip -brief address
ip route get 10.8.0.1
Nếu đường hầm vẫn xuất hiện, chủ sở hữu còn lại thường là một script. Nhật ký của trình quản lý cho biết hồ sơ nào được kích hoạt và khi nào, còn thư mục dispatcher là nơi một hook gọi nmcli connection up khi có sự kiện giao diện sẽ sống. Hook không hiện trong trình biên tập hồ sơ, vì thế nó sống sót qua mọi thí nghiệm với hộp kiểm.
Giữ đường thủ công hoạt động, vì đó mới là yêu cầu thật.
Kết quả tốt trông như thế nào
Hồ sơ vẫn được cài đặt cùng cổng, chứng chỉ và thông tin đăng nhập của nó. Nó không kích hoạt khi khởi động và sẽ hiện lên khi bạn yêu cầu. Ba câu đó là bài kiểm tra chấp nhận.
Ghi UUID của kết nối cơ sở vào runbook, vì đó là hồ sơ bạn sẽ sửa lần sau.
Một VPN có sẵn nhưng không tự động là lựa chọn cấu hình chứ không phải tính năng còn thiếu, và nó chỉ cách một thuộc tính.