LINUX GUIDE

Linux 使用教程

Linux 上最容易困惑的是「同一台机器上,浏览器走了代理但终端没走」。原因是两者读取的配置来源不同。

概述

Linux 的配置复杂度高于其它平台,主要原因不是操作难,而是**配置来源分散**:桌面环境有自己的代理设置、shell 有环境变量、各个工具还有自己的配置文件。三者互不相通,改了其中一个不会影响另外两个。

因此在 Linux 上排查问题时,第一个要问的问题永远是:「不通的这个程序,它从哪里读取网络配置?」浏览器读桌面环境设置,curl 和 git 读环境变量,apt 和 docker 读各自的配置文件。搞清楚这一点,问题就解决了一半。

本站不提供具体的安装命令与包地址——不同发行版的包管理、文件路径、服务管理方式差异很大,具体安装方式请以用户中心提供的说明为准。本页说明的是配置逻辑与排查思路,这部分在各发行版之间是通用的。

STEP BY STEP

配置步骤

  1. 01

    确认发行版与架构

    执行 cat /etc/os-release 查看发行版,uname -m 查看架构。这两项决定了应该获取哪个版本的客户端。

  2. 02

    校准系统时间

    执行 timedatectl status 确认时间与时区正确,NTP 同步处于启用状态。时间偏差过大会导致加密握手被拒绝,症状表现为连接超时。

  3. 03

    按用户中心的说明安装客户端

    具体的安装方式(包管理器、二进制文件或容器)请以用户中心提供的说明为准。安装后先确认程序能正常启动,再进行配置。

  4. 04

    导入订阅并启动

    将订阅信息写入客户端的配置文件或通过其命令行参数导入。启动后确认监听端口已就绪(可用 ss -tlnp 查看)。

  5. 05

    配置桌面环境代理(如果使用图形界面)

    在系统设置的网络代理中填入客户端的本地地址与端口。注意这只影响遵守桌面环境设置的图形程序,不影响终端。

  6. 06

    配置 shell 环境变量(终端使用)

    在 ~/.bashrc 或 ~/.zshrc 中导出 http_proxy、https_proxy、all_proxy,并设置 no_proxy 排除本地地址。修改后需要重新加载配置或新开终端才会生效。

COMMON PITFALLS

最容易出问题的地方

桌面代理与环境变量互不相通

在系统设置里配了代理,终端里的 curl 仍然不走——这是最常见的困惑。两者是独立的配置来源,需要分别设置。

sudo 会重置环境变量

sudo 默认不保留用户的环境变量,所以 sudo apt update 不会走你在 shell 里设置的代理。使用 sudo -E,或者在包管理器自己的配置文件里设置。

no_proxy 没有排除本地地址

如果不设置 no_proxy,访问 localhost、127.0.0.1 和局域网地址也会被发往代理,导致本地服务无法访问。建议至少排除 localhost,127.0.0.1,::1 与局域网段。

以服务方式运行时环境不同

通过 systemd 运行的服务不会读取用户的 shell 配置。需要在 service 单元文件的 Environment 字段中显式声明,或使用 EnvironmentFile。

RELATED GUIDES

相关排查文章

全部教程
FAQ

本页相关常见问题

桌面环境设置了代理,为什么终端不生效?

桌面环境的代理设置通常只写入桌面会话的配置,终端里的命令行工具读的是 shell 环境变量。两者是不同的配置来源,需要分别设置。

命令行代理配置 →

sudo 执行的命令为什么不走代理?

sudo 默认会重置环境变量。可以使用 sudo -E 保留当前环境,或者在目标工具自己的配置文件里设置代理(例如包管理器的配置)。

需要 root 权限吗?

如果客户端需要创建虚拟网卡或修改路由表,需要 root 或 sudo。仅使用本地端口做代理转发时通常不需要。具体以客户端的说明为准。

本站会提供 Linux 安装命令吗?

不会。不同发行版的包管理与文件路径差异很大,具体的安装方式请以用户中心提供的说明为准。本站说明的是配置逻辑与排查思路。

NEXT STEP

准备好开始使用了吗?

复制优惠码并进入用户中心,完成注册、登录和服务管理。套餐与服务状态请以用户中心实时页面为准。

优惠码:AMM