ZHYCarge的博客

旧平台,已不再维护,请点击下方链接转至新平台访问

0%

如何实现linux终端代理

前言

由于部分终端命令需要从github上进行下载,然而限于国内网速过慢,因此探寻一高方法,可以让终端去使用代理

参考

Linux终端设置代理

代理与VPN的区别

过程

代理与VPN的区别

匿名性

代理和VPN的操作非常相似。它们都位于请求的中间,都隐藏了您的IP地址,并且都将信息转发给您。主要区别在于VPN需要隧道过程,该过程建立了到您和VPN服务器的直接且不可穿透的连接。代理只是一个开放的端口,你可以连接,没有隧道,也不是不能通过的。

其次,代理往往是任何人都可以连接到的单个IP地址。如果它是公共代理服务器,那么由于没有密码和身份验证,因此很多人都可以连接到它,并且通常可以在网络上使用它。一般来说,公共代理并不安全,因此不应使用。

从技术上讲,付费的私人代理仍然可以被多个人访问,但是如果您为单个精英代理付费,则只有您(和您的提供者)才能访问它。VPN始终需要登录和身份验证,并且将通过VPN服务器为您分配IP地址。

安全性和隐私性

代理

代理被称为超级安全和私有的,因为它们隐藏了您的IP地址。这是事实,但并没有那么简单。代理技术将始终完成替换IP地址的基本工作-“代理”本身就是您要连接的另一个IP地址,它向网站显示了自己的IP地址,而不是您的IP地址。

但是,代理有多种类型,每种代理都有特定的安全性和私密性的优缺点。

  • 免费代理。这些宣传匿名性,但实际上并没有提供。免费代理及其提供者通常会记录您的活动日志,为更复杂的网站隐藏您的IP地址时做得很糟糕,而且速度缓慢。他们还可以在您的计算机上安装恶意软件并跟踪您输入的信息(例如信用卡和登录信息),因此它们实际上根本不是安全的或私有的。
  • 精英私人代理人。您将支付这些费用,并伴随这些钱获得合法隐私的机会。好的代理提供商不会(尽管可以)保留您的活动日志,无论您访问哪个网站,都确保您的IP地址保持隐藏状态,并且可靠。

这是两种主要类型,但是还有另一个需要考虑的技术因素。代理通常以三种主要格式出售:HTTP,HTTPS和SOCKS。当涉及到安全性时,这些功能分别具有不同的功能。

  • 这是最基本的,因此也是最不安全的。大多数私有提供商默认提供HTTP代理,尽管它们会很好地隐藏您的IP地址或地理位置,但建议您不要信任它们以获得银行帐户密码之类的超敏感信息。

  • 这是HTTP的更安全版本,您会在URL中看到许多带有HTTPS的挂锁站点。这已成为安全站点的代名词。HTTPS代理通常更昂贵且更难找到,但可以提供更高的安全性。

  • 从技术上讲,这是一种不同的协议,可以实现完全安全的交易。SOCKS通常是VPN的基础技术,因此,如果您购买SOCKS代理,您将拥有VPN的安全功能,而无需整个网络。

VPN

VPN比代理更安全,更私有。从技术角度来看,它们本质上是封闭的系统,您只能在获得许可的情况下访问它们。

由于采用了隧道方法,因此计算机上的所有流量都是隐藏的且不公开的,这意味着政府和广告商(您最大的两点担心)将无法查看您正在浏览,下载或在线进行的操作。

终端如何设置代理(环境变量方案)

Windows/Mac系统浏览器能上外网的秘密是客户端默认设置了http、https、socks5代理(或者PAC自动代理),对应到Linux终端/命令行则是两个重要的环境变量:http_proxy、https_proxy(GNOME环境会设置all_proxy环境变量)。

SS/SSR/V2ray等客户端,默认会监听一个socks5端口,例如1080,因此让Linux终端命令走代理的方法便是设置这两个环境变量:

1
2
export http_proxy="socks5://127.0.0.1:1080"
export https_proxy="socks5://127.0.0.1:1080"

设置好这两个环境变量后,许多软件,例如curlwget,默认会读取变量的值,发现设置了就走代理,因此可以访问外网。

但并不是所有软件都遵循约定,例如git就不认这两个环境变量。git有自己的一套,需要单独设置:

1
2
git config --global http.proxy 'socks5://127.0.0.1:1080' 
git config --global https.proxy 'socks5://127.0.0.1:1080'

如果不想软件走代理,unset这两个环境变量就可以了:

1
2
unset http_proxy
unset https_proxy

使用环境变量的话

优点:

  • 是比较简单,容易实现

缺点:

  • 环境变量的更改是全局性的,设置之后所有的命令都会走代理,如果需要访问其他东西,就会比较麻烦

  • 并且有部分软件会不承认这两个环境变量,因此即使设置了也不起作用

终端如何设置代理(proxychains方案)

本节以Ubuntu系统介绍使用proxychains克服环境变量方案的两个缺点,实现按需、所有软件都能走代理。

首先安装proxychainssudo apt install -y proxychains

然后编辑 /etc/proxychains.conf 文件,在最后的**[ProxyList]**一节中增加代理设置,例如:

1
socks5 127.0.0.1 1080

接下来,所有希望走代理的命令,前面增加proxychains即可,例如:

1
2
3
4
# git克隆
proxychains git clone https://github.com/hijkpw/scripts
# composer更新
proxychains composer update -vv

需要连外网的命令比较少,并且可以让所有软件都走代理,因此proxychains是推荐方式。

请注意:本文所提到的所有127.0.0.1:1080均是代理设置的转发,如果使用过程中有更改自己相关的代理端口,相关设置的端口信息也应该进行更改

-------------我也是有底线的哦如需更多,欢迎打赏-------------