Điều gì thực sự thay đổi khi bạn chuyển cấu hình VPN đã lưu trên macOS
Chuyển một VPN Mac đã lưu không phải là đổi hồ sơ. Xem điều gì thay đổi trong tuyến, DNS và thông tin đăng nhập, và cách kiểm tra đường hầm bạn thực sự nhận được.
Bạn mở danh sách VPN, chọn mục đã lưu khác và kỳ vọng một lần chuyển sạch sẽ: địa chỉ ra mới và mọi thứ khác không đổi. Đó là giả định cần bỏ trước tiên. Trên macOS, một VPN đã lưu là dịch vụ mạng đầy đủ chứ không phải cấu hình sẵn, nên đổi dịch vụ có thể thay đổi định tuyến, DNS và xác thực cùng lúc. Thanh menu cho biết dịch vụ nào đang hoạt động; nó không cho biết đường hầm bên dưới có đúng như bạn định hay không.
Danh sách đã lưu không phải công cụ chọn hồ sơ
Mỗi mục trong Cài đặt Hệ thống > Mạng là một dịch vụ riêng, với địa chỉ máy chủ, tài khoản, phương thức xác thực, máy chủ DNS và các tùy chọn như Gửi toàn bộ lưu lượng qua kết nối VPN. Các bản cũ giữ danh sách tương tự trong Tùy chọn Hệ thống. Hai mục có thể trỏ tới cùng tên máy chủ mà vẫn hành xử khác nhau, vì giao thức hoặc phần mở rộng của ứng dụng khách quyết định cách đường hầm được dựng.
Ứng dụng khách của bên thứ ba giữ danh sách riêng. Tunnelblick đọc cấu hình từ thư mục của nó, WireGuard giữ danh sách đường hầm riêng và OpenVPN Connect lưu hồ sơ trong ứng dụng. Một số đăng ký cấu hình với hệ thống; số khác giữ mọi thứ trong ứng dụng và không bao giờ xuất hiện trong danh sách tích hợp. Vì vậy «chuyển sang bản đã lưu» có nghĩa là các thao tác khác nhau tùy ứng dụng nào sở hữu hồ sơ.
scutil --nc list in ra các dịch vụ VPN đã đăng ký trong cấu hình hệ thống, kèm tên trong dấu ngoặc kép. Dùng chính các tên đó khi viết script chuyển đổi, và đừng cho rằng danh sách bao phủ mọi đường hầm của bên thứ ba.
Một lần chuyển thực sự thay đổi điều gì
Bốn thứ di chuyển cùng nhau khi dịch vụ đang hoạt động thay đổi. Tuyến mặc định đi theo đường hầm mới nếu dịch vụ đó gửi toàn bộ lưu lượng; danh sách bộ phân giải chuyển sang máy chủ DNS mà dịch vụ chỉ định; các kết nối mới lấy địa chỉ đường hầm mới làm nguồn; và thông tin đăng nhập đang dùng thuộc về dịch vụ mới. Cấu hình gốc và hồ sơ ứng dụng không thể hoán đổi cho nhau, kể cả khi cả hai kết thúc ở cùng một cổng.
| What you assume | What the system does |
|---|---|
| Same server name means same tunnel | Protocol, certificate and account are per service |
| All traffic follows the active VPN | Only when Send all traffic over VPN is on |
| DNS switches with the VPN | Only if that service defines DNS servers |
| Disconnect ends the connection | On Demand or a management profile can reconnect |
| Open sessions survive the switch | TCP sessions tied to the old address stall |
Phần DNS là thứ khiến người ta bất ngờ. macOS duy trì thứ tự bộ phân giải, và scutil --dns cho biết bộ phân giải nào đang được dùng trên giao diện nào. Một dịch vụ VPN không có máy chủ DNS được cấu hình có thể để bộ phân giải Wi-Fi trả lời, nên bạn nhận địa chỉ công cộng mới với hành vi DNS cũ và kết luận lần chuyển chỉ hiệu quả một nửa.
Vì sao cấu hình cũ quay lại
Nếu bạn ngắt kết nối và cùng dịch vụ đó kết nối lại một lát sau, hãy xem On Demand trước. Quy tắc kết nối theo yêu cầu có thể đưa dịch vụ trở lại khi ứng dụng phân giải một tên miền khớp, và hồ sơ quản lý có thể áp đặt cùng quy tắc đó. Xóa mục hiếm khi sửa được: cấu hình cài bằng hồ sơ thường trở lại ở lần làm mới hồ sơ tiếp theo, còn cấu hình thủ công có thể để lại mật khẩu trong Keychain trong khi dịch vụ đã biến mất.
Khởi động dịch vụ thứ hai không phải lúc nào cũng dừng dịch vụ thứ nhất. Tùy ứng dụng khách và giao thức, bạn có thể còn lại hai đường hầm và hai bộ tuyến, và thứ tự dịch vụ cùng mức độ cụ thể của tuyến quyết định cái nào chở lưu lượng, không phải biểu tượng bạn bấm cuối cùng. Kiểm tra các giao diện trước khi cho rằng đã có chuyển đổi.
Kiểm tra đường hầm, không phải dấu kiểm
Đi qua góc nhìn của chính hệ thống trước khi chạm vào cài đặt.scutil --nc status "Name" báo cáo điều hệ thống tin;ifconfig cho biết giao diện utun có địa chỉ hay không;netstat -rn -f inet cho biết tuyến mặc định trỏ đi đâu;scutil --dns cho biết bộ phân giải thực sự đang dùng. Sau đó mở kết nối mới và xác nhận địa chỉ ra, vì một trang đã đăng nhập có thể vẫn dùng socket gắn với đường hầm cũ.
Nếu DNS vẫn trả lời từ mạng cục bộ, so sánh các máy chủ đã cấu hình của dịch vụ với danh sách bộ phân giải. Nếu tuyến mặc định vẫn trỏ vào giao diện vật lý, dịch vụ đang ở chế độ đường hầm chia tách hoặc chưa kết nối đầy đủ. Cả hai đều là kết quả cấu hình, không phải bằng chứng ứng dụng khách hỏng.
Một thứ tự chuyển đổi tránh bất ngờ
- Ghi lại dịch vụ hiện tại và việc có hồ sơ nào quản lý nó không.
- Ngắt kết nối nó trước khi hai đường hầm không thể cùng tồn tại.
- Kết nối mục tiêu và chờ Đã kết nối, không phải Đang kết nối.
- Kiểm tra tuyến mặc định, danh sách bộ phân giải và địa chỉ ra mới.
- Khởi động lại các ứng dụng giữ phiên dài.
Giữ mục cũ cho đến khi mục mới vượt qua các kiểm tra đó, và đặt cho mỗi mục một tên riêng; nhãn giống nhau khiến sự cố tiếp theo khó quy trách nhiệm hơn. Trợ giúp Mac của Apple mô tả phía gốc tại Thiết lập kết nối VPN trên Mac, là tài liệu tham chiếu cần xem trước khi sửa cấu hình được quản lý.
Nếu lựa chọn quay lại, trước tiên hãy coi đó là chính sách hoặc On Demand. Xác nhận ai sở hữu cấu hình và nó có được đặt tự động kết nối không, sau đó quyết định bạn đang đổi dịch vụ hay đang đấu với một hồ sơ.