Gỡ cài đặt ứng dụng VPN, khởi động lại rồi phát hiện trình duyệt không tải được gì là một trình tự phổ biến trên Ubuntu. Đường hầm đã biến mất, nhưng chính sách đã hướng lưu lượng vào nó thì không, và trên Ubuntu những phần sót lại này thường sống trong NetworkManager chứ không phải trong gói. Một hồ sơ kết nối và giao diện giả được tạo lúc chạy không thuộc gói nào, nên gỡ gói không gỡ chúng.

Đường hầm đã mất, chính sách thì không

Một kill switch hoạt động bằng cách làm mạng không dùng được khi không có đường hầm. Khi ứng dụng bị gỡ trong lúc trạng thái đó đang hoạt động, không còn gì để tắt nó. Kết quả trông y hệt một card mạng hỏng và thường là một hồ sơ đang giữ tuyến.

Đó là lý do cài lại đôi khi khôi phục kết nối: nó tạo lại tiến trình biết cách thu hồi chính sách của chính nó. Một ứng dụng bị gỡ khi công tắc của nó đang hoạt động đã để lại trạng thái không còn ai dọn.

Đọc những đối tượng mà gói chưa từng sở hữu

Đọc trạng thái trước khi thay đổi. Liệt kê thiết bị, kết nối đang hoạt động và cả hai bảng định tuyến, rồi tìm một thiết bị giả tự báo là đã kết nối hoặc một tuyến mặc định trỏ tới nó. IPv4 và IPv6 hỏng riêng rẽ, nên một ping chạy được tới địa chỉ có phân giải tên hỏng chỉ ra một đối tượng khác với tuyến chết. Một thiết bị giả giữ tuyến mặc định tự giải thích toàn bộ sự cố.

nmcli device status
nmcli connection show --active
ip -4 route
ip -6 route

Ghi lại những gì bạn tìm thấy, vì cách sửa là xóa một đối tượng cụ thể chứ không phải đặt lại mọi thứ. Bất cứ điều gì rộng hơn đều có nguy cơ gây sự cố thứ hai. Đó là khác biệt giữa sửa chữa và phỏng đoán.

Một bảng định tuyến trống với thiết bị đã kết nối là lỗi khác, và nó chỉ vào DHCP chứ không phải hồ sơ còn sót. Đọc hợp đồng thuê trước khi sửa bất cứ điều gì.

Xóa hồ sơ, không xóa tệp khóa

Xóa hồ sơ qua NetworkManager thay vì gỡ tệp khóa. Xóa tệp để hồ sơ trong bộ nhớ vẫn hoạt động đến lần khởi động lại tiếp theo, khiến một sửa chữa đúng trông không đáng tin. Sau đó khởi động lại dịch vụ và đọc lại danh sách thiết bị. Chính việc khởi động lại làm cho việc xóa trở thành thật.

sudo nmcli connection delete pvpn-killswitch
sudo systemctl restart NetworkManager

Nếu một liên kết giả còn sống, hãy gỡ cả liên kết đó, rồi kiểm tra riêng địa chỉ và tên. Định tuyến sạch với tên thất bại chỉ vào DNS, trong khi địa chỉ thất bại chỉ vào tuyến hoặc tường lửa.

Kiểm tra móc lúc khởi động trước khi nó lặp lại

Một số phần sót lại tự cài lại mỗi lần khởi động. Một unit viết tay hoặc script if-up thêm quy tắc tường lửa tiếp tục làm vậy sau khi gói đã biến mất, nên sự cố quay lại và lần sửa trước trông như may mắn. Tìm trong các tệp unit và móc mạng trước khi khởi động lại. Tên unit thường là manh mối.

systemctl list-unit-files | grep -i vpn
grep -rl -i vpn /etc/systemd/system /etc/network/if-up.d

Gỡ hoặc che tệp cụ thể, rồi khởi động lại một lần và xác nhận trạng thái không có đường hầm là điều bạn muốn. Lần khởi động lại cuối đó là phép thử, vì một bản sửa chỉ trụ được đến lần khởi động sau không phải là sửa. Sau đó giữ ghi chú cùng máy. Tài liệu tham chiếu nmcli bao gồm các lệnh thiết bị và kết nối được dùng ở trên.

Bài viết liên quan