Quay lại blog

Cách cấu hình proxy trong PyCharm, IntelliJ IDEA và WebStorm: hướng dẫn đầy đủ cho lập trình viên

Hướng dẫn chi tiết về cách cấu hình proxy trong JetBrains IDE - PyCharm, IntelliJ IDEA, WebStorm và các công cụ khác. Vượt qua các hạn chế, cài đặt plugin và tải xuống các phụ thuộc mà không bị giới hạn.

📅21 tháng 7, 2026
```html

Nếu các plugin trong JetBrains IDE không được cài đặt, Maven hoặc pip không thể tải xuống các phụ thuộc, và Marketplace không mở được — rất có thể vấn đề nằm ở các hạn chế mạng. Proxy giải quyết vấn đề này chỉ trong vài phút. Trong bài viết này, chúng ta sẽ xem xét tất cả các cách cấu hình: thông qua giao diện tích hợp của IDE, thông qua các biến hệ thống và thông qua các tệp cấu hình — cho PyCharm, IntelliJ IDEA, WebStorm, GoLand và các sản phẩm khác của JetBrains.

Tại sao nhà phát triển cần proxy trong IDE

JetBrains IDE thường xuyên truy cập mạng: tải xuống các plugin từ Marketplace, cập nhật chỉ mục, kéo các phụ thuộc qua Maven Central, PyPI, npm và các kho khác, kiểm tra giấy phép, đồng bộ hóa cài đặt qua JetBrains Account. Nếu bất kỳ yêu cầu nào trong số này bị chặn — công việc sẽ chậm lại hoặc hoàn toàn dừng lại.

Dưới đây là những tình huống cụ thể mà không có proxy sẽ không thể giải quyết:

  • Mạng doanh nghiệp với tường lửa. Nhiều công ty chỉ cho phép lưu lượng truy cập bên ngoài thông qua máy chủ proxy doanh nghiệp. Nếu không cấu hình trong IDE, các plugin sẽ không được cài đặt và các phụ thuộc sẽ không được tải xuống.
  • Khóa địa lý. Một số kho và CDN bị giới hạn theo địa lý. Proxy với vị trí cần thiết sẽ gỡ bỏ hạn chế này.
  • Làm việc từ quốc gia có internet hạn chế. JetBrains Marketplace, GitHub Packages, Maven Central có thể không khả dụng trực tiếp.
  • Phát triển và kiểm tra ứng dụng mạng. Cần định hướng lưu lượng IDE qua một nút nhất định để kiểm tra hành vi của ứng dụng từ một khu vực khác.
  • Bảo mật trong các mạng công cộng. Khi làm việc từ quán cà phê hoặc không gian làm việc chung, proxy mã hóa lưu lượng IDE và bảo vệ token và khóa khỏi việc bị đánh cắp.
  • Vượt qua các hạn chế trừng phạt. Sau năm 2022, một số kho và dịch vụ bên ngoài đã áp dụng hạn chế theo IP — proxy cho phép tiếp tục làm việc mà không cần thay đổi công cụ.

Khác với trình duyệt, nơi mà proxy được cấu hình một lần và hoạt động toàn cầu, trong JetBrains IDE, proxy cần được cấu hình riêng biệt — và đôi khi ngay lập tức ở nhiều nơi: trong chính IDE, trong trình quản lý phụ thuộc và trong trình thông dịch ngôn ngữ. Chúng ta sẽ xem xét từng cấp độ theo thứ tự.

Loại proxy nào nên chọn cho JetBrains

JetBrains IDE hỗ trợ ba loại proxy: HTTP, HTTPS và SOCKS5. Đối với hầu hết các nhiệm vụ của nhà phát triển, proxy HTTP/HTTPS sẽ phù hợp — chúng hoạt động một cách minh bạch với tất cả các yêu cầu của IDE, Maven, Gradle và pip. SOCKS5 cung cấp nhiều tính linh hoạt hơn và hoạt động ở cấp độ TCP, điều này hữu ích cho các giao thức không chuẩn.

Loại proxy Hỗ trợ trong IDE Phù hợp cho Đặc điểm
HTTP/HTTPS ✅ Tích hợp Plugin, phụ thuộc, giấy phép Dễ cấu hình nhất
SOCKS5 ✅ Tích hợp Bất kỳ kết nối TCP nào Hỗ trợ xác thực
Tệp PAC ✅ Qua cài đặt hệ thống Mạng doanh nghiệp Định tuyến linh hoạt
Proxy hệ thống ✅ Tự động xác định Khi đã được cấu hình trong hệ điều hành Không cần cấu hình thêm

Nếu bạn đang làm việc với proxy doanh nghiệp — rất có thể nó là HTTP/HTTPS với xác thực bằng tên đăng nhập và mật khẩu. Nếu bạn đang kết nối dịch vụ proxy bên ngoài để vượt qua các hạn chế, hãy chú ý đến proxy trung tâm dữ liệu — chúng cung cấp tốc độ cao và độ ổn định của kết nối, điều này rất quan trọng khi tải xuống các phụ thuộc và chỉ mục lớn.

Cấu hình proxy qua giao diện IDE (HTTP/HTTPS)

Đây là cách đơn giản nhất và được khuyến nghị. Các cài đặt sẽ được áp dụng cho tất cả các yêu cầu mạng của IDE: Marketplace, cập nhật, kiểm tra giấy phép, đồng bộ hóa plugin. Hướng dẫn là giống nhau cho PyCharm, IntelliJ IDEA, WebStorm, GoLand, Rider, CLion và các sản phẩm khác trong dòng sản phẩm.

Bước 1. Mở cài đặt IDE

Trên Windows và Linux: File → Settings (hoặc Ctrl+Alt+S).
Trên macOS: PyCharm → Preferences (hoặc Cmd+,).

Bước 2. Tìm phần proxy

Trong bảng điều khiển bên trái của cài đặt, hãy đi theo đường dẫn: Appearance & Behavior → System Settings → HTTP Proxy. Hoặc bạn chỉ cần bắt đầu nhập từ proxy vào thanh tìm kiếm cài đặt — IDE sẽ ngay lập tức hiển thị phần cần thiết.

Bước 3. Chọn loại proxy và điền thông tin

Trong phần HTTP Proxy, bạn sẽ thấy ba tùy chọn:

  • No proxy — kết nối trực tiếp (mặc định).
  • Auto-detect proxy settings — IDE sẽ lấy cài đặt từ hệ điều hành.
  • Manual proxy configuration — cấu hình thủ công. Chọn tùy chọn này.

Khi chọn Manual proxy configuration, hãy điền các trường:

  • Host name — Địa chỉ IP hoặc tên miền của máy chủ proxy. Ví dụ: proxy.example.com hoặc 192.168.1.100.
  • Port number — cổng proxy. Các giá trị tiêu chuẩn: 8080, 3128, 8888.
  • No proxy for — các máy chủ cần đi trực tiếp (không qua proxy). Thường thì thêm localhost, 127.0.0.1, các tên miền nội bộ của công ty.
  • Proxy authentication — nếu proxy yêu cầu tên đăng nhập và mật khẩu, hãy đánh dấu và nhập thông tin xác thực.

Bước 4. Kiểm tra kết nối

Nhấn nút Check connection và nhập bất kỳ URL nào — ví dụ, https://plugins.jetbrains.com. Nếu mọi thứ được cấu hình đúng, IDE sẽ hiển thị trạng thái Connection successful. Sau đó, nhấn OK và khởi động lại IDE.

💡 Mẹo

Cài đặt HTTP Proxy trong JetBrains IDE được lưu trữ toàn cầu — chúng áp dụng cho tất cả các dự án và được lưu giữa các lần khởi động lại. Nếu bạn cần chuyển đổi giữa các proxy cho các nhiệm vụ khác nhau, tiện hơn là sử dụng các biến môi trường hệ thống (được mô tả bên dưới).

Cấu hình proxy SOCKS5 trong JetBrains IDE

SOCKS5 là một giao thức linh hoạt hơn, hoạt động không chỉ với HTTP/HTTPS mà còn với bất kỳ kết nối TCP nào. Điều này hữu ích nếu nhà cung cấp proxy của bạn cung cấp SOCKS5, hoặc nếu bạn đang sử dụng đường hầm SSH.

Trong giao diện JetBrains IDE, phần SOCKS nằm ở đó: Appearance & Behavior → System Settings → HTTP Proxy. Trong khối Manual proxy configuration, hãy chuyển nút radio từ HTTP sang SOCKS.

Điền các trường tương tự như proxy HTTP:

  • Host name — địa chỉ của máy chủ SOCKS5.
  • Port number — cổng (thường là 1080 hoặc 1081).
  • Proxy authentication — tên đăng nhập và mật khẩu, nếu cần.

Một điểm quan trọng: khách hàng SOCKS tích hợp trong JetBrains IDE hoạt động ở cấp độ JVM và chỉ chặn các kết nối mà IDE thiết lập trực tiếp qua Java. Các quy trình bên ngoài — Maven Wrapper, Gradle Daemon, pip, npm — được khởi chạy như các quy trình riêng biệt và không kế thừa các cài đặt proxy từ giao diện IDE. Đối với chúng, cần có một cấu hình riêng (xem các phần dưới đây).

Cấu hình qua các tham số JVM (vmoptions)

Nếu các cài đặt qua giao diện không hoạt động (ví dụ, trong một số phiên bản IDE hoặc khi sử dụng các plugin không chuẩn), bạn có thể chỉ định proxy trực tiếp qua các tham số JVM. Đây là một cách đáng tin cậy ở cấp độ thấp, đảm bảo được áp dụng cho tất cả các kết nối JVM.

Cách mở tệp vmoptions

Trong menu IDE, hãy đi tới: Help → Edit Custom VM Options.... Tệp pycharm64.vmoptions (hoặc idea64.vmoptions cho IntelliJ IDEA) sẽ mở ra trong thư mục cài đặt người dùng.

Thêm các dòng sau vào cuối tệp cho proxy HTTP:

-Dhttp.proxyHost=your.proxy.host
-Dhttp.proxyPort=8080
-Dhttps.proxyHost=your.proxy.host
-Dhttps.proxyPort=8080
-Dhttp.proxyUser=username
-Dhttp.proxyPassword=password
-Dhttps.proxyUser=username
-Dhttps.proxyPassword=password
-Dhttp.nonProxyHosts=localhost|127.0.0.1|*.local

Đối với proxy SOCKS5, hãy sử dụng các tham số khác:

-DsocksProxyHost=your.socks.host
-DsocksProxyPort=1080
-DsocksProxyVersion=5

Sau khi lưu tệp, hãy khởi động lại IDE. Các tham số sẽ được áp dụng cho tất cả các kết nối JVM, bao gồm tải chỉ mục, làm việc với các plugin và khách hàng Git tích hợp.

⚠️ Quan trọng

Nếu mật khẩu có ký tự đặc biệt (@, #, %), chúng cần được mã hóa trong mã URL. Ví dụ, @%40. Nếu không, JVM sẽ phân tích sai các tham số và proxy sẽ không hoạt động.

Proxy qua các biến môi trường hệ thống

Cách này đặc biệt thuận tiện trên Linux và macOS, cũng như trong các môi trường CI/CD. Các biến môi trường không chỉ được kế thừa bởi JVM mà còn bởi các quy trình con — tức là Maven, Gradle, pip, npm cũng sẽ tự động nhận chúng.

Các biến tiêu chuẩn cho proxy HTTP:

export HTTP_PROXY=http://username:[email protected]:8080
export HTTPS_PROXY=http://username:[email protected]:8080
export NO_PROXY=localhost,127.0.0.1,::1

Thêm các dòng này vào ~/.bashrc, ~/.zshrc hoặc ~/.profile tùy thuộc vào shell của bạn. Sau đó, khởi động lại terminal và khởi động IDE từ đó — nó sẽ nhận các biến môi trường.

Trên Windows, các biến được đặt qua giao diện hệ thống:

  1. Mở Control Panel → System → Advanced system settings → Environment Variables.
  2. Trong khối "User variables", nhấn Create.
  3. Thêm các biến HTTP_PROXYHTTPS_PROXY với giá trị http://username:[email protected]:8080.
  4. Khởi động lại IDE.

Lưu ý: JetBrains IDE trên Windows được khởi động như một quy trình riêng biệt thông qua launcher, và các biến môi trường được đặt trong phiên terminal hiện tại có thể không được chuyển vào IDE. Đặt chúng qua giao diện hệ thống hoặc qua tệp vmoptions là đáng tin cậy hơn.

Proxy cho Maven và Gradle trong IntelliJ IDEA

Maven và Gradle là các công cụ riêng biệt với các tệp cấu hình riêng. Ngay cả khi proxy được cấu hình trong giao diện IDE, Maven Wrapper và Gradle Daemon có thể bỏ qua các cài đặt này vì chúng được khởi chạy như các quy trình JVM độc lập.

Proxy cho Maven

Mở tệp ~/.m2/settings.xml (tạo nó nếu không tồn tại) và thêm phần <proxies>:

<settings>
  <proxies>
    <proxy>
      <id>main-proxy</id>
      <active>true</active>
      <protocol>https</protocol>
      <host>proxy.example.com</host>
      <port>8080</port>
      <username>your_username</username>
      <password>your_password</password>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
</settings>

Nếu bạn cần cấu hình proxy riêng cho HTTP và HTTPS, hãy thêm hai khối <proxy> với các idprotocol khác nhau.

Proxy cho Gradle

Đối với Gradle, các cài đặt proxy được chỉ định trong tệp ~/.gradle/gradle.properties (toàn cầu) hoặc trong tệp gradle.properties trong thư mục gốc của dự án (cho dự án cụ thể):

systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=your_username
systemProp.http.proxyPassword=your_password
systemProp.http.nonProxyHosts=localhost|127.0.0.1

systemProp.https.proxyHost=proxy.example.com
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=your_username
systemProp.https.proxyPassword=your_password

Sau khi lưu tệp, IntelliJ IDEA sẽ tự động nhận các cài đặt mới trong lần đồng bộ hóa Gradle tiếp theo. Nhấn nút Reload All Gradle Projects (biểu tượng làm mới trong bảng điều khiển Gradle bên phải) — và các phụ thuộc sẽ bắt đầu tải xuống qua proxy.

Proxy cho pip và conda trong PyCharm

PyCharm là IDE chính cho các nhà phát triển Python. Việc cài đặt gói qua pip và conda diễn ra thông qua các quy trình riêng biệt, không đọc các cài đặt proxy từ giao diện PyCharm. Đây là cách cấu hình proxy cho từng trình quản lý gói.

Proxy cho pip

Cách 1 — thông qua tham số dòng lệnh khi cài đặt gói:

pip install requests --proxy http://username:[email protected]:8080

Cách 2 — thông qua tệp cấu hình pip (được áp dụng liên tục). Mở hoặc tạo tệp:

  • Linux/macOS: ~/.config/pip/pip.conf
  • Windows: %APPDATA%\pip\pip.ini
[global]
proxy = http://username:[email protected]:8080

Cách 3 — thông qua các biến môi trường (hoạt động cho cả pip và các công cụ Python khác):

export HTTP_PROXY=http://username:[email protected]:8080
export HTTPS_PROXY=http://username:[email protected]:8080

Proxy cho conda

Conda sử dụng tệp cấu hình riêng .condarc. Mở nó trong thư mục chính và thêm:

proxy_servers:
  http: http://username:[email protected]:8080
  https: http://username:[email protected]:8080

Hoặc thực hiện lệnh trong terminal PyCharm:

conda config --set proxy_servers.http http://proxy.host:8080
conda config --set proxy_servers.https http://proxy.host:8080

Nếu bạn đang làm việc với các gương PyPI (ví dụ: gương Yandex hoặc Nexus doanh nghiệp), bạn có thể chuyển pip sang chỉ mục thay thế thay vì sử dụng proxy. Nhưng nếu gương cũng không khả dụng — proxy vẫn là giải pháp duy nhất. Để làm việc ổn định với PyPI, các proxy dân cư rất phù hợp — chúng trông giống như các yêu cầu của người dùng thông thường và không bị các nhà cung cấp CDN của PyPI chặn.

Các vấn đề thường gặp và cách giải quyết

Ngay cả khi được cấu hình đúng, đôi khi mọi thứ không diễn ra như mong đợi. Hãy cùng xem xét những vấn đề phổ biến nhất và cách khắc phục chúng.

Vấn đề 1: “Connection refused” hoặc “Unable to connect to proxy”

Nguyên nhân: địa chỉ, cổng không đúng hoặc proxy không khả dụng.
Giải pháp: kiểm tra địa chỉ và cổng của proxy. Hãy thử kết nối đến proxy qua curl trong terminal:

curl -x http://proxy.host:8080 https://plugins.jetbrains.com

Nếu curl cũng không kết nối được — vấn đề nằm ở chính proxy, không phải ở cài đặt IDE.

Vấn đề 2: Proxy đã được cấu hình, nhưng các plugin vẫn không được cài đặt

Nguyên nhân: IDE đã lưu cache các cài đặt cũ hoặc các cài đặt không áp dụng cho tất cả các thành phần.
Giải pháp:

  1. Đóng hoàn toàn IDE (đảm bảo rằng quy trình không bị treo ở nền).
  2. Xóa cache: File → Invalidate Caches → Invalidate and Restart.
  3. Kiểm tra xem trong tệp vmoptions có các tham số xung đột hay không.

Vấn đề 3: Lỗi SSL/TLS khi làm việc qua proxy

Nguyên nhân: proxy doanh nghiệp thực hiện kiểm tra SSL (MITM) và thay thế chứng chỉ. JVM không tin tưởng vào chứng chỉ bị thay thế.
Giải pháp: yêu cầu quản trị viên hệ thống cung cấp chứng chỉ gốc của CA doanh nghiệp và nhập nó vào Java KeyStore:

keytool -import -alias corporate-ca -keystore $JAVA_HOME/lib/security/cacerts \
  -file corporate-ca.crt -storepass changeit

Trong JetBrains IDE có công cụ tích hợp: Settings → Tools → Server Certificates — bạn có thể thêm chứng chỉ tin cậy qua GUI.

Vấn đề 4: Proxy có xác thực không nhận mật khẩu

Nguyên nhân: ký tự đặc biệt trong mật khẩu không được mã hóa, hoặc proxy sử dụng xác thực NTLM/Kerberos (proxy doanh nghiệp của Microsoft).
Giải pháp: đối với proxy NTLM, JVM hỗ trợ nó một cách tự nhiên, nhưng cần chỉ định các tham số bổ sung:

-Djdk.http.auth.tunneling.disabledSchemes=""
-Djdk.http.auth.proxying.disabledSchemes=""

Vấn đề 5: Git bên trong IDE không hoạt động qua proxy

Nguyên nhân: khách hàng Git tích hợp của JetBrains sử dụng Git hệ thống, không phải các kết nối JVM. Các cài đặt proxy từ IDE không ảnh hưởng đến nó.
Giải pháp: cấu hình proxy trực tiếp trong Git:

git config --global http.proxy http://username:[email protected]:8080
git config --global https.proxy http://username:[email protected]:8080
Triệu chứng Nguyên nhân có thể Cách khắc phục
Các plugin không được cài đặt Proxy không được cấu hình trong IDE Settings → HTTP Proxy
Maven không tải xuống các phụ thuộc Không có cài đặt trong settings.xml ~/.m2/settings.xml → proxies
pip không cài đặt các gói pip không đọc các cài đặt từ IDE pip.conf hoặc các biến ENV
Lỗi SSL Kiểm tra MITM trên proxy Nhập chứng chỉ doanh nghiệp
Git không hoạt động qua proxy Git không đọc các cài đặt JVM git config --global http.proxy
Gradle không đồng bộ Không có cài đặt trong gradle.properties ~/.gradle/gradle.properties

Kết luận

Cấu hình proxy trong JetBrains IDE không chỉ là một nút bấm, mà là nhiều cấp độ cấu hình. Điều quan trọng cần nhớ: chính IDE (plugin, giấy phép, Marketplace) được cấu hình qua Settings → HTTP Proxy hoặc qua các tham số JVM trong vmoptions. Các trình quản lý phụ thuộc — Maven, Gradle, pip, conda — yêu cầu cấu hình riêng trong các tệp cấu hình của chúng. Git bên trong IDE được cấu hình qua git config toàn cầu.

Nếu bạn sử dụng proxy để vượt qua các khóa địa lý hoặc hạn chế của mạng doanh nghiệp, điều quan trọng là chọn một máy chủ proxy ổn định và nhanh chóng. Để làm việc với các kho, Marketplace và tải xuống các phụ thuộc, các proxy trung tâm dữ liệu rất phù hợp — chúng cung cấp tốc độ cao và độ trễ tối thiểu, điều này rất quan trọng khi đồng bộ hóa các dự án lớn với hàng trăm phụ thuộc. Nếu cần tối đa hóa khả năng tương thích với các dịch vụ chặn IP máy chủ, hãy xem xét các proxy dân cư — chúng sử dụng các địa chỉ thực của người dùng và gần như không gây nghi ngờ cho các hệ thống bảo vệ CDN và kho.

```