Omarchy(即 Arch Linux 桌面版带 Openbox / XFCE / 自定义 WM 环境)

🧩 一、确认环境类型

Omarchy 通常基于:

  • Openbox / XFCE / i3 / bspwm 等轻量桌面
  • 没有「系统设置 → 网络 → 代理」这种统一入口

👉 所以需要:

  • 通过环境变量全局设置
  • 或者针对 GUI 程序单独设置(Firefox、Chromium、Electron、VSCode 等)

🧱 二、方法 1:全局 GUI 环境变量方式(推荐)

在轻量桌面下,我们通过 环境变量 告诉桌面应用所有 HTTP/SOCKS 请求都走 127.0.0.1:1080。

1️⃣ 编辑全局 profile

sudo nano /etc/profile.d/proxy.sh

写入:

# Shadowsocks 全局代理(适用于所有 GUI 应用)
export http_proxy="socks5h://127.0.0.1:1080"
export https_proxy="socks5h://127.0.0.1:1080"
export all_proxy="socks5h://127.0.0.1:1080"

保存后:

sudo chmod +x /etc/profile.d/proxy.sh

然后注销或重启桌面环境生效。


2️⃣ 若你用 lightdm 登录(常见于 XFCE/Openbox)

它默认不会加载 /etc/profile.d,可以改写 ~/.xprofile

nano ~/.xprofile

添加:

export http_proxy="socks5h://127.0.0.1:1080"
export https_proxy="socks5h://127.0.0.1:1080"
export all_proxy="socks5h://127.0.0.1:1080"

保存后重启 X 会话。


⚙️ 三、方法 2:针对浏览器配置(更精准)

🌐 Firefox:

  1. 打开 about:preferences

  2. 搜索「网络设置」(Network Settings)

  3. 点击「设置…」

  4. 选择「手动代理配置 (Manual proxy configuration)」

    • SOCKS 主机:127.0.0.1
    • 端口:1080
    • 勾选「SOCKS v5」
    • 取消勾选「为所有协议使用相同代理」
    • 勾选「远程 DNS」(否则 DNS 可能泄露)

测试访问:
https://ipinfo.io 看 IP 是否变为代理服务器。


🌐 Chromium / Google Chrome:

启动时带上参数:

chromium --proxy-server="socks5://127.0.0.1:1080"

若要永久生效,可编辑其 desktop 文件:

sudo nano /usr/share/applications/chromium.desktop

找到行:

Exec=/usr/bin/chromium %U

改为:

Exec=/usr/bin/chromium --proxy-server="socks5://127.0.0.1:1080" %U

保存即可。


🧠 四、方法 3:用 Proxychains4(适合全局 + GUI 混合)

有时 GUI 程序不读环境变量,这时可以用 proxychains

安装:

sudo pacman -S proxychains-ng

配置:

sudo nano /etc/proxychains.conf

最后一行改成:

socks5 127.0.0.1 1080

运行应用时:

proxychains4 firefox
proxychains4 curl ipinfo.io

这样即使程序不支持代理,也会被强制通过 Socks5。


🧩 五、快速切换方案(建议)

创建两个脚本方便切换:

~/.local/bin/gui_proxy_on.sh

#!/bin/bash
echo "启用全局 GUI 代理..."
export http_proxy="socks5h://127.0.0.1:1080"
export https_proxy="socks5h://127.0.0.1:1080"
export all_proxy="socks5h://127.0.0.1:1080"

~/.local/bin/gui_proxy_off.sh

#!/bin/bash
echo "关闭全局 GUI 代理..."
unset http_proxy
unset https_proxy
unset all_proxy

记得赋权:

chmod +x ~/.local/bin/gui_proxy_*.sh

✅ 验证

在终端执行:

curl ipinfo.io

或打开浏览器访问 https://ipinfo.io,若 IP 与服务器一致则代理生效。