Insomnia proxy: Gửi request API qua HTTP và SOCKS5 proxy
Insomnia proxy là cấu hình cho ứng dụng gọi API Insomnia gửi mọi yêu cầu qua một máy chủ proxy thay vì đi thẳng. Lập trình viên cần cấu hình này khi làm việc sau proxy công ty, khi muốn thử API trả về khác nhau theo vùng IP, hoặc khi gỡ lỗi kết nối qua proxy mua. Bài này ProxyVN hướng dẫn bật proxy, khai báo ngoại lệ, dùng proxy có mật khẩu và xử lý lỗi thường gặp. Xem thêm dịch vụ tại ProxyVN.
Tổng quan về Insomnia proxy
Insomnia là ứng dụng mã nguồn mở để thiết kế, gửi và kiểm thử yêu cầu API, do Kong phát triển, mã nguồn nằm trên kho GitHub của Insomnia. Ứng dụng hỗ trợ REST, GraphQL, gRPC, WebSocket và chạy trên Windows, macOS, Linux. Nhiều lập trình viên dùng Insomnia như một lựa chọn thay thế Postman vì giao diện gọn, nhẹ và có chế độ làm việc cục bộ không bắt buộc đăng nhập.
Khi gửi yêu cầu, Insomnia mặc định đi thẳng từ máy tính tới máy chủ API. Bật proxy trong cài đặt sẽ khiến mọi yêu cầu đi qua máy chủ proxy, máy chủ API nhìn thấy IP của proxy thay vì IP máy anh em. Cách cấu hình được mô tả trong tài liệu Proxy của Insomnia.
Khi nào cần cấu hình Insomnia proxy
- Làm việc sau proxy công ty: mạng văn phòng chỉ cho ra Internet qua proxy, Insomnia không đi thẳng được.
- Thử API theo vùng: API trả về giá, ngôn ngữ, tiền tệ, nội dung khác nhau theo IP người gọi.
- Gỡ lỗi khi tool chạy qua proxy bị lỗi: tái hiện yêu cầu qua đúng proxy để xem proxy trả gì.
- Kiểm tra API có chặn IP datacenter không: gửi cùng yêu cầu qua IP dân cư và IP datacenter để so sánh.
- Xem lưu lượng bằng công cụ gỡ lỗi: cho Insomnia đi qua mitmproxy chạy ở máy để quan sát chi tiết.
Insomnia khác Postman ở đâu khi dùng proxy
Tiêu chí |
Insomnia |
Postman |
|---|---|---|
Nơi cài proxy |
Preferences, mục proxy |
Settings, mục Proxy |
Proxy theo hệ thống |
Có thể dùng biến môi trường |
Có tuỳ chọn dùng proxy hệ thống |
Danh sách không dùng proxy |
Có ô No proxy |
Có ô bypass |
Làm việc không đăng nhập |
Có chế độ cục bộ |
Cần tài khoản cho nhiều tính năng |
Mã nguồn |
Mở |
Đóng |
Postman đã có bài riêng là Proxy Postman là gì. Bài này chỉ nói phần khác biệt trên Insomnia.
Cơ chế gửi yêu cầu qua Insomnia proxy
Hiểu đường đi của yêu cầu giúp anh em biết vì sao cần cài proxy riêng cho HTTP và HTTPS, và vì sao đôi khi cần xử lý chứng chỉ.

