如何在Shell中配置Web代理的主机与网络绕过设置?能否在Terminal中管理该设置?
嘿,这个问题我熟!在Shell环境里配置Web代理并绕过指定主机/网络,完全可以搞定,而且终端里就能轻松管理。我来一步步给你拆解:
1. 临时配置Shell代理(会话级)
如果只是想在当前终端会话里临时用代理,直接设置环境变量就行,不用改任何配置文件:
- HTTP代理:
export http_proxy="http://proxy-server:端口号" - HTTPS代理:
export https_proxy="https://proxy-server:端口号" - FTP代理(如果需要的话):
export ftp_proxy="ftp://proxy-server:端口号"
如果代理需要用户名密码认证,格式是:export http_proxy="http://用户名:密码@proxy-server:端口号"
2. 绕过指定主机/网络(No Proxy)
要让某些本地服务、内部主机或者特定网段不走代理,就得设置no_proxy环境变量:
- 绕过单个/多个主机:
export no_proxy="localhost,127.0.0.1,internal.company.com"(用逗号分隔,不要加空格) - 绕过整个网段:比如
export no_proxy="192.168.1.0/24,10.0.0.0/8"(大部分Linux发行版和macOS都支持CIDR格式) - 绕过某个域名下的所有子域名:
export no_proxy="*.company.com" - 如果已经有
no_proxy配置,想追加新的目标:export no_proxy="$no_proxy,new-internal-host.com"
3. 终端里管理代理设置
查看当前代理配置
直接打印环境变量就行:
echo $http_proxyecho $https_proxyecho $no_proxy
临时关闭代理(当前会话)
如果只是想暂时禁用代理,不用重启终端,直接unset变量:unset http_proxy https_proxy no_proxy
持久化代理配置(永久生效)
如果想让代理设置每次打开终端都自动生效,就把export命令加到Shell的配置文件里:
- 如果你用的是Bash:编辑
~/.bashrc或者~/.bash_profile,把之前的export命令粘贴进去,然后执行source ~/.bashrc(或者对应的配置文件)让改动立即生效 - 如果你用的是Zsh:编辑
~/.zshrc,同样粘贴export命令,然后source ~/.zshrc - 系统级全局配置(所有用户生效):编辑
/etc/environment,添加代理变量,需要sudo权限,改动后重启系统或者重新登录生效
4. 工具级单独代理/绕过(可选)
有些命令行工具(比如curl、wget)支持单独设置代理或绕过,不用修改全局环境变量:
- curl绕过代理:
curl --noproxy "localhost,internal.com" http://internal.com - wget设置代理:
wget --proxy-user=用户名 --proxy-password=密码 http://example.com
小提醒:如果代理密码明文写在配置文件里,安全性可能有问题,敏感环境下可以考虑用代理工具或者通过密钥认证的方式来处理~
内容的提问来源于stack exchange,提问作者Youngkook Choice
相关产品推荐
相关产品推荐

