Máy chủ proxy hoạt động như thế nào?
Proxy không cần scrap cung cấp các kết nối cổng được xác thực để định tuyến lưu lượng ứng dụng qua các lối thoát proxy được quản lý.
Một máy chủ proxy hoạt động bằng cách chấp nhận lưu lượng từ một khách hàng và giao tiếp với một máy chủ khác thay mặt cho khách hàng đó. Đối với một proxy chuyển tiếp, khách hàng chọn đích và gửi yêu cầu qua proxy. Phản hồi đích sau đó trở lại qua proxy đến khách hàng.
Các chi tiết phụ thuộc vào giao thức. Một máy chủ proxy HTTP có thể chuyển tiếp các thông điệp HTTP có thể đọc, tạo một đường hầm cho một đích HTTPS, hoặc áp dụng chính sách hỗ trợ cho lưu lượng. Một proxy SOCKS đàm phán một kết nối ở một lớp khác nhau. Theo dõi vòng đời kết nối để hiểu những gì mỗi bước nhảy có thể nhìn thấy và các cài đặt nào điều khiển nó.
TL;DR
- Khách hàng phải chọn lộ trình proxy. Một proxy được cấu hình không tự động bao phủ mọi ứng dụng hoặc yêu cầu.
- HTTPS thường di chuyển qua một đường hầm CONNECT. Mã hóa đích và vận chuyển cổng là những mối quan tâm riêng biệt.
- Giải quyết DNS phụ thuộc vào khách hàng và giao thức. Một số lộ trình giải quyết đích tại chỗ và những lộ trình khác tại proxy.
- Phản hồi của proxy và phản hồi từ nguồn cần chẩn đoán riêng biệt. Lỗi xác thực tại cổng khác với quyết định truy cập từ nguồn.
Bước 1: Khách Hàng Chọn Một Lộ Trình
Khách hàng quyết định xem một yêu cầu có đi trực tiếp đến đích hay thông qua một proxy. Quyết định đó có thể đến từ các tùy chọn ứng dụng, cài đặt môi trường, cấu hình hệ điều hành, hoặc các quy tắc định tuyến được cấu hình của trình duyệt.
Cài đặt proxy thường xác định một giao thức, máy chủ cổng, cổng, và bất kỳ thông tin đăng nhập nào. URL đích vẫn là tài nguyên mà bạn muốn yêu cầu. Thay thế máy chủ đích bằng máy chủ proxy làm nhầm lẫn định tuyến với định danh tài nguyên.
Các cài đặt loại trừ có thể gửi một số đích trực tiếp. Một dịch vụ nội bộ có thể cố ý tránh một proxy bên ngoài, trong khi một bài kiểm tra khu vực được cho phép phải sử dụng nó. Kiểm tra những loại trừ đó khi một yêu cầu cho thấy lối thoát mong đợi và một yêu cầu khác không có.
Một cài đặt proxy trong một ứng dụng không nên được cho là điều khiển toàn bộ thiết bị. Một trình duyệt, một khách hàng HTTP, và một hệ thống cập nhật có thể có hành vi định tuyến khác nhau. Xác nhận phạm vi trong chương trình thực tế sẽ thực hiện tác vụ.
Bước 2: Cổng Chấp Nhận Kết Nối
Cổng chấp nhận một kết nối của khách hàng và áp dụng chính sách truy cập của mình trước khi chuyển tiếp lưu lượng truy cập. Xác thực cổng không cần scrap xác định máy chủ và cổng riêng biệt với thông tin đăng nhập kênh và các tùy chọn định tuyến được hỗ trợ.
Khách hàng phải liên lạc với cổng ở giao thức và cổng đã định trước. Một kết nối TCP xác nhận khả năng tiếp cận, nhưng cổng có thể từ chối thông tin đăng nhập hoặc không cho phép một đích. Giữ khả năng tiếp cận và xác thực như các kiểm tra riêng biệt.
Xác thực proxy HTTP có thể tạo ra một thử thách cụ thể cho proxy. Các ngữ nghĩa xác thực proxy HTTP phân biệt một yêu cầu xác thực proxy từ một yêu cầu xác thực máy chủ nguồn. Thông tin đăng nhập cho proxy nên giữ lại ở phía proxy của ranh giới đó.
Nếu một kênh có yêu cầu về mức lưu lượng hoặc số dư, nguồn tài khoản có thể ảnh hưởng đến quyền truy cập. Một mật khẩu đúng không chứng minh rằng mọi ràng buộc của kênh đều được thỏa mãn. Kiểm tra trạng thái của kênh mà không tiết lộ mật khẩu trong nhật ký hoặc vé.
Bước 3: HTTP Thông Thường Được Chuyển Tiếp
Đối với một đích HTTP thông thường, một máy chủ proxy HTTP có thể nhận yêu cầu như một thông điệp HTTP và chuyển tiếp nó về phía nguồn. Máy chủ proxy có thể kiểm tra các tiêu đề và nội dung được hỗ trợ vì lưu lượng đó không được bảo vệ bởi HTTPS đích.
Yêu cầu cho biết máy chủ proxy tài nguyên nguồn nào là cần thiết. Máy chủ proxy thiết lập hoặc tái sử dụng một kết nối upstream và gửi một yêu cầu phù hợp ra ngoài. Phản hồi trở lại qua cùng một chuỗi logic, mặc dù các kết nối inbound và outbound là khác biệt.
Một proxy chuyển tiếp có thể thực hiện lọc, ghi nhật ký, hoặc bộ nhớ đệm nơi cấu hình của nó và các quy tắc HTTP cho phép những chức năng đó. Đây là khả năng của một triển khai cụ thể, không phải là thuộc tính tự động của mọi dịch vụ proxy.
Mô hình proxy chuyển tiếp và đường hầm cũng phân biệt một proxy chuyển tiếp đang hoạt động cho khách hàng với một proxy đảo ngược đang hoạt động cho một dịch vụ nguồn. Hướng lưu lượng một mình không đủ; điều quan trọng là bên nào trung gian đại diện.
Bước 4: HTTPS Thiết Lập Một Đường Hầm
Đối với một đích HTTPS được đến qua một máy chủ proxy HTTP, khách hàng thường yêu cầu máy chủ proxy tạo một đường hầm CONNECT đến máy chủ và cổng đích. Sau khi thiết lập đường hầm thành công, khách hàng thực hiện trao đổi TLS đích qua đường hầm.
Sơ đồ proxy mô tả việc vận chuyển từ khách hàng đến proxy. Sơ đồ đích mô tả kết nối ứng dụng mục tiêu. Một máy chủ proxy HTTP có thể mang một đích HTTPS, và một proxy hỗ trợ TLS có thể bảo vệ bước vào của riêng nó. Đây là các ranh giới bảo mật khác nhau.
Trong một đường hầm bình thường không bị chặn, máy chủ proxy chuyển tiếp lưu lượng đích đã mã hóa thay vì đọc trang đã giải mã. Nó vẫn biết siêu dữ liệu kết nối, bao gồm đích đường hầm đã yêu cầu và thời gian. Mã hóa không khiến người điều hành proxy không nhận thức được rằng một kết nối tồn tại.
Giao thức TLS và mô hình xác thực bảo vệ kết nối TLS khi xác thực chứng chỉ và cấu hình niềm tin của các điểm cuối là chính xác. Một proxy kiểm tra được quản lý sử dụng một sắp xếp niềm tin khác và có thể chấm dứt TLS. Xác nhận mô hình đã triển khai trước khi khẳng định những gì proxy có thể thấy.
Bước 5: Tên đích được phân giải
Việc phân giải DNS đích có thể xảy ra tại máy khách hoặc tại proxy, tùy thuộc vào giao thức và cấu hình của máy khách. Tên máy chủ gateway cũng phải được phân giải để máy khách có thể kết nối với proxy.
Đối với SOCKS5, yêu cầu có thể mang một tên miền hoặc địa chỉ IP. Nếu máy khách phân giải mục tiêu trước và gửi IP của nó, DNS cục bộ đã tham gia. Nếu máy khách gửi tên máy chủ mục tiêu để phân giải phía proxy, tuyến đường sẽ ủy quyền cho việc tra cứu đó.
Cái cấu hình proxy cURL phân biệt socks5:// tình huống socks5h:// để phân giải tên mục tiêu. Các nhãn tùy chọn đó thể hiện hành vi của máy khách; chúng không nên được khái quát hóa cho mọi chương trình mà không kiểm tra triển khai của nó.
Vị trí DNS có thể ảnh hưởng đến kết quả khu vực hoặc quyền truy cập vào tên máy chủ chỉ có sẵn từ mạng của proxy. Chẩn đoán việc tra cứu tên riêng biệt với việc chọn lối thoát. Một lỗi DNS mục tiêu không xác định rằng thông tin chứng thực proxy là sai.
Bước 6: Phản hồi quay trở lại máy khách
Máy khách nhận được hoặc là phản hồi từ đích hoặc là phản hồi tạo ra bởi một trung gian. Quy trình công việc phải xác định giai đoạn nào đã sản xuất kết quả trước khi quyết định nó có nghĩa gì.
Một gateway có thể từ chối một yêu cầu chưa được xác thực trước khi có bất kỳ kết nối mục tiêu nào tồn tại. Một đích có thể trả về một trang truy cập sau khi kết nối proxy thành công. Một kết nối upstream cũng có thể thất bại sau khi gateway chấp nhận máy khách. Những kết quả này thuộc về các phần khác nhau của vòng đời.
Khi lấy nội dung, kiểm tra trạng thái, URL cuối, loại phản hồi và các trường cần thiết. Một trang mà chuyển hướng đến màn hình đăng nhập không đáp ứng yêu cầu quan sát sản phẩm công khai ngay cả khi màn hình tải lên đúng cách. Một trạng thái thành công với nội dung thách thức cũng tương tự là một sự không khớp nội dung.
Các ví dụ kết nối HTTP và SOCKS cho thấy cách thiết lập máy khách ánh xạ đến các lớp này. Sử dụng đầu ra chẩn đoán cẩn thận: tiêu đề, dữ liệu xác thực và URL có thể tiết lộ ngữ cảnh nhạy cảm, vì vậy hãy giữ nhật ký hàng ngày giới hạn trong các bằng chứng đã được làm sạch.
Khi nào một proxy có thể lưu cache nội dung?
Một proxy chỉ có thể lưu cache một phản hồi HTTP khi việc triển khai của nó hỗ trợ caching và các quy tắc cache của phản hồi cho phép điều đó. Các quy tắc caching HTTP quy định việc tái sử dụng, độ mới và xử lý các chỉ thị yêu cầu và phản hồi.
Một phản hồi đã lưu cache có thể giảm công việc upstream khi cùng một tài nguyên có thể cache được được yêu cầu lại. Một phản hồi cá nhân hóa hoặc rõ ràng không thể cache cần một cách xử lý khác. Đừng giả định rằng một proxy có thể an toàn tái sử dụng bất kỳ trang nào chỉ vì URL là giống nhau.
Một đường hầm HTTPS không trong suốt thông thường không tiết lộ các tiêu đề và nội dung phản hồi HTTP đã được giải mã cho proxy chuyển tiếp. Điều này hạn chế các loại caching có ý thức về nội dung mà proxy có thể thực hiện trên lưu lượng bên trong đường hầm. Một proxy đảo ngược kết thúc TLS ở phía gốc có vị trí khác.
Đối với một nhiệm vụ nhạy cảm về độ mới, xác thực dấu thời gian và bối cảnh quan sát mong đợi. Một phản hồi nhanh có thể là phản hồi sai nếu độ tuổi của nó không phù hợp với yêu cầu đo lường.
Thành phần nào kiểm soát từng thiết lập?
Một tuyến proxy hoạt động cần cài đặt của máy khách, chính sách của gateway và hợp đồng phản hồi của đích phải đồng ý. Gán quyền sở hữu cho từng thiết lập thay vì coi URL proxy là toàn bộ cấu hình.
| Thiết lập | Chủ sở hữu | Mục đích |
|---|---|---|
| URL đích | Ứng dụng | Xác định tài nguyên được yêu cầu |
| Gateway và giao thức | Máy khách và nhà cung cấp | Chọn kết nối đầu vào |
| Thông tin xác thực của proxy | Kênh cung cấp | Ủy quyền sử dụng gateway |
| Tùy chọn lối thoát và phiên | Cấu hình nhà cung cấp hỗ trợ | Chọn bối cảnh định tuyến |
| Các trường phản hồi cần thiết | Ứng dụng | Thiết lập nội dung sử dụng được |
Giải pháp Proxy Không Rác cung cấp nhiều loại lối thoát sau cấu hình quản lý. Tham khảo giá cả không rác và các điều khoản của kênh đã chọn khi lập ngân sách cho tuyến đường; hỗ trợ giao thức và phân bổ thương mại cũng nên được kiểm tra cho tài khoản của riêng bạn.
Kết luận
Vòng đời yêu cầu của máy chủ proxy bắt đầu với việc chọn tuyến đường và kết thúc với một phản hồi mà ứng dụng của bạn phải diễn giải. Kiểm tra quyền truy cập vào gateway, xác thực, đường hầm, DNS và nội dung mục tiêu một cách độc lập. Chuỗi đó sẽ mang lại cho bạn một chẩn đoán cụ thể khi một kết nối hoạt động nhưng dữ liệu dự kiến không đến.
Kiểm tra lộ trình yêu cầu của bạn
Chọn một kênh proxy và kiểm tra từng giai đoạn kết nối trước khi đưa yêu cầu web được phép của bạn vào quy trình sản xuất.
Đăng ký ngay hôm nay và nhận $5 tín dụng miễn phí — không yêu cầu thẻ tín dụng.
Yêu cầu $5 tín dụng của bạn →Câu hỏi thường gặp
H: Một proxy HTTP có thể mang theo yêu cầu HTTPS không?
Một proxy HTTP có thể mang theo đích HTTPS thông qua một đường hầm CONNECT khi hành vi đó được hỗ trợ. Khách hàng sau đó thiết lập TLS đến đích thông qua đường hầm. TLS đến cổng là một lựa chọn vận chuyển riêng và phụ thuộc vào cấu hình proxy và khách hàng.
H: Một proxy có thể xem nội dung trang HTTPS không?
Một đường hầm không can thiệp thông thường chuyển tiếp lưu lượng HTTPS đã mã hóa mà không giải mã nội dung trang. Proxy vẫn có thể quan sát siêu dữ liệu kết nối. Một proxy kiểm tra mà kết thúc TLS dưới một cấu hình tin cậy quản lý có thể có khả năng quan sát khác nhau, vì vậy hãy xác định triển khai thực tế.
H: Giải quyết DNS xảy ra ở đâu?
Giải quyết DNS phụ thuộc vào giao thức của khách hàng và proxy. Một khách hàng có thể giải quyết đích cục bộ hoặc gửi tên miền đến proxy để giải quyết. Kiểm tra chế độ hoặc tùy chọn được hỗ trợ của khách hàng thay vì giả định rằng mọi yêu cầu proxy sử dụng DNS từ xa.
H: Tại sao kiểm tra IP có thể thành công trong khi mục tiêu thì không?
Một kiểm tra IP có thể thành công vì proxy đã đến dịch vụ kiểm tra, trong khi một đích khác từ chối lưu lượng hoặc trả về nội dung khác. Xác thực mục tiêu thực tế một cách riêng biệt, bao gồm cả URL cuối cùng, các trường cần thiết và ngữ cảnh vị trí dự định.
H: Việc thiết lập một tuyến proxy có làm cho mọi chương trình trên một máy tính không?
Thiết lập một proxy không nhất thiết chuyển hướng mọi chương trình trên một máy tính. Các thiết lập ở mức ứng dụng bao phủ lưu lượng của ứng dụng đó, trong khi hành vi của hệ thống và trình duyệt có sự khác biệt. Xác nhận lộ trình hiệu quả trong từng chương trình là một phần của quy trình làm việc.