Ubuntu桌面一键代理脚本

在Ubuntu桌面环境下,临时使用代理却不影响全局设置?本文介绍两种仅当前终端生效的代理开启脚本:双击弹窗版和终端激活版,附带桌面快捷方式创建与验证方法。轻量无侵入,适合开发与日常使用。

作者:zhuge··预计阅读 14 分钟·7 阅读·0 评论
Ubuntu桌面一键代理脚本

引言

在日常开发中,我们经常需要临时使用代理访问特定网络资源(如 GitHub、Google 或某些海外 API)。但系统全局代理往往过于“粗暴”——它会强制所有应用走代理,不仅影响速度,还可能干扰本地服务调试。

有没有一种办法,只在当前终端生效,关闭终端或执行一条命令就自动关闭代理?本文将分享两个轻量级脚本方案,配合桌面快捷方式,让你在 Ubuntu 桌面上一键开启代理,精准控制网络流量。


方案一:双击弹窗版(适合查看状态)

如果你希望双击桌面图标后弹出一个独立终端窗口,清晰看到代理已开启的提示,且按任意键关闭窗口,这个方案最合适。

1. 创建脚本文件

在桌面创建 proxy.sh

#!/bin/bash

# 设置代理环境变量(仅当前终端生效)
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export HTTPS_PROXY=http://127.0.0.1:7897
export ALL_PROXY=socks5://127.0.0.1:7897

# 显示当前代理状态
echo "✅ 代理已开启!"
echo "HTTP_PROXY: $http_proxy"
echo "HTTPS_PROXY: $https_proxy"
echo ""
echo "💡 提示:此代理仅在此终端窗口生效"
echo "   关闭此终端即关闭代理"
echo ""
echo "按任意键关闭此窗口..."

# 保持窗口打开
read -n 1

2. 赋予执行权限

chmod +x ~/Desktop/proxy.sh

3. 使用方式

双击桌面上的 proxy.sh 文件,选择“在终端中运行”,即可看到代理状态提示。按任意键关闭窗口,代理随即失效。


方案二:在当前终端中激活(推荐)

方案一每次会弹出新窗口,若你希望在当前正在工作的终端中启用代理,并且保留关闭代理的命令,推荐使用本方案。

1. 创建脚本文件

创建 ~/Desktop/proxy-start.sh

#!/bin/bash

# 设置代理
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export HTTPS_PROXY=http://127.0.0.1:7897
export ALL_PROXY=socks5://127.0.0.1:7897

echo "✅ 代理已设置:http://127.0.0.1:7897"
echo "运行 'proxy-off' 可关闭代理"

# 定义关闭代理的函数
proxy-off() {
    unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
    echo "❌ 代理已关闭"
}

# 将函数导出到当前shell
export -f proxy-off

# 进入交互式shell
exec $SHELL

2. 赋予执行权限

chmod +x ~/Desktop/proxy-start.sh

3. 使用方式

在任意终端中执行(注意使用 source. 而不是直接运行):

source ~/Desktop/proxy-start.sh
# 或
. ~/Desktop/proxy-start.sh

执行后,当前终端的所有命令(apt、curl、wget、git 等)都将走代理。

4. 关闭代理

直接在终端输入:

proxy-off

代理环境变量即被清除。


进阶:创建桌面快捷方式

如果你不想每次手动输入 source 命令,可以创建一个桌面快捷方式,双击即可在当前终端激活代理。

1. 创建 proxy.desktop

[Desktop Entry]
Version=1.0
Name=开启代理
Comment=在当前终端开启代理
Exec=/home/你的用户名/Desktop/proxy-start.sh
Icon=network-wired
Terminal=true
Type=Application
Categories=Network;

注意将 Exec 中的路径替换为你的实际用户名。

2. 赋予执行权限

chmod +x ~/Desktop/proxy.desktop

3. 使用

双击桌面图标,会打开一个新终端窗口并立即进入代理环境,之后你可以在这个窗口中继续执行其他命令。


验证代理是否生效

执行以下命令测试:

# 测试 HTTP 请求
curl -I https://www.google.com

# 测试 apt 更新(注意安装软件仍需 sudo)
sudo apt update

# 查看当前代理环境变量
env | grep -i proxy

如果 curl 返回 200 状态码,且 env 显示你设置的代理地址,说明配置成功。


代理配置说明

环境变量作用示例值
http_proxyHTTP 代理http://127.0.0.1:7897
https_proxyHTTPS 代理http://127.0.0.1:7897
all_proxy所有协议代理(包括 SOCKS)socks5://127.0.0.1:7897
HTTP_PROXY大写版本,部分应用需要http://127.0.0.1:7897
HTTPS_PROXY大写版本,部分应用需要http://127.0.0.1:7897
ALL_PROXY大写版本,部分应用需要socks5://127.0.0.1:7897

注意事项

  1. 端口号:脚本默认使用 7897,请根据你的代理工具(如 Clash、Shadowsocks)实际端口修改。
  2. 代理类型:HTTP/HTTPS 代理用于 Web 流量,SOCKS5 可支持更多协议。
  3. 生效范围:仅当前终端窗口,不影响其他终端和系统全局设置。
  4. 关闭方式:关闭终端或执行 proxy-off 命令(方案二)。
  5. 权限问题apt update 使用代理时无需 sudo,但安装软件仍需要 sudo 权限。

卸载清理

删除桌面上的脚本文件即可:

rm ~/Desktop/proxy.sh
rm ~/Desktop/proxy-start.sh
rm ~/Desktop/proxy.desktop  # 如果创建了的话

扩展阅读:其他代理设置方式

方式一:系统全局代理(GNOME)

gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host '127.0.0.1'
gsettings set org.gnome.system.proxy.http port 7897

方式二:APT 专用代理

echo 'Acquire::http::Proxy "http://127.0.0.1:7897";' | sudo tee /etc/apt/apt.conf.d/95proxies

方式三:仅当前命令使用代理

http_proxy=http://127.0.0.1:7897 curl https://www.google.com

小贴士

  • 如果你使用 Clash,端口通常是 78907897;Shadowsocks 常用 108010808
  • 建议将代理端口号写入脚本,方便一键切换不同工具。
  • 可以把脚本放在 ~/bin/ 目录并添加到 PATH,全局可用。

总结

通过本文提供的两个脚本,你可以在 Ubuntu 桌面上一键开启代理,且代理仅对当前终端生效。方案一适合快速查看状态,方案二更适合长期开发工作流。结合桌面快捷方式,实现真正的一键操作。这种方法简单、轻量、无侵入性,是日常开发和临时访问的好帮手。

赶快试试吧,让你的网络访问更自由、更可控!

相关文章

评论

加载中...