Terminal 如何强制全部走 proxy?

2022-02-22 19:46:21 +08:00
 Chism

我配置了

export all_proxy=http://127.0.0.1:1087

但是在运行一些脚本时发现依然不走代理,脚本里含有 curl github 之类的直接超时

有什么配置方式可以强制 Terminal 全部走 proxy ?

8868 次点击
所在节点    macOS
35 条回复
menghuan
2022-02-22 19:53:14 +08:00
clashX 增强模式好像可以
bao3
2022-02-22 19:55:54 +08:00
首先,你设定的代理只能对 tcp 有效,所以有些解析有问题就无法走代理。你可以试试 socks5
另外 1# 是正解
arischow
2022-02-22 19:56:17 +08:00
```
export https_proxy=http://127.0.0.1:8888;export http_proxy=http://127.0.0.1:8888;export all_proxy=socks5://127.0.0.1:8889
```
arischow
2022-02-22 19:56:36 +08:00
或者用网关模式,让虚拟网卡接管所有流量再分流,如 1#
Immortal
2022-02-22 20:00:29 +08:00
用 Clash 客户端举例:
1. Clash 设置全局并且全局
2. Clash 设置全局,然后在终端执行
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
之后的命令都会走代理流量
Immortal
2022-02-22 20:01:25 +08:00
@Immortal #5
1. Clash 设置全局并且全局 > 1. Clash 设置全局并且设置为系统代理
heywin
2022-02-22 20:22:42 +08:00
proxychains-ng
Jiajin
2022-02-22 20:30:24 +08:00
增强模式就行了,不用开系统代理。
AllenHua
2022-02-22 21:34:27 +08:00
```
export http_proxy=http://USERNAME:PASSWORD@127.0.0.1:7890 && export https_proxy=$http_proxy && export all_proxy=socks5://127.0.0.1:7890 && echo 'Set proxy successfully'
```

http(s)代理如果没有认证,那么命令如下

```
export http_proxy=http://127.0.0.1:7890 && export https_proxy=$http_proxy && export all_proxy=socks5://127.0.0.1:7890 && echo 'Set proxy successfully'
```

unset 取消设置代理

```
unset http_proxy && unset https_proxy && unset all_proxy && echo 'Unset proxy successfully'
```

socks5 代理没有认证,所以不用输入用户名和密码
AllenHua
2022-02-22 21:38:22 +08:00
你设置的 all_proxy 是 http 代理……

socks5 包含 https ,https 又包含 http

socks5 代理工作在 osi 七层模型中的会话层(第五层),https/http 代理工作在 osi 七层模型的应用层(第七层),所以说 socks 代理更加底层。
zalss
2022-02-22 21:40:31 +08:00
vim ~/.zshrc
插入这个:
export ME="/Users/zalss" #你的目录
source $ME/.start.sh
新建~/.start.sh
chmod -x ~/.start.sh
~/.start.sh 内容为:

--------------------------------


export http="http://127.0.0.1:7890"
export https=$http
export socks5="socks5://127.0.0.1:7891"
export reslove="
🌈🌈🌈🌈
开启代理
🌈🌈🌈🌈
"
export reject="
🌈🌈🌈🌈
已关闭!
🌈🌈🌈🌈
"
alias mymac="neofetch"
alias setp="
git config --global http.proxy $http;
git config --global https.proxy $http;
npm config set proxy $http;
npm config set https-proxy $http;
yarn config set proxy $http;
yarn config set https-proxy $http;
export ALL_PROXY=$socks5
export http_proxy=$http;
export https_proxy=$http;
echo -e '\033[32m $reslove \033[0m'
"
alias unsetp="
git config --global --unset http.proxy;
git config --global --unset https.proxy;
npm config delete proxy;
npm config delete https-proxy;
yarn config delete proxy;
yarn config delete https-proxy;
unset http_proxy;
unset https_proxy
unset ALL_PROXY
echo -e '\033[31m $reject \033[0m'

"
alias ip="curl ipinfo.io"




--------------------------------
sickoo
2022-02-22 23:07:24 +08:00
@Jiajin 意思只要增强模式,不用点那个设置为系统代理就行了吗
dingwen07
2022-02-23 02:36:51 +08:00
Clash for Windows TUN 模式
iseki
2022-02-23 02:57:26 +08:00
不同软件对这几个环境变量的支持程度不一样,有的吃 all ,有的不吃;有的大小写不敏感,有的很敏感······所以保险的方法是同时设定 http_proxy, https_proxy, all_proxy ,如果你有觉得不够可靠,对应的大写也设定一份,我观察的:吃 all 的不是很多
bao3
2022-02-23 04:28:54 +08:00
@sickoo
yhhsuf
2022-02-23 06:41:55 +08:00
proxifier
alexanderb
2022-02-23 07:26:00 +08:00
提供一个不太优雅的方案,proxychains 用 socks5 代理。
Leonard
2022-02-23 09:31:01 +08:00
ClashX Pro 增强模式最方便
Crump
2022-02-23 09:35:40 +08:00
如果 M1 芯片,QX 最方便
icetea12138
2022-02-23 09:38:18 +08:00
@Crump qx 不是手机上的嘛?电脑上也可以?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/835747

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX