Cách gắn qBittorrent vào một giao diện VPN trên macOS
Đặt Network Interface trong Advanced của qBittorrent trên macOS, ánh xạ tên utun với đường hầm đang hoạt động, khởi động lại ứng dụng khách và chứng minh liên kết bằng một lần truyền.
Tôi mở qBittorrent trên một chiếc Mac mini, đặt Network Interface thành utun4, khởi động lại và sau đó dành cả buổi chiều nhìn một torrent đứng yên ở bước lấy siêu dữ liệu trong khi VPN vẫn hiển thị kết nối khỏe mạnh. Cấu hình không sai về nguyên tắc; cái tên đã cũ. macOS cấp số utun khi các dịch vụ khởi động, nên utun4 từng đúng vào tuần trước đang trỏ tới một đường hầm không còn tồn tại, và ứng dụng khách đang gắn ổ cắm của nó vào một thiết bị không có tuyến. Trình tự dưới đây là cách tôi dùng hiện nay: đọc giao diện từ đường hầm đang chạy, chọn nó trong ứng dụng, khởi động lại phiên và sau đó chứng minh liên kết bằng một lần truyền và một lần ngắt kết nối có chủ đích.
Mở Advanced và tìm trường giao diện
Trong cửa sổ qBittorrent, mở Preferences bằng Cmd+, và vào trang Advanced. Network Interface là trường quan trọng: nó liệt kê tên giao diện của hệ thống và mặc định là Any Interface, nghĩa là hệ điều hành chọn tuyến cho mỗi ổ cắm mà ứng dụng mở. tài liệu tham chiếu tùy chọn của dự án mô tả trường này và giá trị mặc định đó, và đây là cùng một cấu hình trên mọi nền tảng dù tên bên trong không giống nhau.
Hai chi tiết khiến người ta vấp ở đây. Danh sách hiển thị tên thiết bị như en0, en1 và utun0 đến utun9, không bao giờ hiển thị tên sản phẩm của nhà cung cấp VPN, nên bạn cần sự ánh xạ trước khi chọn được điều gì hợp lý. Và lựa chọn chỉ được áp dụng khi phiên BitTorrent bắt đầu, không phải lúc bạn nhấn OK, nên một thay đổi trông như đã lưu vẫn có thể đang chạy trên liên kết cũ.
Thoát ứng dụng đúng cách bằng Cmd+Q và xác nhận tiến trình đã biến mất trước khi mở lại. Đóng cửa sổ chỉ ẩn nó đi, và một ứng dụng bị ẩn vẫn giữ phiên, cổng lắng nghe và giao diện cũ.
pgrep -fl qbittorrentTìm giao diện mà VPN của bạn thực sự sở hữu
Trước tiên hãy kết nối VPN qua ứng dụng của chính nhà cung cấp, rồi đọc góc nhìn của hệ thống thay vì menu của ứng dụng. Các lệnh dưới đây liệt kê từng giao diện cùng địa chỉ của nó, cho biết hệ thống coi những cái nào là hoạt động và in bảng định tuyến; bạn đang tìm thiết bị utun mang dải riêng mà nhà cung cấp cấp cho bạn.
ifconfig -a | grep -A4 '^utun'
scutil --nwi
netstat -rn -f inet | head -n 5Ba lần đọc cho bạn biết thiết bị nào là đường hầm. Mục utun cần một địa chỉ inet thuộc nhóm địa chỉ của VPN. scutil --nwi cho biết hệ thống coi những giao diện nào là hoạt động và cái nào là chính. netstat -rn cho biết tuyến mặc định trỏ đi đâu, và nếu tuyến đó vẫn trỏ tới en0 trong khi một utun có địa chỉ, đường hầm không mang toàn bộ lưu lượng, điều này thay đổi việc liên kết sẽ làm về sau.
Khi hai đường hầm có thể cùng tồn tại, ví dụ một hồ sơ công việc và một hồ sơ cá nhân, cả hai thiết bị utun đều có mặt và chỉ một cái là hữu ích. Bộ đếm byte quyết định câu hỏi: ghi lại các bộ đếm, tải một trang hoặc bắt đầu một lần truyền nhỏ rồi xem cái nào đã di chuyển.
netstat -ib | grep utunĐừng coi con số là ổn định. Việc kết nối lại có thể gán cho cùng đường hầm một tên utun khác, và một dịch vụ iCloud hoặc Continuity có thể giữ utun0 từ lâu trước khi VPN của bạn kết nối.
Điều chỉnh liên kết theo phạm vi của đường hầm
Trường này gắn một thiết bị, và đó là tất cả những gì nó làm. Nếu VPN là đường hầm đầy đủ định tuyến 0.0.0.0/0 vào utun, việc gắn vào thiết bị đó sẽ gửi mọi kết nối ngang hàng và mọi yêu cầu tracker qua VPN. Nếu VPN là đường hầm chia tách chỉ định tuyến vài mạng con, việc gắn vào utun sẽ gửi lưu lượng ngang hàng tới một thiết bị không có tuyến cho những ngang hàng đó, và các lần truyền dừng lại thay vì rò rỉ. Cả hai kết quả đều an toàn hơn Any Interface, nhưng chỉ một cái giữ cho ứng dụng hoạt động. Không có gì bên ngoài ứng dụng thay đổi: trình duyệt và ứng dụng khác giữ tuyến riêng của chúng, nên một yêu cầu bao trùm mọi ứng dụng phải được thực thi từ phía VPN.
Đọc tình huống trước khi chọn bất cứ điều gì:
| What you see | What it means for the bind |
|---|---|
| A utun with a provider address and the default route pointing at it | Full tunnel; the bind covers peer and tracker traffic |
| A utun with a provider address but the default route still on en0 | Split tunnel; the bind will stall transfers unless the provider routes 0.0.0.0/0 |
| No utun carrying a provider address | The VPN is down or connects on demand; bring it up before selecting |
| A utun number that changed since the last session | The saved name is stale; reselect and restart |
Họ địa chỉ cũng quan trọng. Nhà cung cấp chỉ cấp IPv4 sẽ để giao diện đã gắn không có địa chỉ IPv6, nên các ngang hàng IPv6 thất bại thay vì lọt ra ngoài qua Wi-Fi. Riêng việc gắn ổ cắm không cố định việc phân giải tên: tên máy chủ tracker được phân giải qua trình phân giải của macOS, trình này tuân theo cấu hình DNS của hệ thống chứ không phải thiết bị đã chọn.
Ba cách một lựa chọn trông đúng lại thất bại
Thất bại đầu tiên là không khởi động lại. Trường hiển thị utun4, tùy chọn trông như đã cấu hình, và một lần truyền thử vẫn đi ra qua Wi-Fi vì phiên đang chạy giữ liên kết cũ. Thoát hoàn toàn, xác nhận bằng pgrep, mở lại và bắt đầu lại lần truyền.
Thứ hai là tên cũ sau khi kết nối lại. Ngay khi thiết bị đã gắn biến mất, các kết nối ngang hàng thất bại và ứng dụng có xu hướng báo lỗi tracker thay vì một thông báo rõ ràng rằng giao diện đã mất, điều này đọc như một torrent chết. Đọc lại ifconfig, chọn tên mới và khởi động lại.
Thứ ba là giả định rằng liên kết thất bại theo hướng đóng. Chọn một giao diện yêu cầu hệ thống gắn ổ cắm vào một tên thiết bị; điều gì xảy ra khi tên đó thiếu hoặc bị tái sử dụng thì màn hình cài đặt không bảo đảm. Bài kiểm tra ngắt kết nối ở phần sau là bằng chứng duy nhất đáng tính.
Xác minh bằng một lần truyền thật và một lần ngắt kết nối
Dùng một lần truyền mà bạn được phép chạy, chẳng hạn ảnh bản phân phối Linux, và bắt đầu nó khi VPN đang kết nối. Theo dõi bộ đếm theo từng giao diện trước và sau rồi so sánh với bộ đếm dữ liệu của chính ứng dụng VPN; cả hai phải cùng tăng trong khi danh sách ngang hàng đầy lên.
netstat -ib | grep utun
pgrep -fl qbittorrentSau đó ngắt VPN từ chính giao diện của nó và theo dõi lần truyền. Các ngang hàng phải rời đi, và các kết nối mới phải thất bại ngay sau khi đường hầm sụp. Nếu tốc độ vẫn tiếp tục, liên kết không có hiệu lực và bạn đã quay lại bước khởi động lại, không phải tường lửa.
Kết nối lại và kiểm tra tên đã chọn một lần nữa, vì đường hầm có thể quay lại dưới một utun khác. Một ghi chú ngắn ghi loại đường hầm, tên giao diện và hành vi mong đợi khi VPN sụp sẽ tiết kiệm phiên sau: cấu hình này là theo từng máy và từng nhà cung cấp, và nó không tồn tại qua bản nâng cấp ứng dụng hay việc đổi ứng dụng VPN.