Linux终端代理

一般的代理协议:

  • socket
  • http

检测是否处理代理方式:

1
2
curl ip.gs
curl https://www.google.com
  • 注意:设置代理后ping命令由于是ICMP协议,所以一般来说是ping不通外网的

设置环境变量

环境变量一般为http_proxyhttps_proxy,其内容一般格式为:http://user:password@proxy.server:port/

  • http:协议名字,一般为http或者socks5
  • user:password:如果需要密码,这里就填用户名和密码,否则为空
  • proxy.server:代理地址
  • port:代理端口号

命令:

1
2
3
4
5
6
7
8
# http
export http_proxy="http://proxyAddress:port"
export https_proxy="http://proxyAddress:port"
# socket
export http_proxy="socks5://proxyAddress:port"
export https_proxy="socks5://proxyAddress:port"
# 设置全部设置代理
export ALL_PROXY="socks5://127.0.0.1:1080"
  • apt命令不会通过上述环境变量来代理,有自己的配置文件,具体详见下文

  • 通过手动导入的方式能够使得只作用于当前终端中,不会影响整体环境

  • 写入系统配置文件.bashrc或者.zshrc能够一直保留

  • 通过在.bashrc或者.zshrc中设置alias可以简化操作:

    1
    2
    alias setproxy="export ALL_PROXY=socks5://127.0.0.1:1080"
    alias unsetproxy="unset ALL_PROXY"

分别设置

apt

如果在安装过程中填写了代理信息,则apt配置文件将被自动更新。否则需要按照如下方式更新:

1
2
3
4
5
6
7
8
9
10
# 1.创建配置文件
sudo vim /etc/apt/apt.conf.d/proxy.conf
# 2.添加以下内容配置代理
Acquire::http::Proxy "http://user:password@proxy.server:port/";
Acquire::https::Proxy "http://user:password@proxy.server:port/";
# 2.或以下内容
Acquire {
HTTP::proxy "http://127.0.0.1:8080";
HTTPS::proxy "http://127.0.0.1:8080";
}

或者直接编辑/etc/apt/apt.conf文件:

1
2
3
4
# 编辑配置文件
sudo vim /etc/apt/apt.conf
# 末尾加上
Acquire::http::Proxy "http://proxyAddress:port"

git

1
2
3
4
5
6
7
8
9
# 当前
git config http.proxy 'socks5://127.0.0.1:1080'
git config https.proxy 'socks5://127.0.0.1:1080'
# 全局
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
# 取消
git config --global --unset http.proxy
git config --global --unset https.proxy
  • 实际上全局的配置是修改的/home/username/.gitconfig文件

X Server

主要给没走系统代理的桌面程序使用:

1
2
3
# /home/username/.xprofile:
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890

ProxyChains

ProxyChains强制使给定程序发起的TCP连接通过事先配置的代理。可以涵盖所有需要代理的情景。

对于任何一个需要代理的命令行程序,直接在运行的指令前面加proxychains即可实现代理。

安装:

1
sudo apt install proxychains4
  • 默认安装proxychains是第三版的

配置:

proxychains 的配置文件顺序是当前目录下的 ./proxychains.conf 然后是 $HOME/.proxychains/proxychains.conf 最后是系统目录下的 /etc/proxychains.conf

1
vim /etc/proxychains4.conf
  • 添加对应的代理配置,其格式如下:

    1
    2
    3
    4
    ##代理列表开始
    [ProxyList]
    ##[]为可选内容
    type host port [user pass]
  • 注释远程DNS解析,防止DNS污染风险

    1
    2
    # 注释下面这行
    proxy_dns

ssh

通过ssh命令可以简单的进行代理,但是稳定性肯定没有上述方法好,临时用用还是可以的

详细情况请参考另一篇博客:Linux常用命令汇总