终端代理设置
1 CMD
1.1 临时代理
格式:
|
|
输入设置代理的命令:
HTTP代理:
|
|
或者
SOCKS5代理:
|
|
使用命令查看是否设置成功:
|
|
1.2 取消代理
取消当前终端的代理设置:
|
|
1.3 永久代理
1.3.1 方法一: 默认开启代理
- 新建一个
cmd_init.cmd
, 将上面相应的代理命令写入。 - 打开注册表, 在
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\
下新建名为AutoRun
的字符串值, 数据的值是一个绝对路径, 路径指向刚才新建的cmd_init.cmd
, 比如C:\Users\Username\cmd_init.cmd
。 - 此脚本会在每次打开cmd时被预加载。
- 修改文件权限, 禁用继承 (转化为显式权限) , 除
SYSTEM
和Administrators
设为完全控制外, 其余用户均设为读取和执行。

1.3.2 方法二: function作为开关(推荐)
上面的方法一: 默认开启代理, 终端一打开就默认启用了代理, 如要关闭还需输入一长串命令。有一种更好的办法: 在cmd_init.cmd
中不默认启用代理, 而是设置灵活的别名作为代理的开关:
|
|
$t
的前后不需要有空格, 可以直接连接两条命令: command1$t
command2。日常使用时, 输入proxy-on
即可设置代理, 输入proxy-off
即可取消设置代理。
2 PowerShell
2.1 临时代理
格式:
|
|
输入设置代理的命令:
HTTP代理:
|
|
或者
SOCKS5代理:
|
|
使用命令查看是否设置成功:
|
|
2.2 取消代理
取消当前终端的代理设置:
|
|
2.3 永久代理
2.3.1 方法一: 默认开启代理
参考微软官方文档, 为所有用户、所有主机生成profile
文件:
在PowerShell中运行以下命令:
1
if (!(Test-Path -Path $PROFILE.AllUsersAllHosts)) { New-Item -ItemType File -Path $PROFILE.AllUsersAllHosts -Force };
其他级别- Current User, Current Host - $PROFILE
- Current User, Current Host - $PROFILE.CurrentUserCurrentHost
- Current User, All Hosts - $PROFILE.CurrentUserAllHosts
- All Users, Current Host - $PROFILE.AllUsersCurrentHost
- All Users, All Hosts - $PROFILE.AllUsersAllHosts
使用
notepad $PROFILE.AllUsersAllHosts
命令调用记事本打开profile
文件, 在文件中写入上面相应的代理命令, 保存关闭即可, 该文件会在每次打开PowerShell时被预加载。如果是
Current User, Current Host
级别, 则profile
文件为此电脑/文档/WindowsPowerShell/Microsoft.PowerShell_profile.ps1
如果是
All Users, All Hosts
级别, 则profile
文件为C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
如果在PowerShell 7生成
profile
文件, 则一律为C:\Program Files\PowerShell\7\profile.ps1
修改文件权限, 禁用继承 (转化为显式权限) , 除
SYSTEM
和Administrators
设为完全控制外, 其余用户均设为读取和执行。

2.3.1.1 Windows不允许运行脚本?
参考微软官方文档Set-ExecutionPolicy, 以管理员身份运行PowerShell, 运行以下命令:
|
|
2.3.2 方法二: function作为开关(推荐)
上面的方法一: 默认开启代理, 终端一打开就默认启用了代理, 如要关闭还需输入一长串命令。有一种更好的办法: 在profile
文件中不默认启用代理, 而是设置灵活的function
作为代理的开关:
|
|
日常使用时, 输入proxy-on
即可设置代理, 输入proxy-off
即可取消设置代理。
3 Bash、Zsh等
3.1 临时代理
输入设置代理的命令:
格式:
|
|
HTTP代理:
|
|
SOCKS5代理:
|
|
设置终端中的wget、curl等软件都走SOCKS5代理:
|
|
3.2 取消代理
取消当前终端的代理设置:
|
|
3.3 永久代理
3.3.1 方法一: 默认开启代理
/etc/envirnoment
与shell
无关, 所以无法使用脚本或通配符展开。此文件仅接受variable=value
键值对格式。
其他文件的加载顺序: /etc/profile
>/etc/bash.bashrc
>~/.profile
=~/.bash_profile
>~/.bashrc
- 将上面的临时代理命令写入环境变量配置文件中。
- 运行
source /etc/bash.bashrc
或source ~/.bashrc
以应用新的环境变量。 - 这样当前终端和新建的终端就会使用代理。
3.3.2 方法二: alias作为开关(推荐)
通过设置alias来简化操作。将以下命令写入环境变量配置文件中。
1 2
alias proxy-on="export http_proxy=http://127.0.0.1:7890;export https_proxy=http://127.0.0.1:7890" alias proxy-off="unset http_proxy https_proxy"
运行
source /etc/bash.bashrc
或source ~/.bashrc
以应用新的环境变量。每次要使用代理就输入
proxy-on
, 不用了就输入proxy-off
。
3.3.3 方法三: function作为开关(推荐)
通过设置function来简化操作。将以下命令写入环境变量配置文件中。
1 2 3 4 5 6 7 8
function proxy-on() { export http_proxy=http://127.0.0.1:7890 export https_proxy=http://127.0.0.1:7890 } function proxy-off() { unset http_proxy https_proxy }
运行
source /etc/bash.bashrc
或source ~/.bashrc
以应用新的环境变量。每次要使用代理就输入
proxy-on
, 不用了就输入proxy-off
。
4 Git设置代理
4.1 永久代理
4.1.1 方法一: 默认开启代理
格式:
|
|
HTTP代理:
|
|
SOCKS5代理:
|
|
4.1.1.1 取消代理
|
|
使用git config --global --list
命令查看是否设置成功。
4.1.2 方法二: 在各种Shell中使用Git
使用上文的各种永久代理方案来配置cmd
, PowerShell
, bash
, zsh
等Shell, 然后在这些Shell中使用Git, 这样Git也会走代理。
4.1.3 方法三: Git Bash on Windows
修改C:\Program Files\Git\etc\profile.d\aliases.sh
, 添加alias:
|
|
该aliases.sh
文件会在每次打开Git Bash时被自动加载, 所以每次要使用代理只需输入proxy-on
, 不用了就输入proxy-off
即可。