Insomnia và proxy nằm ở đâu
Yêu cầu tới địa chỉ HTTP
Insomnia gửi nguyên yêu cầu tới proxy, kèm địa chỉ đầy đủ của API. Proxy tự lấy kết quả và trả về. Toàn bộ nội dung đi qua proxy ở dạng không mã hoá, nên chỉ nên dùng cho API nội bộ hoặc thử nghiệm.
Yêu cầu tới địa chỉ HTTPS
Insomnia gửi lệnh CONNECT tới proxy để mở đường hầm, sau đó bắt tay TLS trực tiếp với máy chủ API. Proxy chỉ thấy tên miền và lượng dữ liệu, không thấy nội dung. Cơ chế này được mô tả trong trang Proxy servers and tunneling của MDN.
Vì sao có hai ô HTTP proxy và HTTPS proxy
Hai ô cho biết dùng proxy nào với yêu cầu tới địa chỉ HTTP và yêu cầu tới địa chỉ HTTPS. Trong đa số trường hợp, hai ô điền cùng một proxy. Giá trị trong ô vẫn bắt đầu bằng http:// vì kết nối tới proxy là HTTP thường, chỉ kết nối tới API mới là HTTPS. Viết nhầm https:// cho địa chỉ proxy là lỗi phổ biến khiến yêu cầu thất bại.
Ô HTTPS proxy nói về đích đến, không nói về giao thức của proxy. Địa chỉ proxy gần như luôn bắt đầu bằng http://.
Cách bật Insomnia proxy từng bước
Giao diện Insomnia có thể thay đổi nhẹ giữa các phiên bản, nhưng vị trí cài đặt proxy nằm trong phần Preferences.
Bước 1: Mở Preferences
Trên Windows và Linux, mở menu Application rồi chọn Preferences, hoặc bấm biểu tượng bánh răng ở góc dưới. Trên macOS, chọn Insomnia rồi Settings. Cửa sổ cài đặt có nhiều thẻ, mục proxy nằm ở thẻ General.
Bước 2: Bật proxy
Tìm phần HTTP Network Proxy, bật công tắc Enable proxy. Các ô nhập proxy hiện ra.

Bật proxy trong Preferences
Bước 3: Điền địa chỉ proxy
Ô HTTP Proxy điền dạng http://host:port, ví dụ http://103.x.x.x:8080. Ô HTTPS Proxy điền cùng giá trị nếu muốn yêu cầu HTTPS cũng đi qua proxy. Không cần điền gì nếu chỉ muốn một loại đi qua proxy.
Bước 4: Khai báo No proxy
Ô No Proxy chứa danh sách tên miền, địa chỉ đi thẳng, phân cách bằng dấu phẩy. Thường gồm localhost, 127.0.0.1 và tên miền nội bộ của công ty. Thiếu ô này, yêu cầu tới máy chủ chạy ở máy cục bộ cũng bị đẩy qua proxy và thất bại. Ý nghĩa danh sách này giống biến NO_PROXY, bài NO_PROXY là gì giải thích chi tiết.
Bước 5: Gửi yêu cầu thử
Tạo yêu cầu GET tới một API trả về IP người gọi, ví dụ https://api.ipify.org. Nếu kết quả là IP của proxy, cấu hình đã đúng. Thẻ Timeline trong khung phản hồi cho biết chi tiết kết nối, giúp kiểm tra yêu cầu có đi qua proxy hay không.
Bước 6: Tắt khi không cần
Proxy cấu hình trong Preferences áp dụng cho mọi yêu cầu. Khi chuyển sang làm việc với API nội bộ không cần proxy, tắt công tắc để tránh nhầm lẫn kết quả.
Insomnia proxy có xác thực
Proxy mua thường yêu cầu tài khoản mật khẩu hoặc whitelist IP. Insomnia xử lý được cả hai cách.

