在 Windows、Linux、Macos 的终端中使用代理

在 Windows、Linux、Macos 的终端中使用代理

这三种常见的桌面系统的终端都不会自动继承图形界面的系统代理,这里介绍一下在终端里使用代理的方法。

Windows 系统

设置代理

1
2
3
4
5
6
# 设置 HTTP 代理
set http_proxy=http://127.0.0.1:port

# 设置 HTTPS 代理
set https_proxy=http://127.0.0.1:port

验证代理

用 ping 命令是无法验证这里设置的终端代理的,因为 HTTP 代理只能代理基于 TCP 协议的 HTTP 或者 HTTPS 协议的流量。而 ping 命令用的是 icmp 协议。

所以这里使用 curl 命令来验证:

1
curl -vv https://www.google.com

取消代理

1
2
set http_proxy=
set https_proxy=

设置别名

可以通过设置别名来简化每次使用代理时的操作。

首先使用 echo $PROFILE 命令来确定 Powershell 的配置文件的位置。

打开输出的文件,按照如下格式编辑内容:

1
function 别名 { 需要替代的命令 }

这里给出我的例子:

1
2
3
4
5
6
7
8
9
function setproxy {
set http_proxy=http://127.0.0.1:port
set https_proxy=http://127.0.0.1:port
}

function unsetproxy {
set http_proxy=
set https_proxy=
}

Linux 和 Macos

Macos 终端默认使用 zsh,设置方式与 Linux 默认的 bash 类似,所以就放在一起来讲。

设置代理

1
2
3
4
5
# 设置 HTTP 代理
export http_proxy=http://127.0.0.1:port

# 设置 HTTPS 代理
export https_proxy=http://127.0.0.1:port

验证代理

使用 curl 命令来验证代理是否生效:

1
curl -vv https://www.google.com

取消代理

1
2
unset http_proxy
unset https_proxy

设置别名

可以通过设置别名来简化每次使用代理时的操作。

打开终端的配置文件(例如:~/.bashrc~/.zshrc),添加如下内容:

1
2
3
alias setproxy='setproxy(){export http_proxy=http://127.0.0.1:port; export https_proxy=http://127.0.0.1:port;};setproxy'

alias unsetproxy='unsetproxy(){unset http_proxy; unset https_proxy;};unsetproxy'

记得替换 port 为实际的代理端口号。

在 Windows、Linux、Macos 的终端中使用代理

https://djdog.cc/2024/terminal-proxy/

作者

小岛秀儿

发布于

2024-07-23

更新于

2024-07-29

许可协议

评论