Xóa VPN trên macOS trông như một thao tác nhưng thực ra là ít nhất bốn. Nút trong Cài đặt Hệ thống xóa một dịch vụ mạng khỏi kho cấu hình của hệ thống. Nó không xóa ứng dụng khách, tiện ích mở rộng mạng mà ứng dụng đó đã cài, thông tin xác thực nằm trong keychain của bạn, hay hồ sơ do quản lý thiết bị đẩy xuống. Biết vật thể nào sở hữu triệu chứng nào chính là điều ngăn một VPN đã xóa âm thầm quay lại.

Nút Xóa cấu hình thực sự xóa những gì

Mỗi VPN bạn thêm vào trở thành một dịch vụ mạng, cùng loại đối tượng như Wi-Fi hay Thunderbolt Bridge. macOS giữ tất cả ở đây: /Library/Preferences/SystemConfiguration/preferences.plist, mỗi cái có ID dịch vụ, tên hiển thị và từ điển cấu hình mô tả loại đường hầm, địa chỉ máy chủ và cách đường hầm khởi động.

Khi bạn mở Cài đặt Hệ thống và VPN, nhấn nút thông tin bên cạnh một dịch vụ, chọn Xóa cấu hình và xác nhận, macOS dừng đường hầm, xóa đối tượng dịch vụ đó và ghi lại kho. Việc tháo gỡ hoàn tất cho những gì hệ thống sở hữu: dịch vụ đã biến khỏi danh sách và không gì khởi động nó khi đăng nhập.

Điều nút không thể chạm tới là mọi thứ thuộc về một hệ con khác. Gói ứng dụng nằm ở đây: /Applications. Ứng dụng khách NetworkExtension chạy như một tiện ích mở rộng hệ thống được đăng ký tách biệt khỏi cấu hình của nó. Thông tin xác thực là các mục keychain với quyền truy cập của keychain lưu giữ chúng. Hồ sơ cấu hình thuộc hệ thống hồ sơ. Xóa dịch vụ và cả bốn vẫn ở đúng chỗ cũ.

Liệt kê những gì Mac vẫn cho là đã cài

Hãy kiểm kê trước khi xóa bất cứ thứ gì. Ba lệnh bao quát ba tầng tạo ra cùng một sự cố nhìn thấy được:

scutil --nc list
networksetup -listallnetworkservices
profiles -P

scutil --nc list là chế độ xem có thẩm quyền của các cấu hình VPN, với trạng thái kết nối, tên dịch vụ và ID dịch vụ. Nó thường hiển thị các mục không bao giờ xuất hiện trong danh sách cài đặt: dịch vụ còn sót từ một ứng dụng khách bạn đã gỡ vài tháng trước, và các cấu hình theo yêu cầu khởi động âm thầm. networksetup -listallnetworkservices hiển thị các dịch vụ mạng bằng tên mà công cụ dòng lệnh mong đợi, và đó là thứ bạn cần để xóa theo tên. profiles -P liệt kê hồ sơ cấu hình đã cài; trên một Mac được quản lý, VPN có thể không phải dịch vụ bạn tự thêm mà là tải trọng bên trong một trong những hồ sơ đó.

Hãy đọc các danh sách cùng nhau thay vì tin danh sách đầu tiên. scutil nhưng không có trong cài đặt thường có nghĩa là một ứng dụng khách bên thứ ba sở hữu đường hầm và hiển thị nó trong cửa sổ riêng. Một dịch vụ có trong cả hai chế độ xem nhưng bị làm xám trong cài đặt nghĩa là chính sách. Một tên xuất hiện lại sau khi xóa nghĩa là có gì đó tạo lại nó, và cái gì đó ấy là mục tiêu thật.

Xóa dịch vụ thông qua chủ sở hữu của nó

Với dịch vụ bạn tự thêm, hãy ở trên con đường được ghi trong tài liệu: Cài đặt Hệ thống, VPN, nút thông tin, Xóa cấu hình. Apple ghi lại con đường đó, và nó giữ kho cấu hình nhất quán. Sửa bằng tay preferences.plist trong khi ngăn xếp mạng đang chạy chính là cách bạn có được các dịch vụ trùng lặp hoặc zombie mà không giao diện nào xóa được.

