mac、windows 设置终端代理

本文指导如何在Mac和Windows的终端中设置代理以解决下载github包时的GFW限制,介绍了http和socks代理设置方法,以及为何ping命令无法通过代理。提供curl作为替代测试工具,并区分了不同shell设置代理的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘自:设置mac终端走代理

使用包管理器的命令下载github的包时,会出现卡住的情况,大多是因为GFW的问题,这时候就需要给命令行设置代理

MacOS

执行以下两条命令。在终端关闭之前有效。端口在ssr里看

export http_proxy="http://localhost:port"
export https_proxy="http://localhost:port"

还有一种更有意思的方式
~/.zshrc中添加以下内容

# 为终端设置代理
alias proxy='export all_proxy=socks5://127.0.0.1:port'
alias unproxy='unset all_proxy'

# 为终端设置http代理
alias httpproxy='export http_proxy=http://localhost:1087 && export https_proxy="http://localhost:1087"'
alias unhttpproxy='unset http_proxy && unset https_proxy'

这样在终端中使用proxy、httpproxy命令就可以打开代理,使用unproxy、unhttpproxy命令就可以关闭代理

然后在终端运行以后,想通过ping google.com来测试现在终端是否可以连接外网,结果发现不论怎么折腾,死活就是ping不通。
原来,系统只提供了http协议和socks协议的代理,http在应用层,socks在会话层。但是ping命令采用icmp协议来检测网址是否可达,icmp在网络层。上层无法代理下层,所以ping也就无法被代理

但是可以通过curl来测试:curl https://www.google.comcurl https://www.youtube.com等来检测是否成功代理,curl是应用层协议库,所以可以使用代理

附:通过代理上网如何解决 Ping 的问题?
在这里插入图片描述

Windows

cmd,powershell,git-bash设置代理的方式是不一样的 (因为不同shell"设置环境变量"的语法不同)

powershell

$env:https_proxy = "127.0.0.1:port"
$env:http_proxy = "127.0.0.1:port"

git-bash

export http_proxy='127.0.0.1:port'
export https_proxy='127.0.0.1:port'

cmd

set http_proxy='127.0.0.1:port'
set https_proxy='127.0.0.1:port'
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值