Proxy có tài khoản mật khẩu
Proxy xác thực bằng tài khoản mật khẩu
Đưa tài khoản mật khẩu vào ngay địa chỉ proxy theo dạng http://user:matkhau@host:port. Nếu mật khẩu có ký tự đặc biệt như @, :, #, %, phải mã hoá theo chuẩn URL trước khi ghép, ví dụ @ thành %40, # thành %23. Không mã hoá, Insomnia hiểu sai phần nào là mật khẩu, phần nào là địa chỉ máy chủ, và kết nối tới nơi không tồn tại.
Proxy xác thực bằng IP whitelist
Thêm IP công khai của máy đang chạy Insomnia vào trang quản lý proxy. Địa chỉ proxy trong Insomnia chỉ cần host:port. Cách này gọn nhưng hỏng mỗi khi IP máy thay đổi, ví dụ khi mang laptop ra ngoài. Ưu nhược điểm hai cách xác thực được so sánh trong bài xác thực proxy bằng IP whitelist hay user password.
Khi nhận lỗi 407
Mã 407 cho biết proxy yêu cầu xác thực mà Insomnia chưa gửi đúng. Kiểm tra lại tài khoản, mật khẩu, ký tự đặc biệt và whitelist. Cơ chế chi tiết có trong bài sửa lỗi 407 Proxy Authentication Required.
Insomnia proxy với SOCKS5
Nhiều nhà cung cấp cấp proxy SOCKS5 cùng với HTTP. Khả năng hỗ trợ SOCKS5 của Insomnia phụ thuộc phiên bản, anh em kiểm tra tài liệu của bản đang dùng.
Nếu phiên bản hỗ trợ SOCKS5
Điền địa chỉ dạng socks5://host:port hoặc socks5h://host:port vào ô proxy. Dạng socks5h giao việc phân giải tên miền cho proxy, giúp tránh lộ truy vấn DNS. Khác biệt giữa HTTP và SOCKS5 có trong bài proxy HTTP và SOCKS5.
Nếu phiên bản không hỗ trợ
Dùng cổng HTTP của cùng proxy, phần lớn nhà cung cấp cấp cả hai giao thức trên cùng IP. Với ProxyVN, mỗi proxy hỗ trợ cả HTTP và SOCKS5, nên chọn cổng HTTP cho Insomnia là đơn giản nhất. Một cách khác là chạy phần mềm chuyển đổi cục bộ nhận HTTP rồi gửi tiếp qua SOCKS5, nhưng thêm một lớp thì thêm một chỗ có thể hỏng.
Xử lý chứng chỉ khi dùng Insomnia proxy
Chứng chỉ là nguyên nhân thứ hai sau xác thực khiến yêu cầu qua proxy thất bại, đặc biệt trong mạng công ty.
Proxy công ty kiểm tra HTTPS
Một số công ty dùng proxy giải mã HTTPS để lọc nội dung. Proxy đưa ra chứng chỉ do chính công ty ký. Máy công ty thường đã tin chứng chỉ này, nhưng Insomnia có thể dùng kho chứng chỉ riêng và báo lỗi. Cách xử lý đúng là thêm chứng chỉ gốc của công ty vào cấu hình chứng chỉ của Insomnia theo hướng dẫn của bộ phận IT.
Tuỳ chọn tắt kiểm tra chứng chỉ
Insomnia có tuỳ chọn tắt kiểm tra chứng chỉ trong Preferences. Chỉ dùng tạm thời khi gỡ lỗi API nội bộ dùng chứng chỉ tự ký. Tắt kiểm tra chứng chỉ khi gọi API thật trên Internet mở ra rủi ro bị đọc trộm dữ liệu. Bài kết nối của bạn không phải là kết nối riêng tư giải thích vì sao kiểm tra chứng chỉ quan trọng.
Chứng chỉ máy khách
Một số API yêu cầu chứng chỉ máy khách để xác thực. Insomnia cho cấu hình chứng chỉ máy khách theo từng tên miền. Phần này độc lập với proxy, nhưng khi đi qua proxy giải mã HTTPS, chứng chỉ máy khách có thể không tới được API. Trường hợp đó cần thêm API vào danh sách No proxy hoặc nhờ IT cấu hình ngoại lệ.
Thử API theo vùng bằng Insomnia proxy
Đây là nhu cầu phổ biến của lập trình viên làm sản phẩm phục vụ nhiều thị trường.

