Vì sao VPN trên Mac của bạn rớt khi cắm iPhone qua USB
Một iPhone kết nối qua USB có thể thêm một tuyến hotspot hoặc một liên kết thiết bị Xcode. Kiểm tra dịch vụ, tuyến và lỗi của ứng dụng khách trước khi xóa bất cứ thứ gì.
Bạn cắm iPhone vào để sạc, và một phút sau VPN trên Mac ngừng truyền lưu lượng. Cài đặt Hệ thống hiện một dịch vụ mới tên là iPhone USB, và bước hiển nhiên là xóa nó đi. Bước đó thường sai. Dịch vụ có thể là Điểm truy cập Cá nhân của điện thoại, hoặc có thể là một liên kết mà Xcode và các công cụ thiết bị dùng để nói chuyện với điện thoại, và hai thứ hành xử khác nhau đủ để việc nhận diện phải đến trước khi xóa.
Bước 1: Đọc dịch vụ mà điện thoại thực sự đã tạo
Mở Cài đặt Hệ thống, rồi Mạng, và so sánh danh sách dịch vụ khi điện thoại ngắt kết nối và khi kết nối. Trên macOS hiện tại dịch vụ được liệt kê là iPhone USB. Ghi nhận nó có đang hoạt động không, nằm ở đâu trong thứ tự dịch vụ, và Mac có dùng nó cho tuyến mặc định không. Thứ tự dịch vụ quan trọng vì macOS chọn dịch vụ đang hoạt động cao nhất có thể tới đích, không phải dịch vụ bạn nhận ra tên.
Hướng dẫn của Apple về Điểm truy cập Cá nhân mô tả cơ chế: khi Điểm truy cập Cá nhân đang bật trên điện thoại, cắm nó qua USB có thể khiến Mac dùng kết nối di động của điện thoại, ngay cả khi bạn chỉ muốn sạc. Đây không phải lỗi của ứng dụng khách VPN; bảng định tuyến đang đi theo một dịch vụ được bật lên trước Wi-Fi.
Nếu dịch vụ tồn tại nhưng vẫn không hoạt động khi điện thoại được cắm, rất có thể bạn đang thấy kết nối chỉ để sạc hoặc một liên kết thiết bị, không phải hotspot. Giữ sự phân biệt đó, vì hai bước tiếp theo kiểm tra nó thay vì đoán từ biểu tượng.
Bước 2: Kiểm tra tuyến mà điểm cuối VPN sử dụng
Đọc tuyến tới địa chỉ đã phân giải của máy chủ VPN, không phải tới một trang web. route -n get chỉ để đọc và in ra giao diện cùng cổng mà nhân sẽ dùng, và cả hai dòng đều quan trọng.
scutil --dns | head -20
route -n get 203.0.113.10Địa chỉ ở trên là chỗ trống cho tài liệu. Thay bằng điểm cuối mà ứng dụng khách của bạn hiển thị, và dùng route -n get -inet6 cho điểm cuối IPv6. So sánh đầu ra khi điện thoại ngắt và khi kết nối, và không thêm hay bớt tuyến giữa hai lần đọc. Nếu giao diện đổi từ en0 sang giao diện iPhone USB, tuyến hotspot đã thắng tra cứu và kết nối bên ngoài của VPN giờ đi trên mạng di động.
Thay đổi tuyến không giải thích mọi lỗi. Ứng dụng khách vẫn có thể tới máy chủ và hỏng sau đó ở lưu lượng bên trong đường hầm, vì đường mới có MTU khác hoặc nhà mạng chặn giao thức. Đọc lỗi của chính ứng dụng khách trước khi đổi bất cứ thứ gì: hết thời gian bắt tay bên ngoài chỉ vào khả năng tiếp cận, còn đường hầm đã lập mà ngừng truyền lưu lượng chỉ vào MTU, DNS hoặc chính sách.
Bước 3: Tách hotspot khỏi liên kết giao tiếp thiết bị
Xcode 15 và mới hơn nói chuyện với thiết bị cắm USB qua một kênh dựa trên mạng có IPv6 liên kết cục bộ, nên một Mac phát triển có thể hiện thêm giao diện không liên quan gì đến truy cập internet. Bản ghi kỹ thuật TN3158 của Apple ghi lại hành vi đó và cảnh báo rằng VPN hoặc lọc bảo mật có thể can thiệp. Đây là mặt ngược của vấn đề hotspot: VPN không hỏng vì điện thoại cung cấp internet; kết nối thiết bị hỏng vì VPN bắt lấy nó.
Hai quan sát tách các trường hợp mà không cần bắt gói. Thứ nhất, kiểm tra xem giao diện có địa chỉ định tuyến được và tuyến mặc định, hay chỉ có địa chỉ fe80:: liên kết cục bộ; chỉ liên kết cục bộ nghĩa là không có đường internet. Thứ hai, đóng VPN và xem Xcode có tới được thiết bị lần nữa không. Nếu được, các tuyến hoặc bộ lọc nội dung của VPN đang bắt lưu lượng liên kết cục bộ, và cách sửa nằm ở cấu hình đường hầm tách hoặc bộ lọc, không phải bảng Mạng.
ifconfig | grep -A4 -E '^en[0-9]+:'
netstat -rn -f inet6 | headĐừng đánh giá chỉ theo tên giao diện. macOS tạo và hủy các giao diện này khi thiết bị được cắm, và số en được cấp lúc chạy, nên cùng một Mac có thể hiện số khác sau khi khởi động lại hoặc đổi cáp.
Bước 4: Tái tạo lỗi với một biến mỗi lần
Khi biết dịch vụ nào liên quan, tái tạo vấn đề theo một thứ tự cố định. Bắt đầu với điện thoại ngắt kết nối và VPN đang kết nối. Cắm điện thoại khi Điểm truy cập Cá nhân tắt, chờ danh sách Mạng ổn định, và chạy lại truy vấn tuyến. Ngắt, bật Điểm truy cập Cá nhân, cắm lại và lặp lại. Ghi lại giao diện, cổng và lỗi của ứng dụng khách cho từng trạng thái trong ba trạng thái, và bạn có sự so sánh thay vì ký ức.
Nếu VPN chỉ hỏng ở trạng thái hotspot, giữ điện thoại ra khỏi đường đó: tắt Điểm truy cập Cá nhân khi sạc, hoặc chuyển dịch vụ iPhone USB xuống dưới Wi-Fi trong thứ tự dịch vụ. Nếu nó hỏng ở mọi trạng thái kết nối, kể cả khi hotspot tắt, xem ứng dụng khách xử lý chuyển mạng thế nào. Một số ứng dụng khách phá đường hầm khi dịch vụ chính đổi và cần kết nối lại; đó là hành vi của ứng dụng khách, không phải lỗi điện thoại.
Đổi một thứ mỗi lần thử. Xóa dịch vụ, đặt lại cấu hình VPN và cài lại ứng dụng khách trong cùng một phút để lại bạn với một Mac hoạt động và không biết hành động nào đã sửa nó.
Bước 5: Quyết định giữ gì và kiểm tra gì
Hãy để liên kết thiết bị yên. Gỡ một giao diện mà Xcode dùng không sửa được tuyến VPN, và nó phá triển khai lên thiết bị cho tới lần cắm sau. Nếu dịch vụ hotspot thực sự không mong muốn, trước tiên hãy tắt Điểm truy cập Cá nhân trên điện thoại; đó là điều khiển đã được ghi tài liệu và nó sống sót qua khởi động lại.
Nếu bạn vẫn gỡ một dịch vụ, gỡ cái bạn đã nhận diện và sau đó kiểm tra hai điều: tuyến tới điểm cuối VPN đã trở lại giao diện mong đợi, và đường hầm truyền lưu lượng tới một địa chỉ nội bộ, không chỉ tới internet. Ghi lại thứ tự dịch vụ và phiên bản ứng dụng khách, vì bản cập nhật macOS có thể thay đổi cách điện thoại hiện ra.
Rồi phân loại lỗi mà bạn thực sự thấy. Hết thời gian bắt tay, MTU đứng sau khi đường hầm lên, và các câu trả lời DNS đến từ nhà mạng là ba vấn đề khác nhau với ba cách sửa khác nhau. Dịch vụ USB là tác nhân kích hoạt trong cả ba; nó hiếm khi là nguyên nhân.