21/12/2022 | Nhi Nguyen

Giới thiệu

Charles là một web proxy (HTTP Proxy/HTTP Monitor) cho phép lập trình viên có thể theo dõi toàn bộ thông tin HTTP và SSL/HTTPS giữa thiết bị như browser/mobile tới Internet, bao gồm request, response và HTTP headers (bao gồm cả cookie và caching).

Khi bạn lập trình một ứng dụng Android, thì có thể bạn sẽ phải làm rất nhiều đến việc liên kết đến với phía server như request các API. Và đây là một công cụ rất hữu ích để bạn có thể debug các request đó đã chính xác chưa mà không cần phải dùng tới công cụ logging như Logcat đôi khi khá tốn thời gian và có thể phải mất công sửa code.

Ở trong bài này proxyv6.net muốn giới thiệu với các bạn công cụ Charles và cách để có thể kết nối và debug với thiết bị Android.

Ứng dụng Charles hiện có trên cả 3 nền tảng Mac, Linux, Windows, các bạn có thể tải về tại địa chỉ: https://www.charlesproxy.com/download/. Phiên bản dùng thử thì chỉ có thể sử dụng được trong 30 phút, nếu bạn muốn sử dụng thêm sẽ phải khởi động lại ứng dụng. Ở trong bài viết này mình sẽ sử dụng Charles trên hệ điều hành Mac.

Cấu hình tạo Charles Proxy

  1. Mở Charles sau đó chọn Proxy -> Proxy Settings
  2. Trong tab Proxies, bạn nhập 8888 xong phần HTTP Proxy Port. Có nghĩa là nếu địa chỉ IP của máy bạn là 192.168.15.91 thì bạn sẽ thiết lập một proxy server ở địa chỉ 192.168.16.91:8888.

Sử dụng Charles Proxy để theo dõi network traffic trên Android

  1. Chọn Proxy -> Proxy Settings

Sử dụng Charles Proxy để theo dõi network traffic trên Android

  1. Click vào tab SSL Proxying và check vào Enable SSL Proxying.
  2. Ấn vào nút add để chỉ định tên domain muốn lắng nghe. Bạn có thể sử dụng wildcard ví dụ như *.mydomain.com hoặc một domain chính xác như api.mydomain.com đều được.

Sử dụng Charles Proxy để theo dõi network traffic trên Android

Cấu hình cho điện thoại

Xác định địa chỉ IP của máy bạn.

Để biết địa chỉ IP của máy bạn có thể vào Help -> Local IP addess trên toolbar của Charles

Sử dụng Charles Proxy để theo dõi network traffic trên Android

Hãy ghi lại địa chỉ IP này để dùng cho bước tiếp theo.

Cấu hình thiết bị Android để sử dụng Charles Proxy

Đầu tiên, bạn hãy chắc chắn điện thoại của bạn sử dụng chung mạng với máy tính.

  1. Vào Setting của địện thoại sau đó chọn WIfi.
  2. Nhấn và giữ vào tên mạng wifi bạn đang kết nối sau đó chọn Modify network
  3. Sau đó check vào ô Advanced Options và cuộn xuống phần Proxy.
  4. Nhấn vào phần proxy và chọn Manual
  5. Ở phần Proxy Host Name bạn nhập địa chỉ ip máy tính của bạn vừa lấy ở bước trước
  6. Phần Proxy port bạn nhập vào port mà bạn đã thiết lập ở bước Proxy Settings, do trước đó mình dùng 8888 nên ở đây nhập cổng đó vào.

Sử dụng Charles Proxy để theo dõi network traffic trên Android

  1. Nhấn Save
  2. Sau khi Save, bạn sẽ nhận được một pop-up thông báo có một kết nối từ điện thoại của bạn tới Charles như sau:

Sử dụng Charles Proxy để theo dõi network traffic trên Android

  1. Bạn click vào Allow để cho điện thoại của bạn có thể được thiết lập để kết nối tới Charles thông qua proxy.
  • Nếu bạn không thấy pop-up này, bạn có thể chắc chắn thiết bị của bạn đã được sử dụng proxy bằng cách vào Proxy -> Access Control Settings và thêm vào địa chỉ IP của máy điện thoại của bạn vào đó.

Sử dụng Charles Proxy để theo dõi network traffic trên Android

Cài đặt Charles SSL certificate

  1. Bạn vào trình duyệt trên điện thoại sau đó nhập địa chỉ chls.pro/ssl hoặc http://charlesproxy.com/getssl và download SSL certificate về.
  2. Sau khi download xong certificate, click vào để mở file đó. Android sẽ hiển thị mội dialog để bạn cài đặt file này, nhập tên chứng chỉ sau đó nhấn OK. Tên chứng chỉ bạn nhập gì cũng được, ở đây mình nhập luôn là Charles

Sử dụng Charles Proxy để theo dõi network traffic trên Android

Sau khi xong quá trình này là bạn đã có thể debug các request của bạn. Tuy nhiên cần chú ý là từ android N trở lên, bạn cần thêm phần config cho app của bạn để có thể sử dụng được SSL certificate được tạo ra bởi Charles proxy. Điều đó có nghĩa là bạn chỉ có thể sử dụng SSL proxy cho ứng dụng của bạn mà thôi. (Ở phiên bản thấp hơn, bạn có thể debug và lấy được cả request của các ứng dụng khác). Nếu bạn sử dụng android N trở lên thì hãy làm thêm bước sau đây:

Thêm Network Security Configuration cho android N

Bạn cần làm theo các bước như ở https://developer.android.com/training/articles/security-config cho ứng dụng của bạn:

  1. Tạo file xml có nội dung như sau:
<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>

 

  1. Lưu file.
  2. Thêm android:networkSecurityConfig vào file AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application 
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:networkSecurityConfig="@xml/network_security_config"  >
        ...
    </application>
</manifest>

 

Done, vậy là bạn đã hoàn tất quá trình cài đặt, giờ bạn có thể nhìn thấy được các traffic được ghi lại ở điện thoại của bạn.

Sau khi debug xong bạn hãy nhớ tắt setting proxy bằng cách chọn Proxy: None trong phần thiết lập wifi của điện thoại.

Bạn có thể tìm hiểu thêm các bài viết khác về các cách “Sử dụng Charles Proxy để theo dõi network traffic trên Android” bằng các bài viết khác ở chuyên mục này: “Công Nghệ”

Để có thể mua Proxy cho IPv6 bạn có thể mua tại website proxyv6.net.

Các bạn có thể tìm hiểu thêm tại Google

Tags: proxy , proxy ip4 , proxy ip6 ,

Bài viết khác

Cách thiết lập NordVPN extension trong Chrome

Cách thiết lập NordVPN extension trong Chrome

Trong thời đại kỹ thuật số, việc bảo mật thông tin cá nhân khi lướt web trở nên quan trọng hơn bao giờ hết. Với...
Xem thêm
NordVPN Chrome hỗ trợ bảo mật dữ liệu

NordVPN Chrome hỗ trợ bảo mật dữ liệu

NordVPN Chrome là một trong những tiện ích mở rộng phổ biến, giúp người dùng duyệt web an toàn và bảo mật hơn. Với khả...
Xem thêm
Adblock là gì? Hướng dẫn tắt Adblock trên máy tính

Adblock là gì? Hướng dẫn tắt Adblock trên máy tính

AdBlock là một công cụ hữu ích giúp chặn quảng cáo, nhưng đôi khi bạn cần vô hiệu hóa hoặc gỡ bỏ nó để hỗ...
Xem thêm
Sự khác biệt giữa Seo On Page và Off Page là gì? 

Sự khác biệt giữa Seo On Page và Off Page là gì? 

SEO On Page và Off Page là gì? Đây là hai khía cạnh quan trọng trong việc tối ưu hóa công cụ tìm kiếm (SEO)....
Xem thêm
Cách mua like facebook đơn giản bằng phần mềm Like3s

Cách mua like facebook đơn giản bằng phần mềm Like3s

Công cụ tự động tăng like facebook là giải pháp hữu hiệu cho các cá nhân, doanh nghiệp bán hàng trên nền tảng mạng xã...
Xem thêm

Buy Private Socks5 & HTTP proxies

Proxies for many purpose such as adsvertising, marketing, data crawl, ...

BUY PROXY V6 V4

Lựa chọn của người biên tập

Croxyproxy Instagram là gì? Cách sử dụng Croxy Proxy Instagram

Croxyproxy Instagram là gì? Cách sử dụng Croxy Proxy Instagram

Nội dungXác định địa chỉ IP của máy bạn.Cấu hình thiết bị Android để sử…
Xem thêm