SOCKS5 và SOCKS5h: DNS được phân giải ở đâu?
So sánh phân giải DNS cục bộ và tại proxy trong curl, tìm nguyên nhân lỗi phân giải tên và hiểu giới hạn bảo vệ của socks5h.
Trong curl, chọn socks5h:// khi muốn proxy phân giải tên đích. Chọn socks5:// khi muốn curl phân giải cục bộ rồi gửi một địa chỉ tới proxy. Cả hai đều dùng SOCKS5; ký tự h cuối cùng là quy ước URL của máy khách.
So sánh hai chế độ bằng cách thay bộ lắng nghe cục bộ bằng điểm cuối SOCKS5 của bạn:
curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Chỉ chế độ phân giải thay đổi. --noproxy '' xóa các quy tắc bỏ qua proxy cho những lần gọi này, còn giới hạn thời gian khống chế thời lượng so sánh. Các tùy chọn chuyên biệt tương đương là --socks5 và --socks5-hostname. Hãy dùng tên máy chủ làm đích: địa chỉ IP viết trực tiếp không cần tra cứu tên đích nên không thể thể hiện sự khác biệt này.
Một tên có thể chỉ được biết ở một phía
Giả sử proxy chạy trong mạng phát triển có DNS biết tên một dịch vụ nội bộ. Máy tính xách tay của bạn có thể không phân giải được tên đó ở chế độ socks5, trong khi socks5h để proxy thực hiện việc này. Đảo ngược tình huống, với tên chỉ được định nghĩa trong tệp hosts của máy bạn, thì việc tra cứu từ xa lại có thể thất bại.
DNS công cộng cũng có thể trả về các địa chỉ khác nhau từ những mạng khác nhau. Kết quả khác biệt là lý do để so sánh địa chỉ được chọn và khả năng truy cập của chúng, thay vì lập tức thay proxy.
- Không phân giải được tên máy chủ của proxy: cả hai chế độ đều không thể bắt đầu. Máy khách vẫn phân giải
proxy.exampletrongsocks5h://proxy.example:1080. - Tra cứu cục bộ tên đích thất bại: kiểm tra bộ phân giải của máy khách hoặc so sánh với chế độ gửi tên máy chủ cho proxy.
- Máy chủ SOCKS từ chối đích: kiểm tra phản hồi và chính sách của nó. Tra cứu cục bộ thành công không chứng minh đích có thể truy cập được từ phía xa.
- Đường hầm hoạt động nhưng xác minh chứng chỉ thất bại: kiểm tra TLS của đích; chọn chế độ DNS khác không phải cách sửa chung cho các vấn đề tin cậy.
Tên thử nghiệm do bạn kiểm soát và nhật ký phía máy chủ có thể xác nhận loại địa chỉ đã tới một proxy bạn quản trị. Trang web hiển thị IP đầu ra không làm được điều đó: nó báo về kết nối ra ngoài, không phải nơi DNS được phân giải.
Lợi ích riêng tư có phạm vi cụ thể
Tra cứu tại proxy tránh việc tra cứu cục bộ tên đích cho yêu cầu này. Nó không mã hóa SOCKS, không chứng minh proxy dùng DNS mã hóa, cũng không định tuyến lưu lượng của ứng dụng khác hay tải trước của trình duyệt. Requests có hỗ trợ SOCKS cũng dùng sự phân biệt cục bộ và tại proxy này; các máy khách khác có thể cung cấp một thiết lập thay cho cách viết URL của curl. Chọn giao thức được ứng dụng hỗ trợ trước khi sao chép điểm cuối từ danh sách proxy SOCKS5.