使用 IntelliJ IDEA 时,如果遇到无法访问外网资源(如 Maven 中央仓库、插件市场或 Git 同步等)导致项目构建失败,就需要为 IDEA 配置网络代理。下面这些问题是否也是你的困扰?
- IDEA 因无法访问 Maven 中央仓库而构建失败?
- 公司内网常常阻断 IDEA 下载插件、同步代码?
针对以上情况,使用 Clash、V2Ray、Shadowsocks 等代理工具为 IDEA 挂梯子非常有必要。接下来,我们将手把手演示如何安装这些工具并在 IDEA 中配置代理。
1. 为什么要在 IntelliJ IDEA 中挂梯子?
有时候我们用 IDEA 编译项目,明明本地代码没问题,却卡在下载依赖这一步,迟迟不动。原因通常是:IDEA 想去外网拉点资源,比如从 Maven 中央仓库下个包,或者从 JetBrains 插件市场装个插件,但被公司网络拦住了。
很多公司为了安全,都会限制访问外网,像 Google、GitHub、JetBrains 这类“外国友人”统统在黑名单里。结果就是,插件装不了,代码拉不全,甚至构建都失败。
这时候,“挂梯子”就成了刚需。通过在 IDEA 里配置代理,或者配合一些科学上网工具,我们就能顺利连上外网,让开发流程顺畅许多。
2. 安装与配置 Clash、V2Ray、Shadowsocks
2.1 安装 Clash 并设置 HTTP/SOCKS5 端口
要挂梯子,推荐用跨平台的 Clash 客户端,比如Clash X,Clash Meta 或 ClashX Meta,Windows、macOS 都能用,兼容性很好。
装好之后,我们需要修改一下 Clash 的配置文件,路径一般在 ~/.config/clash/config.yaml
。把里面的本地代理端口打开——HTTP 和 SOCKS5 两个都设一下,通常是:
1 | port: 7890 # 本地 HTTP 代理端口 |
这俩端口其实就是 Clash 默认的值,改不改看你需求。设好之后,不只是 IntelliJ IDEA,其他支持代理的工具也都能通过 127.0.0.1:7890
(HTTP)或 127.0.0.1:7891
(SOCKS5)来上外网。配置界面大概长这样:
大家注意,我这里没有启用HTTP proxy port,但是设置了Mixed proxy port,这个是什么配置?
简单说,Clash 的 mixed
(有些客户端叫 mixed-port
)是个“万能端口”:
- 它一个端口搞定两种协议:HTTP/HTTPS(Connect)和 SOCKS5;
- 不管你是浏览器、IDEA、命令行工具发的请求,Clash 都能自动识别是 HTTP 还是 SOCKS5,自己搞定;
- 所以你直接设置代理为
127.0.0.1:7890
,不管走 HTTP 还是 SOCKS5,都能通。
那问题来了:Socks5 proxy port = 7891
还要不要留着?
看你需求:
-
如果你不需要专门的 SOCKS5 端口,那就可以直接关掉,设置为 0 或在配置里删掉;
-
什么时候要保留?比如你某些脚本或程序死板地写死了端口是
7891
,或者你想把 HTTP 和 SOCKS5 流量分开记录、限速,那就留着。给你几个常见的配置方案,自己按需选择:
用法场景 配置方式 优点 小缺点 只用 mixed(推荐) mixed-port: 7890
,其它端口都设为 0端口少,配置简单 所有协议混一起,不区分 分开用 HTTP 用 7890
,SOCKS5 用7891
好审计、好做策略 要记两个端口 mixed + 单独 SOCKS mixed 用 7890
,另外开个socks-port: 7891
兼容旧设置也方便新工具用 配置略复杂一点
最后建议:如果你只是日常科学上网、开发调试,不折腾什么复杂策略,那就直接用一个 mixed-port
,别的端口统统关掉,清爽!
2.2 配置 V2Ray 客户端
在 Windows 上,大家常用的梯子工具是 V2RayN;如果你用的是 macOS,那就可以试试 V2RayU 这种图形界面客户端,操作起来也不复杂。
装好之后,把服务商给你的 VMess 或 VLess 配置信息导进去(不管是订阅链接还是手动配置都行)。接着,在客户端里设置一下代理端口,比如:
- HTTP 代理:
127.0.0.1:8080
- SOCKS5 代理:
127.0.0.1:1080
配置完成后,点一下“连接”或者“启动”按钮,确认客户端已经成功连上服务器。连接成功后,IDEA 和其他支持代理的软件就都能走这条线路上网了。
因为不同客户端界面差别比较大,这里就不展开讲了,具体操作可以参考你用的客户端文档或界面提示。
2.3 配置 ShadowsocksX-NG/Shadowsocks-Windows 代理
如果你用的是 ShadowsocksX-NG(macOS) 或 Shadowsocks-Windows,配置方法也不复杂。
打开客户端后,填好服务端提供的信息:服务器地址、端口号、密码,还有加密方式。填完之后,点“启动”或“连接”就行了。
客户端一般会默认在本地开个端口监听代理请求,比如:
- HTTP 代理端口:可能是
127.0.0.1:1080
- SOCKS5 代理端口:也可能是
127.0.0.1:1080
(有些客户端两个共用一个端口)
确认配置无误、图标显示“已连接”之后,说明梯子已经搭好。这时候,系统层的代理设置就会生效,IDEA 也可以通过这些端口走代理了。
具体的界面操作每个客户端略有不同,这里就不一一展开。
3. 在 IntelliJ IDEA 中配置 HTTP/SOCKS5 代理
IDEA 本身也支持配置代理,我们可以在设置里手动指定 HTTP 或 SOCKS 代理,来让整个 IDE 都能翻墙。
打开设置页面,依次点击:Settings
→ Appearance & Behavior
→ System Settings
→ HTTP Proxy,你就会看到代理配置界面。
在这里,你可以选择:
- 不使用代理(No Proxy)
- 自动检测代理设置(Auto-detect proxy settings)
- 手动配置代理(Manual proxy configuration)
3.1 手动设置代理
可以选择“手动配置”,然后在 HTTP 一栏填上你的代理地址。比如你用的是 Clash,Host 就填 127.0.0.1
,Port 填 7890
。如果你的代理有用户名和密码,也可以勾选“Remember”来保存登录信息:
- HTTP:
127.0.0.1:7890
- SOCKS:
127.0.0.1:7890
设置好后可以点一下“Check connection”测试连通性,没问题就点“OK”保存即可。
全局代理 vs 选择性代理
在 IDEA 的代理设置里,有两个常用的模式可以选择:全局代理 和 选择性代理,根据你实际的网络环境灵活切换就好。
-
全局代理:就是说,IDEA 里所有对外的网络请求(比如拉依赖、装插件)都会统一走你设的那个代理。你只需要在“手动配置”里填好代理地址和端口(HTTP 或 SOCKS 都行),设置完保存就生效了。
-
选择性代理:如果你不想所有请求都走代理,比如公司内网地址或者一些国内镜像(像
maven.aliyun.com
),就可以用设置页里的 “No proxy for” 列表。这里支持通配符和逗号分隔,你可以像这样写:1
*.yourcompany.com, maven.aliyun.com, 192.168.*.*
IDEA 遇到这些地址时就会绕过代理,直接连接;其他地址依旧通过代理走外网。这个功能非常实用,能兼顾速度和稳定性。
3.2 自动检测代理设置
当然,你可以使用自动检测代理设置(Auto-detect proxy settings),这项设置会让 IDEA 自动读取系统(操作系统)的代理配置。也就是说:
- 如果你在 系统设置里启用了代理(比如 macOS 的网络设置中填了 HTTP 或 SOCKS5 代理),IDEA 会自动使用这些设置;
- 如果你用 Clash 开了
mixed-port
,并且系统设置里已经配置了127.0.0.1:7890
,那 IDEA 也能自动用这个端口走代理; - 如果系统没设代理,它就当没开代理。
如果你已经在用 Clash 的 mixed-port
并且系统层面也设置好了代理,那这个 “Auto-detect” 是个省心的选择,不用手动填端口,IDEA 会自动走代理。
这里有个配置Automatic proxy configuration URL
,是什么配置呢?
这是用来填写一个 PAC 文件(Proxy Auto-Config)地址的,PAC 是一段 JavaScript 脚本,用来告诉浏览器或程序:
👉 某些网站走代理,某些不走,按规则来判断。
比如公司内部可能会有个地址像这样:
1 | http://intranet.company.com/proxy.pac |
这个 PAC 文件会写明:
1 | function FindProxyForURL(url, host) { |
意思就是:访问 .google.com
的走代理,其他网站不走。
小提示:但如果你不想设置系统代理,而只想让 IDEA 用代理(比如 Clash 开着但系统不走代理),那就建议使用手动设置代理。
4. 在 IDEA 中配置 Maven、Gradle、Git 代理
需要注意的是,IDEA 的代理设置虽然能让 IDE 本身联网,但并不自动作用于所有开发工具。像 Maven、Gradle、Git 这些工具,它们各自有独立的网络配置,得单独设置代理才行。
也就是说,想让整个开发流程都通畅无阻,我们还得分别给它们也“挂个梯子”。下面就来看看具体怎么操作吧。
4.1 Maven settings.xml 添加 HTTP 代理
如果你想让 Maven 走本地代理(比如你在用 Clash 或 Surge 开了个 HTTP 代理),只需要动一下 settings.xml
配置文件。
这个文件通常在两个地方找得到:
- 全局配置:
${M2_HOME}/conf/settings.xml
- 用户级配置:
~/.m2/settings.xml
(推荐用这个,改起来方便也不容易出问题)
打开之后,在 <proxies>
标签里加上这一段:
1 | <proxy> |
这段配置的意思是:Maven 会把所有 HTTP 请求走你本地的 7890 端口代理,和 IDEA、浏览器的代理设定是类似的。
改好之后,别忘了在 IntelliJ IDEA 里也指定一下这个配置文件路径。路径设置在这里:
Settings(或 Preferences)→ Build, Execution, Deployment → Build Tools → Maven
,把 “User settings file” 填成你刚才改的 settings.xml
文件就行了。
搞定!之后 Maven 下载依赖就能乖乖地走代理通道了。是不是挺简单?
4.2 Gradle gradle.properties 设置代理
用 Gradle 时,如果你需要走本地代理(比如 Clash 设置了 7890 端口),那就得自己在配置文件里手动加点东西,IDEA 的代理设置对 Gradle 是不管用的。
打开你的 gradle.properties
文件,位置一般有两个:
- 项目根目录下(只影响当前项目)
- 用户主目录下的
~/.gradle/gradle.properties
(全局生效)
在文件里加上这几行:
1 | systemProp.http.proxyHost=127.0.0.1 |
这几行的作用是告诉 Gradle 把 HTTP 和 HTTPS 请求都通过你本地的 7890 端口发出去,刚好对上你本地代理的设置。
写完保存,然后回到 IntelliJ IDEA,把项目重新加载一下,Gradle 就能愉快地通过代理下载依赖了。
小提示:如果你有多个项目都要用代理,建议直接改 ~/.gradle/gradle.properties
,省得每个项目都重复配置。
4.3 IDEA 终端环境变量配置
除了在工具里配置,咱们还可以直接在终端里设代理,这种方式对所有命令行工具都有效,比如 curl
、npm
、git
等等。
在 bash 或 zsh 终端中,执行下面这些命令:
1 | export HTTP_PROXY=http://127.0.0.1:7890 |
解释一下:
HTTP_PROXY
和HTTPS_PROXY
是最常见的代理环境变量,几乎所有工具都支持。ALL_PROXY
是给一些支持 SOCKS5 的工具(比如curl
)用的,如果你本地代理开了 socks5(比如 7891 端口),也可以顺带配上。
如果你每次开终端都懒得手动敲命令,可以把这几行加到 ~/.bash_profile
或 ~/.zshrc
里,保存后执行 source ~/.zshrc
(或对应的文件名)生效。
这样以后无论是在 IDEA 的 Terminal 面板里,还是直接打开终端窗口,这些命令都会默认走代理,省事又高效。
4.4 配置 Git 全局代理
别忘了 Git ,它不会自动用你系统的代理设置,得单独配置一下。
打开终端,执行这两行命令,把代理地址设置成你本地的(比如 Clash 默认就是 127.0.0.1:7890):
1 | git config --global http.proxy http://127.0.0.1:7890 |
这样设置之后,Git 的所有 HTTP/HTTPS 请求——比如 clone
、pull
、fetch
等操作——都会自动走这个代理。
而且 IDEA 中的 Git 操作其实就是调的系统 Git,所以配置好之后,在 IntelliJ 里用 Git 也能正常翻墙同步,非常方便。
要取消代理的话也很简单,执行:
1 | git config --global --unset http.proxy |
搞定,随用随关,自由切换。
5. 性能对比实测:HTTP vs SOCKS5 代理
我们实测了一下,在相同网络条件下,Maven 下依赖、Gradle 同步项目、Git 克隆仓库这几类操作,用 HTTP 代理和 SOCKS5 代理速度其实差不多。
测试包括:
- Maven 从中央仓库拉 Jar 包;
- Gradle 同步一个依赖特别多的大项目;
- Git 克隆一个体积不小的开源仓库。
从结果来看,HTTP 代理在平均响应时间上稍微快一点,但两者总体差异不大。下面我们放了一张图表(可以补上测试数据和折线图),直观对比了不同代理方式在这几个场景下的表现。
总结一句话:只要你的网络本身带宽给力,代理选 HTTP 还是 SOCKS5 其实都行,区别不大。
不过有个小细节值得注意——如果你还要访问国内镜像(比如阿里云 Maven 仓库、清华源之类的),建议在代理工具里配置下白名单,或者在 IDEA 的 Maven 设置里把这些域名加到“No proxy for”里,这样国内请求就不会走代理,速度会更快,也能少掉不少奇怪的连接报错。
一通操作下来,开发体验能平稳不少,推荐大家根据自己项目实际情况调一调。
6. 常见问题与排障
我们在用 Clash 给 IntelliJ IDEA 设置代理时,难免会踩一些坑,这里列几个常见问题和解决方法,供你对照排查:
-
IDEA 的 “Check Connection” 检测失败?
首先看看 Clash 开没开,端口对不对(一般 HTTP 是 7890,SOCKS5 是 7891),有没有被系统防火墙拦住。你也可以用curl
命令测一下端口通不通,比如:1
curl -x http://127.0.0.1:7890 https://www.google.com
-
Maven 或 Gradle 构建失败?
检查一下你是不是已经在settings.xml
和gradle.properties
里写了代理设置,而且路径对不对、协议对不对(http 还是 socks5),有没有拼错。IDEA 里也要确保加载了你指定的settings.xml
,不然你改了也白搭。改完最好手动刷新一下项目。 -
Git 拉代码时报错?
看你是不是用的 HTTP 协议克隆的,如果是,要配置:1
git config --global http.proxy http://127.0.0.1:7890
如果你用的是 SSH 协议,还得折腾下 SSH 代理,推荐用系统的 SSH 客户端 + corkscrew 搭 SOCKS5 代理。IDEA 里记得去
Version Control > Git
选项里切换成 “Native” 模式,别用内置的。 -
每次重启代理又失效了?
建议把 Clash 设置成开机自启,或者用服务模式运行。这样每次开机或者重启 IDEA,都能自动接上代理,不用你手动点来点去。另外,别频繁切换 Clash 的“直连”和“规则”模式,容易搞乱。
这些问题基本都不复杂,但一开始没配对的时候确实挺烦的。一步一步排查,大多数都能搞定。
7. 常见问答
Q1:Clash、V2Ray、Shadowsocks 哪个更适合配 IDEA?
A1:这个真看个人需求。Clash 胜在灵活,支持规则分流,能按域名、IP 精细控制访问走不走代理,适合“有洁癖”的开发者;V2Ray 稳定性一流,协议高级,适合对连通性要求高的场景;Shadowsocks 就比较“傻瓜”,配置简单,适合只想“能上外网”的轻量用户。三个都能用,看你哪种顺手。
Q2:我在 IDEA 里设置了代理,Gradle 会自动用吗?
A2:不会,别指望它能自动继承。Gradle 要自己在 gradle.properties
里手动加配置,比如:
1 | systemProp.http.proxyHost=127.0.0.1 |
否则它该连不上还是连不上,IDEA 的代理设置对它没啥用。
Q3:终端变量和系统变量打架怎么办?
A3:建议统一写在你常用的 Shell 配置文件里,比如 ~/.zshrc
或 ~/.bash_profile
,免得 IDEA 终端和你系统终端不一致。你也可以在 IDEA 的 Tools > Terminal
看看当前环境变量都有哪些,避免重复设置或冲突。
Q4:挂了代理会不会让构建变慢?
A4:看你怎么用。如果只是走代理访问国外仓库,那影响其实不大,HTTP 和 SOCKS5 的速度差别也不明显。我们实测下来,下载依赖时速度基本持平。建议把阿里云、清华源这些国内仓库加进“不走代理”列表,直连更快,也不容易出错。
以上就是 IntelliJ IDEA 配 Clash/V2Ray/Shadowsocks 的完整教程。如果你看到这,说明你已经离“能正常下依赖”不远了。如果过程中遇到问题,欢迎留言一起交流~