Windows 终端代理

邱秋 • 2022年11月04日 • 阅读:447 • windows wsl proxy

Mac 有终端代理,那 windows 也应该有才对,但是windows 要个毛的代理呀,小猫一配置,全局模式就可以了。

但是如果是 子系统WSL呢,这个逼是一套独立的系统,所以要让他也和Windows一样,可以麻溜的 干活,得让他使用他爹的链路。

可以先看下 Mac 终端代理

WSL 终端代理

打开小猫,General===>Allow LAN 开启

然后点Allow LAN旁边的小图标,可以看到WSL的 一些代理的 Address和 其它信息。

屏幕截图 20221104 114435.png

但是, 动态的IP ,不可能每次去修改。所在我们在MAC 代理的脚本上 ,做个小修改,动态获取IP即可,像这样 修改 ~/.bash_profile

function proxy_off(){
        unset http_proxy
        unset https_proxy
        unset ftp_proxy
        unset rsync_proxy
        echo -e "已关闭代理"
}

function proxy_on() {
        export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
        host_ip=$(cat /etc/resolv.conf |grep "nameserver" |cut -f 2 -d " ")
        export http_proxy="http://$host_ip:7890"
        export https_proxy=$http_proxy
        export ftp_proxy=$http_proxy
        export rsync_proxy=$http_proxy
        export HTTP_PROXY=$http_proxy
        export HTTPS_PROXY=$http_proxy
        export FTP_PROXY=$http_proxy
        export RSYNC_PROXY=$http_proxy
        echo -e "已开启代理"
}

最后

# 环境变量生效
source ~/.bash_profile

# 打开 代理
proxy_on

# 关闭 代理
proxy_on

这下 WSL 起飞了,apt-get install 各种, 都能顺利的安装。专治各种不服。😄

PowerShell 终端代理

在使用过程中发现 PowerShell 走的线路默认 不是代理线路。

实际上 PowerShell Core 还支持可用于启用代理设置的特殊 Windows 环境变量: - HTTP_PROXY – HTTP 请求的代理 - HTTPS_PROXY — HTTPS 请求的代理 - ALL_PROXY – HTTP 和 HTTPS 的代理 - NO_PROXY – 代理排除地址列表

临时代理

可以使用以下 PowerShell 命令设置环境变量:

$proxy='http://127.0.0.1:7890'
$ENV:HTTP_PROXY=$proxy
$ENV:HTTPS_PROXY=$proxy

精简成一行:

$ENV:ALL_PROXY ='http://127.0.0.1:7890'

前面的$ 符号也要带上

参考:https://woshub.com/using-powershell-behind-a-proxy/

永久代理

设置系统环境变量

单击我的电脑属性 => 选择高级系统设置 => 选择环境变量 => 选择系统变量 =>选择新建 新建 all_proxy,值设置为 http://127.0.0.1:7890 or socks5://127.0.0.1:10808

手动开关

管理员模式修改 配置

code $profile

末尾加上

function proxy_on{
    $env:all_proxy="http://127.0.0.1:7890"
}

function proxy_off{
    $env:unsetproxy=""
}

保存,退出

系统无法使用脚本的报错 ,执行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

重新打开 terminal 后,这样就可以在控制台 输入 :

# 开启
proxy_on
# 关闭
proxy_off

CMD 终端代理

# 使用 http 类型代理
set http_proxy=http://127.0.0.1:7890
set https_proxy=https://127.0.0.1:7890

# 使用 socks 类型代理
set http_proxy=socks5://127.0.0.1:1089
set https_proxy=socks5://127.0.0.1:1089

如果只是要在 Cmd 中临时使用代理,则可以直接在 Cmd 中设置上述环境变量。

如果需要永久设置代理,则可以到 Windows 系统环境变量页面(直接用 Windows 的搜索工具搜索:「编缉系统环境变量」,然后到弹出的页面点击「环境变量」),新建两个系统环境变量 http_proxy 和 https_proxy,值同上。配置完后保存后 Cmd 即会使用对应的代理。

取消代理

set http_proxy=

走起。

我,秦始皇,打钱!