VPN vào Tor, Tor vào VPN: vì sao chuỗi đứt
Khi một VPN, Tor và một proxy được xếp chồng, thứ tự quyết định cái gì được phân giải và cái gì được chuyển. Hãy tìm ranh giới đứt đầu tiên trước khi đổi cả ba.
Xếp chồng một VPN, Tor và một proxy ứng dụng có cảm giác như nhân bội quyền riêng tư, nhưng thực ra nó nhân bội số chỗ mà một kết nối có thể chết. Kết quả thường thấy là một trình duyệt quay mãi trong khi cả ba công cụ đều báo mình khỏe. Đổi cả ba cài đặt cùng lúc sẽ xóa mất manh mối duy nhất về việc cái nào đang nói dối.
Trước hết hãy vẽ đường đi dự định theo thứ tự, ghi rõ chương trình nào mở từng kết nối và tên nào được phân giải ở từng bước.
Các lớp không cộng lại, chúng tương tác với nhau
Một VPN trước Tor nghĩa là kết nối vào của ứng dụng khách Tor đi bên trong đường hầm. Một VPN được mang qua Tor nghĩa là điểm cuối của chính ứng dụng khách VPN phải truy cập được qua Tor, đây là một yêu cầu hoàn toàn khác. Proxy của trình duyệt thêm một bước nhảy nữa mà hệ điều hành không hề biết. Ba cách sắp xếp, ba danh sách phụ thuộc riêng.
Mỗi cách sắp xếp thay đổi cái gì có thể phân giải, cái gì có thể chuyển và ai nhìn thấy gói tin đầu tiên. Chỉ một trong số đó có thể là cấu hình mà bạn định làm.
Hãy thêm cả đường trực tiếp vào sơ đồ. Một tuyến dự phòng, một ngoại lệ cho đường hầm chia tách hoặc một đường vòng proxy có thể khiến trang tải được trong khi lặng lẽ bỏ qua chuỗi mà bạn muốn kiểm tra, và thành công như vậy gây nhầm lẫn hơn cả thất bại.
Thứ tự quyết định cái gì có thể được chuyển
Tor chuyển các luồng TCP qua giao diện SOCKS của nó, và ứng dụng khách yêu cầu proxy phân giải tên máy chủ sẽ giữ truy vấn bên trong mạch. UDP không đi theo cách đó trong các cấu hình thông thường, vì vậy không thể lồng đường hầm WireGuard vào Tor mà không có thêm một bộ chuyển tiếp TCP ở giữa.
OpenVPN có thể bị ép sang TCP, nên cách sắp xếp đó ít nhất cũng mô tả được. Nó cũng chậm hơn và mong manh hơn, và kiểu hỏng khi đứt trông giống hệt một cổng bị chặn. Hãy dự tính mất nhiều thời gian phân biệt hai trường hợp này hơn là sửa một trong hai.
Phân giải là nửa còn lại. Với --socks5-hostname proxy phân giải đích, còn --socks5 thường hỏi trình phân giải cục bộ trước và làm rò rỉ tên ra ngoài mạch. Chính cờ đó quyết định liệu việc tra tên thuộc về chuỗi hay thuộc về nhà cung cấp internet của bạn.
| Order | What must resolve the endpoint | What usually breaks |
|---|---|---|
| VPN, then Tor | The tunnel's resolver | Entry guards blocked by the VPN provider's filters |
| Tor, then VPN | The SOCKS proxy, remotely | UDP transports, which Tor does not carry |
| App proxy on top | The application itself | Proxy bypass rules and cached connections |
Tìm ranh giới đứt đầu tiên
Hãy thử từng chặng theo đúng thứ tự gói tin đi, bằng những yêu cầu vô hại, và dừng ở chặng đầu tiên thất bại. Ghi lại lệnh nào chạy trước, vì thứ tự là một phần của bằng chứng. Hai lệnh phân biệt một mạch chết với một lối ra chết:
curl -s --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/api/ip curl -4 -s https://api.ipify.org; echo
Lệnh đầu cho biết một yêu cầu có hoàn tất qua proxy SOCKS hay không, lệnh thứ hai hiển thị địa chỉ mà mạng đang trình ra lúc này. Nếu lệnh đầu thất bại và lệnh thứ hai thành công, vấn đề nằm ở ứng dụng khách Tor hoặc trước đó. Nếu cả hai thành công mà trình duyệt vẫn hỏng, ứng dụng đang dùng đường khác với shell.
Trang IP công khai cũng chỉ mô tả lối ra nhìn thấy cuối cùng. Nó không thể cho biết có bao nhiêu bước nhảy trước đó, nên hãy ghép nó với đầu ra trạng thái được hỗ trợ của từng công cụ thay vì coi một con số là sơ đồ.
Khi nào ngừng thêm lớp
Nếu bạn không thể nói trong một câu rằng một lớp đóng góp gì, hãy bỏ nó đi. Một chuỗi mà mục đích không rõ ràng là chuỗi không ai gỡ lỗi được lúc ba giờ sáng, và lợi ích riêng tư từ một bước nhảy không giải thích thường nhỏ hơn khả năng sẵn sàng mà bạn mất.
Nếu một lớp thực sự xứng đáng có chỗ, hãy thử nó một mình trước, rồi thêm lớp tiếp theo và xác nhận lại đường đi bằng đúng hai lệnh đó. Khôi phục chuỗi đầy đủ trước khi dùng thường ngày, và giữ việc kiểm tra TLS cùng xác thực luôn bật; một cảnh báo chứng chỉ được chấp nhận để trang tải được là cách lách định tuyến, không phải sửa chữa. Ghi lại thứ tự bạn đã chọn khi nó còn mới.
Hãy viết thứ tự đó ra, kể cả trình phân giải trả lời ở từng chặng. Một chuỗi hoạt động mà bạn mô tả được sẽ sống qua lần cập nhật tới, còn một chuỗi hoạt động được ghép bằng thử sai sẽ biến mất cùng nó. Thêm ngày tháng và phiên bản, để một sự cố về sau có thể được so với trạng thái tốt đã biết thay vì tranh luận từ trí nhớ. Mười dòng trong một tệp văn bản tiết kiệm cả buổi tối đoán mò.