Thử API theo vùng IP
Chuẩn bị nhiều proxy theo vùng
Mỗi vùng cần kiểm tra một proxy, ví dụ IP Hà Nội, IP TP.HCM, IP Mỹ. Ghi lại từng proxy theo tên vùng để đổi nhanh.
Dùng biến môi trường của Insomnia
Insomnia có môi trường (Environment) chứa biến. Tạo biến proxy_url cho từng môi trường, mỗi môi trường một vùng. Khi đổi môi trường, đổi luôn proxy trong Preferences theo biến tương ứng. Cách này giúp không phải gõ lại địa chỉ mỗi lần.
So sánh phản hồi
Gửi cùng một yêu cầu qua từng proxy, lưu phản hồi, so sánh các trường như quốc gia, tiền tệ, ngôn ngữ, danh sách sản phẩm. Nếu API dựa vào IP để xác định vùng, phản hồi sẽ khác nhau. Nếu giống hệt, API dựa vào tham số hoặc header khác như Accept-Language.
Lưu ý về độ chính xác vị trí IP
Cơ sở dữ liệu vị trí IP không phải lúc nào cũng chính xác tới cấp tỉnh. Một IP có thể bị báo ở Hà Nội dù thực tế ở nơi khác. Khi kết quả bất thường, kiểm tra vị trí IP ở nhiều nguồn trước khi kết luận API có lỗi. Nếu cần IP Việt Nam theo nhà mạng để thử API, anh em có thể mua proxy tại ProxyVN.
Dùng Insomnia proxy cùng mitmproxy để gỡ lỗi
Khi cần xem chi tiết từng byte Insomnia gửi đi, kết hợp với mitmproxy chạy ở máy là cách hiệu quả.
Cấu hình
Chạy mitmproxy ở cổng 8080 trên máy. Trong Insomnia, đặt HTTP Proxy và HTTPS Proxy là http://127.0.0.1:8080. Cài chứng chỉ của mitmproxy cho Insomnia hoặc tạm tắt kiểm tra chứng chỉ trong lúc gỡ lỗi. Cách cài mitmproxy và chứng chỉ có trong bài mitmproxy là gì.
Đi tiếp qua proxy mua
Chạy mitmproxy ở chế độ upstream trỏ tới proxy mua. Insomnia gửi tới mitmproxy, mitmproxy ghi lại rồi gửi tiếp qua proxy mua. Anh em vừa thấy chi tiết yêu cầu, vừa thấy phản hồi của proxy mua khi có lỗi.
Tắt sau khi xong
Nhớ đổi lại cấu hình proxy trong Insomnia khi tắt mitmproxy. Proxy trỏ về 127.0.0.1 mà không có gì lắng nghe sẽ khiến mọi yêu cầu báo lỗi kết nối bị từ chối.
Lỗi thường gặp với Insomnia proxy và cách sửa
Hiện tượng |
Nguyên nhân khả dĩ |
Cách sửa |
|---|---|---|
Mọi yêu cầu báo không kết nối được |
Sai host, cổng, proxy chết |
Kiểm tra proxy bằng curl, kiểm tra hạn dùng |
Báo 407 |
Thiếu hoặc sai xác thực |
Thêm tài khoản vào địa chỉ, mã hoá ký tự đặc biệt |
Yêu cầu tới localhost bị lỗi |
Chưa khai báo No proxy |
Thêm localhost, 127.0.0.1 vào No proxy |
Lỗi chứng chỉ khi qua proxy công ty |
Proxy giải mã HTTPS |
Thêm chứng chỉ gốc công ty |
Yêu cầu HTTPS không qua proxy |
Chưa điền ô HTTPS Proxy |
Điền cùng giá trị với ô HTTP |
Kết quả vẫn là IP thật |
Công tắc proxy chưa bật |
Bật Enable proxy, gửi lại |
Lỗi khi dùng https:// cho địa chỉ proxy |
Proxy không nhận TLS |
Đổi thành http:// |
Để thử proxy độc lập với Insomnia, bài cURL proxy là gì có các lệnh kiểm tra nhanh.
Insomnia proxy khi gọi GraphQL, gRPC và WebSocket
Insomnia không chỉ gửi yêu cầu REST. Với các loại giao thức khác, cách đi qua proxy có vài điểm cần lưu ý.
GraphQL
Yêu cầu GraphQL thực chất là yêu cầu HTTP POST tới một địa chỉ duy nhất, nên đi qua proxy y như REST. Cấu hình proxy trong Preferences áp dụng luôn. Điểm cần chú ý là truy vấn introspection để lấy lược đồ cũng đi qua proxy, nếu proxy chậm thì việc tải lược đồ mất thời gian hơn.
gRPC
gRPC chạy trên HTTP/2 và thường dùng kết nối dài. Không phải proxy nào cũng xử lý tốt HTTP/2 qua đường hầm, và hỗ trợ proxy cho gRPC trong Insomnia phụ thuộc phiên bản. Khi gọi gRPC qua proxy thất bại trong khi REST chạy bình thường, thử gọi trực tiếp không qua proxy để khoanh vùng lỗi.
WebSocket
Kết nối WebSocket bắt đầu bằng yêu cầu HTTP nâng cấp, qua proxy sẽ mở đường hầm CONNECT rồi giữ kết nối lâu. Một số proxy đóng kết nối nhàn rỗi sau vài phút, làm WebSocket bị ngắt giữa chừng. Nếu gặp tình trạng này, kiểm tra thời gian chờ nhàn rỗi của proxy hoặc gửi tin nhắn giữ kết nối định kỳ.
Bảo mật thông tin khi dùng Insomnia proxy
Insomnia lưu cấu hình và có thể đồng bộ dữ liệu lên đám mây. Cần chú ý để không lộ thông tin proxy và khoá API.
Không đưa mật khẩu proxy vào bộ sưu tập chia sẻ
Thông tin proxy nằm trong Preferences, thường không nằm trong bộ sưu tập yêu cầu. Tuy vậy nếu anh em lưu proxy vào biến môi trường để đổi nhanh, biến đó có thể bị đồng bộ hoặc xuất ra khi chia sẻ. Dùng môi trường riêng tư cho biến chứa mật khẩu.
Chế độ lưu trữ cục bộ
Insomnia có lựa chọn lưu dữ liệu cục bộ thay vì đồng bộ đám mây. Với dự án có thông tin nhạy cảm, chọn lưu cục bộ hoặc kho Git do công ty quản lý.
Đổi mật khẩu proxy khi lộ
Nếu lỡ chia sẻ cấu hình chứa mật khẩu proxy, đổi mật khẩu trong trang quản lý của nhà cung cấp ngay. Proxy bị người khác dùng có thể làm IP bị đánh dấu xấu.
Insomnia proxy trong quy trình làm việc nhóm
Khi cả đội cùng dùng Insomnia để phát triển và kiểm thử API, cấu hình proxy không đồng nhất là nguồn gốc của nhiều tranh cãi kiểu "trên máy tôi chạy được". Thống nhất cách làm giúp đội tiết kiệm thời gian.
Ghi lại cấu hình proxy chuẩn của đội
Lập một tài liệu ngắn ghi rõ: khi làm việc ở văn phòng dùng proxy nào, khi làm ở nhà có cần proxy không, danh sách No proxy gồm những tên miền nội bộ nào. Thành viên mới chỉ cần làm theo, không phải hỏi lại. Tài liệu cũng ghi rõ nơi lấy chứng chỉ gốc của công ty nếu mạng có kiểm tra HTTPS, vì đây là chỗ người mới hay vướng nhất.
Tách môi trường theo mục đích
Tạo các môi trường riêng cho phát triển, kiểm thử, kiểm tra theo vùng. Môi trường kiểm tra theo vùng chứa biến proxy cho từng vùng. Môi trường phát triển không dùng proxy để gọi API chạy ở máy cục bộ. Khi chuyển công việc, chuyển môi trường và đổi cấu hình proxy tương ứng. Cách tổ chức này giúp tránh trường hợp quên tắt proxy rồi thắc mắc vì sao API cục bộ không trả lời.
Ghi kèm IP khi báo lỗi
Khi báo một lỗi API liên quan tới vùng, ghi rõ IP đã dùng, thời điểm, môi trường. Người sửa lỗi có thể tái hiện chính xác bằng cùng proxy. Thiếu thông tin này, lỗi theo vùng thường bị đóng với lý do "không tái hiện được".
Dùng chung proxy hay mỗi người một proxy
Với việc kiểm tra theo vùng thỉnh thoảng, đội có thể dùng chung một nhóm proxy xoay. Với việc gọi API của bên thứ ba có giới hạn tần suất theo IP, mỗi người nên có proxy riêng để không làm nhau bị chặn. Bài 1 proxy chạy được bao nhiêu luồng giúp ước lượng số người dùng chung hợp lý.
Từ Insomnia sang script: tái hiện yêu cầu qua proxy
Insomnia thường là bước khám phá. Sau khi gọi API thành công, anh em chuyển sang viết script để tự động hoá. Giữ nguyên cách đi qua proxy giữa hai bước giúp tránh bất ngờ.
Xuất yêu cầu thành lệnh curl
Insomnia cho sao chép yêu cầu dưới dạng lệnh curl. Thêm tham số -x với địa chỉ proxy để chạy cùng yêu cầu qua cùng proxy từ dòng lệnh. Nếu curl chạy được còn script lỗi, vấn đề nằm ở cách script cấu hình proxy chứ không phải ở API.
Chuyển sang Python requests
Khi viết bằng Python, truyền proxies với cùng địa chỉ đã dùng trong Insomnia. Lưu ý mã hoá ký tự đặc biệt trong mật khẩu giống như khi điền vào Insomnia. Các lỗi hay gặp ở bước này được tổng hợp trong bài requests.exceptions.ProxyError.
Chuyển sang Node.js
Với Node.js, thư viện như axios cần cấu hình proxy riêng hoặc dùng agent hỗ trợ proxy. Bài axios proxy hướng dẫn chi tiết. Khi gặp lỗi đường hầm, bài tunneling socket could not be established giải thích cách đọc thông báo.
Giữ cùng header
API có thể phản hồi khác nhau tuỳ header như User-Agent, Accept-Language. Khi chuyển từ Insomnia sang script, sao chép đầy đủ header để kết quả giống nhau. Khác biệt header thường bị nhầm là khác biệt do proxy.
Đo hiệu năng API khi đi qua Insomnia proxy
Proxy thêm một chặng vào đường đi, nên thời gian phản hồi luôn tăng. Biết tăng bao nhiêu giúp đánh giá proxy có phù hợp không.
Đọc thẻ Timeline
Thẻ Timeline hiển thị thời gian từng giai đoạn: phân giải tên, kết nối, bắt tay TLS, chờ phản hồi, nhận dữ liệu. So sánh khi bật và tắt proxy để thấy proxy thêm bao nhiêu thời gian ở giai đoạn kết nối.
Chọn proxy gần máy chủ API
Proxy ở gần máy chủ API cho độ trễ thấp. Với API đặt tại Việt Nam, proxy Việt Nam cho kết quả tốt nhất. Bài test ping khi mua proxy hướng dẫn đo độ trễ trước khi chọn.
Không kết luận API chậm khi chưa so sánh
Khi thấy API chậm qua proxy, gửi cùng yêu cầu không qua proxy để so sánh. Nếu không proxy vẫn chậm, vấn đề ở API. Nếu chỉ chậm khi qua proxy, đổi proxy khác hoặc kiểm tra bài proxy bị chậm để tìm nguyên nhân.
Câu hỏi thường gặp về Insomnia proxy
Insomnia có tự dùng proxy của hệ điều hành không
Tuỳ phiên bản và cách cài đặt, Insomnia có thể đọc biến môi trường HTTP_PROXY, HTTPS_PROXY. Để chủ động, nên cấu hình trực tiếp trong Preferences thay vì phụ thuộc biến hệ thống.
Có đặt proxy riêng cho từng yêu cầu được không
Cấu hình proxy trong Preferences áp dụng chung. Muốn đổi proxy theo yêu cầu, dùng môi trường và đổi cấu hình khi chuyển môi trường, hoặc dùng công cụ dòng lệnh như curl cho từng trường hợp đặc biệt.
Insomnia có dùng được proxy xoay không
Có. Proxy xoay chỉ là một địa chỉ proxy, phía sau đổi IP theo chu kỳ. Lưu ý nếu API dùng phiên đăng nhập, đổi IP giữa chừng có thể làm phiên bị huỷ.
Insomnia và Postman nên chọn công cụ nào khi làm việc với proxy
Cả hai đều cấu hình proxy được. Chọn theo thói quen của đội. Nếu cần mã nguồn mở và làm việc không đăng nhập, Insomnia phù hợp hơn.
Tổng kết
Insomnia proxy giúp gửi yêu cầu API qua proxy công ty, proxy mua hay công cụ gỡ lỗi. Bật proxy trong Preferences, điền địa chỉ dạng http://, khai báo No proxy, mã hoá mật khẩu và xử lý chứng chỉ đúng cách. Cần proxy Việt Nam để thử API theo vùng, anh em liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để được tư vấn.