Từ terminal, xóa dịch vụ theo tên bằng networksetup -removenetworkservice "Service Name", sau đó xác nhận bằng scutil --nc list. Lệnh tác động lên cùng danh sách dịch vụ như giao diện, nên một tên không xuất hiện trong networksetup -listallnetworkservices sẽ không bị xóa theo con đường nào. Khi một ứng dụng khách sở hữu đường hầm, hãy dùng con đường xóa hoặc gỡ cài đặt của ứng dụng đó trước, vì ứng dụng sẽ dựng lại dịch vụ ở lần khởi chạy kế tiếp.

Nếu VPN đến từ quản lý thiết bị, bạn không phải chủ sở hữu. Hồ sơ do MDM cài có thể bị đánh dấu là không thể xóa, và ngay cả hồ sơ có thể xóa cũng có thể bị đẩy xuống lại ở lần kiểm tra kế tiếp. Xác nhận bằng profiles -P, sau đó dùng quy trình rời tổ chức của bạn. Xóa tải trọng cục bộ hoặc thất bại hoặc gây ra cài đặt lại.

Những phần còn lại kết nối lại mà không cần dịch vụ

Báo cáo «nó quay lại rồi» thông thường không phải dịch vụ quay lại mà là tiện ích mở rộng sở hữu nó. Liệt kê các tiện ích mở rộng hệ thống đã đăng ký và tiện ích mở rộng ứng dụng loại tiện ích mở rộng mạng:

systemextensionsctl list
pluginkit -m -p com.apple.networkextension.packet-tunnel

Ứng dụng khách NetworkExtension giữ nhà cung cấp đường hầm của nó được cài dưới định danh riêng, tách khỏi mọi cấu hình. Tiện ích mở rộng có thể vẫn hoạt động sau khi cấu hình biến mất, và tác nhân thanh menu của ứng dụng khách có thể tạo cấu hình mới ở lần khởi động kế tiếp, đôi khi dùng lại đúng cái tên bạn vừa xóa. Hãy kiểm tra các mục đăng nhập và trình trợ giúp của nhà cung cấp ở đây: /Library/LaunchDaemons trước khi kết luận rằng việc xóa đã thất bại.

Thông tin xác thực là phần còn lại thứ hai. Mật khẩu hoặc chứng chỉ ứng dụng khách được lưu trong keychain đăng nhập không bị xóa cùng dịch vụ, và bí mật chia sẻ IPSec từ trước đến nay sống trong keychain Hệ thống, đó là lý do việc xóa rồi thêm lại đôi khi bỏ qua lời nhắc mật khẩu. Nếu chiếc Mac đang rời khỏi tầm kiểm soát của bạn, hãy tìm mục theo tên dịch vụ trong Keychain Access và thu hồi tài khoản, chứng chỉ hoặc khóa ngang hàng mà thông tin đã lưu đại diện. A copied configuration file is a live credential even after local removal.

Xác minh việc xóa, và đọc đúng một hồ sơ quay lại

Việc xóa hoàn tất khi dịch vụ biến khỏi cả hai chế độ xem và vẫn biến mất sau khi khởi động lại. Hãy kiểm tra scutil --nc list để lấy ID dịch vụ, xác nhận rằng việc phân giải tên dùng đúng bộ phân giải bạn mong đợi với scutil --dns, sau đó khởi động lại một lần, vì các quy tắc theo yêu cầu và tác nhân đăng nhập là hai thứ chỉ tự lộ ra khi khởi động sạch.

Nếu nó vẫn còn đó, đừng xóa thêm đối tượng. Hãy tìm ra tầng nào đã tạo lại nó: một hồ sơ MDM đẩy lại dịch vụ, một tác nhân ứng dụng khách dựng lại nó, hoặc dịch vụ chưa bao giờ bị xóa vì tên không khớp. Câu trả lời đó quyết định bạn cần trình gỡ cài đặt của nhà cung cấp, đội IT của bạn hay thêm một vòng qua đúng hộp thoại xóa đó. Hướng dẫn xóa của Apple bao quát con đường được hỗ trợ cho những dịch vụ bạn đã thêm; phần còn lại là phần bạn phải tự kiểm tra: remove a VPN configuration.

Bài viết liên quan