Ubuntu 24.04 đã lặng lẽ thay daemon đứng sau plugin L2TP của NetworkManager. Đường cũ dùng xl2tpd; gói mới mang đến một bản triển khai bằng Go tạo ra daemon tên kl2tpd. Plugin khởi động bản nào đã cài, nên bản nâng cấp có thể thay daemon mà không đụng đến hồ sơ hay thông tin đăng nhập của bạn. Đó là toàn bộ lỗi: một thông điệp điều khiển mà daemon mới không nhận ra.

Plugin điều phối IPsec, L2TP và PPP, rồi trao giao diện tạo thành cho NetworkManager. Nó không tự triển khai L2TP.

Plugin là bộ điều phối, không phải daemon

network-manager-l2tp chạy trình trợ giúp IPsec, một daemon L2TP và PPP, rồi nối giao diện vào phần quản lý kết nối của màn hình nền. Nhiều năm qua daemon là xl2tpd, và mọi hướng dẫn nhắc đến cấu hình của nó đều thừa hưởng giả định đó. Về sau gói Debian chấp nhận một trong hai bản triển khai, và 24.04 cài bản Go, thứ cung cấp kl2tpd. Không trường nào trong hồ sơ ghi lại daemon nào đã chạy trước đó, nên việc thay thế vẫn vô hình cho đến khi một thông điệp bị từ chối.

Máy có cả hai gói vẫn có thể không chạy bản bạn mong đợi. Việc chọn là quyết định của plugin, không phải của hướng dẫn bạn đã theo.

Đọc giai đoạn trước khi chọn cách sửa

journalctl -b --no-hostname _COMM=nm-l2tp-service _COMM=kl2tpd _COMM=xl2tpd _COMM=pppd _COMM=charon _COMM=pluto

Đối chiếu một lần thử trên các trình trợ giúp thay vì tin thông báo của màn hình nền. Truy vấn đó cho thấy chuỗi dừng ở đâu, và dpkg -l cho thấy bản triển khai nào đã cài. Lỗi xuất hiện sau khi peer IPsec được lập và có nhắc đến thông điệp điều khiển hoặc thuộc tính lạ chỉ về daemon. Lỗi trước khi đường hầm tồn tại nghĩa là daemon chưa từng được chạm tới.

Khóa chia sẻ trước không khớp sẽ kết thúc ở giai đoạn IPsec và nêu tên peer. Sự cố thông tin đăng nhập PPP xuất hiện khi đường hầm đã dựng và thường mang một từ chối CHAP hoặc MS-CHAP đọc được. Cả hai đều thấy trong cùng truy vấn, và chúng là hai vấn đề khác nhau.

Hai đường, và chúng không trộn lẫn

sudo apt install xl2tpd
sudo apt purge go-l2tp

Cặp lệnh đó đặt xl2tpd rồi gỡ daemon Go, để plugin chọn bản triển khai mà cổng nói phương ngữ của nó. Thứ tự quan trọng: plugin phụ thuộc vào bản này hoặc bản kia, nên gỡ gói Go trước sẽ kéo plugin xuống theo. Đường thứ hai giữ daemon Go và chuyển sang bản dựng mới hơn hiểu thông điệp, thường có nghĩa là PPA của người bảo trì thay vì bản trong kho. Trong một đội máy được quản lý, ghim PPA dễ biện minh hơn là dạy người dùng gỡ gói.

Đừng kết hợp cả hai trong một thay đổi. Khi đó lỗi về sau sẽ khiến bạn không thể nói nửa nào đã giúp, và một bản nâng cấp tương lai có thể khôi phục gói bạn vừa gỡ.

Ghi vào phiếu tập tin nhị phân của daemon, phiên bản và thông điệp chính xác. Không ai có thể tái tạo một báo cáo chỉ nói rằng L2TP hỏng sau bản phát hành, trong khi một thuộc tính có tên cùng phiên bản gói cho họ điểm khởi đầu.

Ba thứ mà nó không phải

Đây không phải vấn đề hồ sơ, vì cùng hồ sơ đó chạy được trên 22.04 với cùng cổng. Đây không phải tuyến bị thiếu hay thay đổi tường lửa, vì những thứ đó thất bại ở nơi khác với bằng chứng khác. Cài lại plugin cũng không sửa được, vì cùng daemon lại được chọn. Mô tả hữu ích nêu tên daemon và thông điệp nó đã từ chối.

Sửa ở phía cổng là kết cục hợp lệ còn lại. Phần sụn ngừng gửi thuộc tính sống sót qua mọi bản nâng cấp máy khách, trong khi ghim một gói chỉ sống sót qua bản phát hành tiếp theo của bản phân phối nếu ai đó nhớ vì sao nó bị ghim.

So sánh hai đường theo chi phí bảo trì thay vì tốc độ. Cả hai đều có thể chạy; chỉ một đường loại bỏ sự lệch phương ngữ.

Bài viết liên quan