Chuyển đến nội dung
Tất cả bài viết
Blog & hướng dẫn/Kiến thức Proxy
Kiến thức Proxy

NO_PROXY là gì? Hiểu quy tắc bỏ qua proxy trước khi cấu hình

NO_PROXY khai báo các đích không dùng proxy trong công cụ có hỗ trợ. Cú pháp và thứ tự ưu tiên phụ thuộc ứng dụng, nên cần kiểm tra thay vì sao chép một danh sách chung.

NO_PROXY là gì? Hiểu quy tắc bỏ qua proxy trước khi cấu hình
NỘI DUNG BÀI VIẾTHướng dẫn chi tiết từ ProxySmart

NO_PROXY là danh sách ngoại lệ không dùng proxy trong ứng dụng có hỗ trợ. Nó thường xuất hiện bên cạnh các biến cấu hình proxy, nhưng không phải chuẩn có cách hiểu giống nhau ở mọi công cụ. Đặt sai ngoại lệ có thể khiến một yêu cầu đi trực tiếp ngoài dự kiến.

Khi nào cần NO_PROXY?

Trong một môi trường thử nghiệm, bạn có thể muốn yêu cầu ra ngoài đi qua proxy, còn dịch vụ nội bộ được truy cập trực tiếp. Ví dụ, ứng dụng gọi API công khai và đồng thời gọi máy chủ phát triển trên chính thiết bị. Hai đích có nhu cầu định tuyến khác nhau.

Đây phải là ngoại lệ có chủ đích, được người quản trị cho phép. NO_PROXY không cấp quyền truy cập, không mở tường lửa và không bảo đảm rằng một dịch vụ nội bộ sẽ kết nối được.

NO_PROXY và no_proxy có giống nhau không?

Tên biến, thứ tự ưu tiên và cách khớp phụ thuộc ứng dụng. Với curl, có cả biến NO_PROXY, no_proxy và tùy chọn --noproxy. Xem tài liệu biến môi trường của curl trước khi áp dụng.

Không nên suy ra một trình duyệt, SDK hay container sẽ hiểu giống curl. Với quy trình nhiều bước, cần kiểm tra công cụ nào tạo yêu cầu thực tế và biến nào được truyền tới tiến trình đó. Cài đặt ở terminal chưa chắc được ứng dụng khác kế thừa.

Hostname không phải mọi IP của hostname

Hãy phân biệt URL dùng localhost với URL dùng 127.0.0.1. Dù thường trỏ về máy cục bộ, chúng là hai dạng đích khác nhau. Một ngoại lệ theo tên không nên được xem là tự động bao phủ tất cả địa chỉ IP liên quan.

Khi ghi checklist, lưu đúng hostname hoặc IP xuất hiện trong URL cần kiểm tra. Nếu đổi URL từ tên sang IP, hãy kiểm tra lại tuyến. Cách tiếp cận này tránh nhầm “cùng máy chủ” với “cùng quy tắc khớp”.

Ví dụ kiểm tra có phạm vi hẹp với curl

Giả sử bạn có máy chủ thử nghiệm cục bộ ở cổng 8000. Lệnh minh họa dưới đây chỉ yêu cầu curl bỏ proxy cho hai đích cục bộ; hostname proxy là giá trị mẫu, cần thay bằng cấu hình được cấp.

curl --proxy http://proxy.example.com:8080 --noproxy "localhost,127.0.0.1" http://localhost:8000/health

Chỉ chạy với dịch vụ do bạn sở hữu hoặc được phép kiểm tra. Để xác minh tuyến, đối chiếu nhật ký máy chủ thử nghiệm và cấu hình ứng dụng. Một mã 200 cho biết yêu cầu thành công, không tự chứng minh nó đã qua hoặc bỏ qua proxy đúng ý định.

CIDR và giá trị trống cần đọc kỹ

curl hỗ trợ CIDR cho ngoại lệ IP từ phiên bản 7.86.0. Không được suy ra mọi SDK có hỗ trợ này; xem CURLOPT_NOPROXY và kiểm tra phiên bản đang cài.

Với curl, --noproxy "" ghi đè danh sách ngoại lệ từ môi trường, còn --noproxy "*" bỏ proxy cho tất cả đích. Hai giá trị này không tương đương. Chi tiết ở curl --noproxy. Giá trị trống trong giao diện của công cụ khác có thể mang ý nghĩa khác.

Checklist trước khi áp dụng trong hệ thống

  1. Liệt kê đích nào được phép đi trực tiếp và lý do.
  2. Ghi công cụ, phiên bản, cách đặt biến và cấu hình ưu tiên.
  3. Thử một đích cần proxy và một đích ngoại lệ bằng dữ liệu giả.
  4. Kiểm tra nhật ký đã che thông tin xác thực để xác nhận tuyến.
  5. Áp dụng cho đúng tiến trình, tránh thay cấu hình chung quá rộng.
  6. Lưu phương án khôi phục và kiểm tra lại khi nâng cấp công cụ.

Với container, xem cấu hình proxy cho Docker container. Nếu cần quy tắc trình duyệt theo URL, đọc Proxy Auto-Config PAC; đừng coi PAC và NO_PROXY là hai cú pháp thay thế trực tiếp.

Câu hỏi thường gặp

Đặt NO_PROXY có biến proxy thành kết nối an toàn hơn không?

Không. Đây là lựa chọn tuyến cho yêu cầu, không phải cơ chế mã hóa hay ranh giới bảo mật. Vẫn cần HTTPS, xác thực và kiểm soát mạng phù hợp.

Ứng dụng vẫn dùng proxy thì nên làm gì?

Xác định tiến trình thực hiện yêu cầu, kiểm tra tài liệu chính thức và cấu hình ưu tiên. Không thêm ký tự đại diện rộng để thử cho nhanh, vì có thể khiến các đích khác đi trực tiếp.

Chỉ thêm ngoại lệ có lý do và phạm vi rõ ràng. Sau mỗi thay đổi, kiểm tra cả đích cần proxy lẫn đích đi trực tiếp để xác nhận cấu hình đúng ý định.