返回博客

在PyCharm、IntelliJ IDEA和WebStorm中设置代理:开发者完整指南

详细指南:在JetBrains IDE(如PyCharm、IntelliJ IDEA、WebStorm等)中设置代理。绕过限制,安装插件,下载依赖项,无限制。

📅2026年7月21日
```html

如果 JetBrains IDE 中的插件无法安装,Maven 或 pip 无法下载依赖项,Marketplace 根本无法打开 — 很可能是网络限制的问题。代理可以在几分钟内解决这个问题。在本文中,我们将讨论所有的设置方法:通过 IDE 内置界面、通过系统变量和通过配置文件 — 适用于 PyCharm、IntelliJ IDEA、WebStorm、GoLand 和其他 JetBrains 产品。

开发者在 IDE 中使用代理的原因

JetBrains IDE 积极访问网络:从 Marketplace 下载插件,更新索引,通过 Maven Central、PyPI、npm 和其他存储库拉取依赖项,检查许可证,通过 JetBrains 账户同步设置。如果这些请求中的任何一个被阻止 — 工作将变得缓慢或完全停止。

以下是一些具体情况,您无法避免使用代理:

  • 具有防火墙的企业网络。 许多公司仅通过企业代理服务器允许外部流量。在 IDE 中没有其设置,插件将无法安装,依赖项将无法下载。
  • 地理限制。 部分存储库和 CDN 在地理上受到限制。具有所需位置的代理可以解除此限制。
  • 在互联网受限的国家工作。 JetBrains Marketplace、GitHub Packages、Maven Central 可能无法直接访问。
  • 开发和测试网络应用程序。 需要将 IDE 的流量定向到特定节点,以检查来自其他地区的应用程序行为。
  • 公共网络的安全性。 在咖啡馆或共享办公空间工作时,代理加密 IDE 的流量,并保护令牌和密钥免受拦截。
  • 绕过制裁限制。 2022 年后,一些外部存储库和服务实施了基于 IP 的限制 — 代理允许继续工作而无需更换工具。

与浏览器不同,浏览器中代理设置一次即可全局使用,在 JetBrains IDE 中,代理需要单独设置 — 有时需要在多个地方设置:在 IDE 本身、依赖管理器和语言解释器中。我们将逐一讨论每个级别。

为 JetBrains 选择哪种类型的代理

JetBrains IDE 支持三种类型的代理:HTTP、HTTPS 和 SOCKS5。对于开发者的大多数任务,HTTP/HTTPS 代理是合适的 — 它们透明地处理所有 IDE、Maven、Gradle 和 pip 的请求。SOCKS5 提供更多灵活性,并在 TCP 层工作,这对非标准协议很有用。

代理类型 在 IDE 中的支持 适合于 特点
HTTP/HTTPS ✅ 原生支持 插件、依赖项、许可证 最容易设置
SOCKS5 ✅ 原生支持 任何 TCP 连接 支持身份验证
PAC 文件 ✅ 通过系统设置 企业网络 灵活的路由
系统代理 ✅ 自动检测 当已在操作系统中设置时 无需额外设置

如果您使用企业代理 — 很可能是带有用户名和密码身份验证的 HTTP/HTTPS 代理。如果您连接外部代理服务以绕过阻塞,请注意 数据中心代理 — 它们提供高速和稳定的连接,这在下载大型依赖项和索引时至关重要。

通过 IDE 界面设置代理 (HTTP/HTTPS)

这是最简单和推荐的方法。设置将应用于 IDE 的所有网络请求:Marketplace、更新、许可证检查、插件同步。该说明适用于 PyCharm、IntelliJ IDEA、WebStorm、GoLand、Rider、CLion 和其他产品。

步骤 1. 打开 IDE 设置

在 Windows 和 Linux 上: File → Settings (或 Ctrl+Alt+S).
在 macOS 上: PyCharm → Preferences (或 Cmd+,).

步骤 2. 找到代理部分

在左侧设置面板中,按照路径转到: Appearance & Behavior → System Settings → HTTP Proxy. 或者只需开始在设置搜索框中输入 proxy — IDE 会立即显示所需部分。

步骤 3. 选择代理类型并填写信息

在 HTTP 代理部分,您将看到三个选项:

  • 无代理 — 直接连接(默认)。
  • 自动检测代理设置 — IDE 将从操作系统获取设置。
  • 手动代理配置 — 手动设置。选择此选项。

选择 手动代理配置 时,请填写以下字段:

  • 主机名 — 代理服务器的 IP 地址或域名。例如: proxy.example.com192.168.1.100.
  • 端口号 — 代理的端口。标准值: 8080, 3128, 8888.
  • 无代理的主机 — 应该直接连接的主机(不通过代理)。通常这里添加 localhost, 127.0.0.1, 公司内部域名。
  • 代理身份验证 — 如果代理需要用户名和密码,请勾选并输入凭据。

步骤 4. 检查连接

点击 检查连接 按钮并输入任何 URL — 例如, https://plugins.jetbrains.com. 如果一切设置正确,IDE 将显示状态 连接成功. 然后点击 确定 并重启 IDE。

💡 提示

JetBrains IDE 中的 HTTP 代理设置是全局存储的 — 它们适用于所有项目并在重启之间保持。 如果您需要在不同任务之间切换代理,使用系统环境变量更方便(如下所述)。

在 JetBrains IDE 中设置 SOCKS5 代理

SOCKS5 是一种更灵活的协议,不仅适用于 HTTP/HTTPS,还适用于任何 TCP 连接。如果您的代理提供商提供 SOCKS5,或者您使用 SSH 隧道,这将非常有用。

在 JetBrains IDE 界面中,SOCKS 部分位于同一位置: Appearance & Behavior → System Settings → HTTP Proxy. 在 手动代理配置 部分,将单选按钮从 HTTP 切换到 SOCKS.

请类似于 HTTP 代理填写字段:

  • 主机名 — SOCKS5 服务器的地址。
  • 端口号 — 端口(通常 10801081)。
  • 代理身份验证 — 如果需要,输入用户名和密码。

重要提示:JetBrains IDE 的内置 SOCKS 客户端在 JVM 层工作,仅拦截 IDE 直接通过 Java 建立的连接。外部进程 — Maven Wrapper、Gradle Daemon、pip、npm — 作为独立进程启动,并不继承 IDE 界面的代理设置。它们需要单独的设置(见下文部分)。

通过 JVM 参数设置 (vmoptions)

如果通过界面设置无效(例如,在某些版本的 IDE 中或使用非标准插件时),可以通过 JVM 参数直接设置代理。这是一种可靠的低级方法,确保应用于所有 JVM 连接。

如何打开 vmoptions 文件

在 IDE 菜单中,转到: Help → Edit Custom VM Options.... 将打开 pycharm64.vmoptions(或 idea64.vmoptions 对于 IntelliJ IDEA)在用户设置目录中。

在文件末尾添加以下行以设置 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

对于 SOCKS5 代理,请使用其他参数:

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

保存文件后,重启 IDE。参数将应用于所有 JVM 连接,包括索引加载、插件工作和内置 Git 客户端。

⚠️ 重要

如果密码中包含特殊字符(@, #, %),需要在 URL 编码中转义。例如, @%40. 否则 JVM 将无法正确解析参数,代理将无法工作。

通过系统环境变量设置代理

这种方法在 Linux 和 macOS 上特别方便,也适用于 CI/CD 环境。环境变量不仅被 JVM 继承,还被子进程继承 — 也就是说 Maven、Gradle、pip、npm 也会自动获取它们。

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

将这些行添加到 ~/.bashrc, ~/.zshrc~/.profile,具体取决于您的 shell。之后重启终端并从中启动 IDE — 它将获取环境变量。

在 Windows 上,通过系统界面设置变量:

  1. 打开 控制面板 → 系统 → 高级系统设置 → 环境变量.
  2. 在“用户变量”部分,点击 新建.
  3. 添加变量 HTTP_PROXYHTTPS_PROXY,值为 http://username:[email protected]:8080.
  4. 重启 IDE.

请注意:JetBrains IDE 在 Windows 上作为独立进程通过启动器启动,当前终端会话中设置的环境变量可能不会传递到 IDE。通过系统界面或 vmoptions 文件设置它们更可靠。

在 IntelliJ IDEA 中为 Maven 和 Gradle 设置代理

Maven 和 Gradle 是具有自己配置文件的独立工具。即使在 IDE 界面中设置了代理,Maven Wrapper 和 Gradle Daemon 也可能忽略这些设置,因为它们作为独立的 JVM 进程启动。

为 Maven 设置代理

打开文件 ~/.m2/settings.xml(如果不存在,请创建它)并添加 <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>

如果您需要为 HTTP 和 HTTPS 单独设置代理,请添加两个具有不同 idprotocol<proxy> 块。

为 Gradle 设置代理

对于 Gradle,代理设置在文件 ~/.gradle/gradle.properties(全局)或项目根目录下的 gradle.properties(特定项目)中设置:

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

保存文件后,IntelliJ IDEA 将在下次同步 Gradle 项目时自动获取新设置。点击 重新加载所有 Gradle 项目 按钮(在右侧 Gradle 面板中的刷新图标) — 依赖项将通过代理开始下载。

在 PyCharm 中为 pip 和 conda 设置代理

PyCharm 是 Python 开发者的主要 IDE。通过 pip 和 conda 安装包是通过独立进程进行的,这些进程无法读取 PyCharm 界面的代理设置。以下是为每个包管理器设置代理的方法。

为 pip 设置代理

方法 1 — 在安装包时通过命令行参数:

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

方法 2 — 通过 pip 配置文件(持续适用)。打开或创建文件:

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

方法 3 — 通过环境变量(适用于 pip 和其他 Python 工具):

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

为 conda 设置代理

Conda 使用自己的配置文件 .condarc. 在主目录中打开它并添加:

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

或在 PyCharm 终端中执行命令:

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

如果您使用 PyPI 镜像(例如,Yandex 镜像或企业 Nexus),可以将 pip 切换到替代索引,而不是使用代理。但如果镜像也不可用 — 代理仍然是唯一的解决方案。对于与 PyPI 的稳定工作, 住宅代理 是很好的选择 — 它们看起来像普通用户请求,不会被 PyPI 的 CDN 提供商阻止。

常见问题及其解决方案

即使在正确设置的情况下,有时也会出现问题。我们将讨论最常见的问题及其解决方法。

问题 1: “连接被拒绝”或“无法连接到代理”

原因: 主机、端口不正确或代理不可用。
解决方案: 检查代理的地址和端口。尝试通过 curl 在终端连接代理:

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

如果 curl 也无法连接 — 问题出在代理本身,而不是 IDE 的设置。

问题 2: 代理已设置,但插件仍然无法安装

原因: IDE 缓存了旧设置或设置未应用于所有组件。
解决方案:

  1. 完全关闭 IDE(确保进程未在后台挂起)。
  2. 清除缓存: File → Invalidate Caches → Invalidate and Restart.
  3. 检查 vmoptions 文件中是否没有冲突的参数。

问题 3: 通过代理工作时出现 SSL/TLS 错误

原因: 企业代理执行 SSL 检查(MITM)并替换证书。JVM 不信任替换的证书。
解决方案: 请系统管理员提供企业 CA 的根证书,并将其导入 Java KeyStore:

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

在 JetBrains IDE 中有一个内置工具: Settings → Tools → Server Certificates — 可以通过 GUI 添加受信任的证书。

问题 4: 带身份验证的代理不接受密码

原因: 密码中的特殊字符未转义,或代理使用 NTLM/Kerberos 身份验证(Microsoft 企业代理)。
解决方案: 对于 NTLM 代理,JVM 原生支持,但需要设置额外参数:

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

问题 5: IDE 内的 Git 通过代理无法工作

原因: JetBrains 内置的 Git 客户端使用系统 Git,而不是 JVM 连接。IDE 中的代理设置对其没有影响。
解决方案: 直接在 Git 中设置代理:

git config --global http.proxy http://username:[email protected]:8080
git config --global https.proxy http://username:[email protected]:8080
症状 可能原因 解决方法
插件无法安装 IDE 中未设置代理 设置 → HTTP 代理
Maven 无法下载依赖项 settings.xml 中没有设置 ~/.m2/settings.xml → proxies
pip 无法安装包 pip 无法读取 IDE 设置 pip.conf 或 ENV 变量
SSL 错误 代理上的 MITM 检查 导入企业证书
Git 通过代理无法工作 Git 无法读取 JVM 设置 git config --global http.proxy
Gradle 无法同步 gradle.properties 中没有设置 ~/.gradle/gradle.properties

结论

在 JetBrains IDE 中设置代理不是一个按钮,而是多个配置级别。需要记住的主要事项是:IDE 本身(插件、许可证、Marketplace)通过 设置 → HTTP 代理 或通过 vmoptions 中的 JVM 参数进行设置。依赖管理器 — Maven、Gradle、pip、conda — 需要在其配置文件中单独设置。IDE 内的 Git 通过全局 git config 进行设置。

如果您使用代理来绕过地理限制或企业网络限制,选择一个稳定且快速的代理服务器非常重要。对于与存储库、Marketplace 的工作和下载依赖项, 数据中心代理 是很好的选择 — 它们提供高速和最低延迟,这在与数百个依赖项的大型项目同步时至关重要。如果需要最大兼容性以应对阻止服务器 IP 的服务,请考虑使用 住宅代理 — 它们使用真实用户地址,几乎不会引起 CDN 和存储库的防护系统的怀疑。

```