Ubuntu 中有多个网络代理,如何优雅切换

360 天前
 kaysar

使用 Ubuntu 的时候,有 clash 的网络代理,但是我有时需要使用 Charles 抓包,他们使用的端口不一致,我在使用的过程中需要进行切换,但是在设置的网络代理中如果选择手动设置代理,则需要自己输入 IP 和端口号,有没有一种啥优雅的方式,比如这里预设好,点一下就能切换的插件或工具呢

还有 windows 中使用 clash 这种工具,工具内部就提供 System Proxy 这样的按钮,可以一键使用,Ubuntu 里面为什么不行呢,个人感觉做一个这个应该不是很麻烦吧,就找到 Proxy 的配置文件,修改一下就行

2314 次点击
所在节点    Linux
10 条回复
brader
360 天前
你都用上 linux 了,自己写个 shell 脚本呗,不也是点一下
skiy
360 天前
你是要设置全局代理的吧?直接修改系统配置的我没改过。我觉得你可以使用 qv2ray 来切换源吧?或者启动 v2ray 时,加个 -c 读取配置文件?
0o0O0o0O0o
359 天前
大部分情况下,并不建议用全局代理抓包。windows 可以用临时环境变量和 proxifier 之类的 hook 实现,linux 更是灵活:环境变量( linux 程序更加遵循)、proxychains 类、iptables 、cgroup
kaysar
359 天前
哈哈哈哈,其实我只是想要一个这样的插件,谢谢各位大佬

https://extensions.gnome.org/extension/3379/proxy-profiles/
kaysar
359 天前
确实,用 ChatGPT 写一个脚本也能快速实现
kaysar
359 天前
感谢大佬,我试试 proxychains
lindas
359 天前
我用 mitmproxy 抓 chrome 的包时,是在命令行里多加一个参数 `--proxy-server` 手动指定一个代理服务器给 chrome 。平常用的时候,就是在 .bashrc 加个函数,然后直接在 shell 里打 `chrome_tmp` 就可以了 :

```
chrome_tmp() {
local PROFILEDIR=$(mktemp -p /tmp -d tmp-chrome-profile.XXXXXX.d)

if [ -n "$1" ]; then
proxy_server=$1
shift
else
proxy_server="http://127.0.0.1:8080"
echo ${proxy_server}
fi

echo "chrome runing, profile path is $PROFILEDIR, proxy server is $proxy_server"
google-chrome-stable --user-data-dir=$PROFILEDIR --proxy-server=$proxy_server --ignore-certificate-errors $@

rm -rf $PROFILEDIR
echo "$PROFILEDIR deleted"
}
```
v3413
359 天前
既然系统都是 ubuntu 啦,那本地启动一个 v2ray 进程,然后在 v2ray 里面做分流,把想抓包的流量送进 Charles ,其它的默认走 freedom 或者 clash 。

或者,我记得 clash 也可以设置分流规则嘛
blankmiss
359 天前
chrome 有插件可以设置 Proxy SwitchyOmega 不过只对 chrome 生效
wipbssl
359 天前
clash for windows 有 linux 版本,可以试试 cfw 的 tun 模式。

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

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

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

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

© 2021 V2EX