Shell 使用代理

使用代理

如果我们想要某个命令使用代理,则需要根据不同的命令设置不同的参数,例如 curl 是通过 -x 选项设置.

如果每一个命令都通过选项执行,比较麻烦,其实还可以通过修改环境变量 http_proxy 的值来设置代理的方式,比如执行命令 export http_proxy="http://${PROXY_HOST}:${PROXY_HTTP_PORT}" 表示所有的 HTTP 请求都走这个代理。

脚本

由于每次切换代理都需要频繁的添加这个 export 命令,还是比较耗费时间的,此时就可以借助脚本帮助我们快速设置,编写脚本如下:

#!/bin/bash
# 命令行中快速启用、管理代理的脚本
# Create by liyu at 2024.01.13

# 代理的服务器地址和端口
PROXY_HOST="127.0.0.1"
PROXY_HTTP_PORT=1087
PROXY_SOCKET_PORT=1080

# 启用代理
enableProxy() {
    export http_proxy="http://${PROXY_HOST}:${PROXY_HTTP_PORT}"
    export https_proxy="http://${PROXY_HOST}:${PROXY_HTTP_PORT}"
    export socks5_proxy="socks5://${PROXY_HOST}:${PROXY_SOCKET_PORT}"
    export all_proxy="socks5://${PROXY_HOST}:${PROXY_SOCKET_PORT}"
    echo "Enable Proxy to ${http_proxy}, ${socks5_proxy}"
}

# 关闭代理
disableProxy() {
    unset http_proxy
    unset https_proxy
    unset socks5_proxy
    unset all_proxy
    echo "Disable Proxy"
}

# 通过启用别名的方式快速使用
alias proxyon="enableProxy"
alias proxyoff="disableProxy"

保存到本地文件夹中, 通过 source 的方式引入到 '.zshrc' 或 '.bashrc' 里, 这样只需要通过命令 proxyon proxyoff 快速启用、禁用代理了.

文件引用示意图如下: 引用图

测试

当脚本准备好,并引用到当前运行中时,可以通过命令 curl ifconfig.me 获取一下当前的 IP 地址,开启代理后再获取一次,比较两次 IP 是否一致。

验证使用图如下: 使用图