linux全局代理
之乎者也 Lv3

在 Linux 系统中,可以使用代理服务器来转发网络请求,以实现网络访问的匿名化和其他目的。

要设置 Linux 全局代理,可以按照以下步骤操作:

  1. 找到系统中用于保存代理服务器信息的配置文件。通常情况下,这个文件的位置是 /etc/environment。如果该文件不存在,可以手动创建。

  2. 修改配置文件,在其中设置全局代理信息。将以下代码添加到环境变量配置文件中:

    1
    2
    3
    http_proxy=http://address:port/
    https_proxy=https://address:port/
    ftp_proxy=ftp://address:port/

    其中,addressport 需要替换为实际的代理服务器地址和端口号。如果代理服务器需要用户名和密码验证,则可以将其添加到 URL 中,例如:

    1
    http_proxy=http://username:password@address:port/

    在以上代码中,usernamepassword 分别代表代理服务器的用户名和密码。

  3. 保存配置文件并退出。

  4. 执行以下命令以使配置生效:

    1
    source /etc/environment

    或者重新登录系统。

这样,Linux 系统就会使用所设置的代理服务器来转发所有的网络请求。

注意事项

需要注意的是,不是所有的网络请求都支持代理服务器。例如,一些加密流量(如 HTTPS)可能无法透过代理服务器。如果遇到这种情况,需要对代理服务器进行特殊配置,以支持相应的协议。另外,如果需要取消全局代理,可以将代理服务器信息从环境变量配置文件中删除即可。

不是所有应用程序都能够通过全局代理进行访问。具体来说,只有那些使用系统内置网络库进行网络访问的应用程序才会受到全局代理的影响。这包括大部分命令行工具(如 wget、curl 等)和一些桌面应用程序(如浏览器、邮件客户端等)。

但是,并不是所有的应用程序都使用系统内置的网络库。一些应用程序可能会使用自己的网络库来进行网络访问,这些应用程序不会受到系统代理设置的影响。对于这些应用程序,需要手动进行代理设置,以使其能够通过代理服务器进行网络访问。

另外,即使是使用系统内置网络库的应用程序,也可能需要进行特殊配置才能够通过代理服务器进行访问。例如,一些应用程序可能会验证 SSL 证书,而代理服务器通常会中间进行 SSL 中间人攻击,所以需要将 SSL 证书添加到信任列表中,以使应用程序能够通过代理服务器进行 SSL 加密的网络访问。

通过使用透明代理来实现(真)全局代理

透明代理是一种设置在网络边缘的代理服务器,所有的网络请求都会通过它进行转发。通常需要在防火墙或者网关上设置透明代理。在 Linux 系统中,可以使用 Squid 和 Tinyproxy 等工具搭建透明代理服务器。为了使所有应用程序都能够通过透明代理进行网络访问,需要将代理服务器设置为默认网关。

需要注意的是,这种方法可能会导致一些应用程序无法正常工作。例如,一些需要直接与网络进行通信的应用程序可能无法透过代理服务器进行网络访问。如果有这种情况,可以取消透明代理设置,或者针对特定的应用程序进行代理设置。

Squid 和 Tinyproxy 都是常用的代理服务器软件,它们都具有代理服务器的基本功能,如缓存、访问控制等。不过它们也有一些区别,可以根据不同的需求进行选择。

Squid 是一个功能强大的代理服务器软件,支持多种协议(如 HTTP、HTTPS、FTP 等),具有完整的缓存管理和访问控制功能。Squid 还支持负载均衡、透明代理、反向代理等高级特性。Squid 的缺点是它需要相对复杂的配置和管理,适合对代理服务器有丰富经验的管理员使用。因此,Squid 通常被用于大型企业中。

Tinyproxy 是一个轻量级的代理服务器软件,相对于 Squid 来说更加简单易用。Tinyproxy 只支持 HTTP 和 HTTPS 协议,并且没有缓存功能,但它的配置和管理都非常简单,适合用于小型网络和个人使用。Tinyproxy 运行时占用资源较少,可以在资源受限的系统上运行。

综上所述,对于需要高级特性和配置的场景,建议使用 Squid;对于简单的代理需求,建议使用 Tinyproxy。当然,具体选择还要根据实际需求来决定。