Ubuntu常用代理设置方法

文章目录
  1. 环境变量设置
  2. APT系列
  3. Docker
  4. maven代理
  5. pip代理

使用Tinyproxy 在一台可以连接公网的机器上搭建了代理,这样可以让内网机器可以连接通过连接该代理,访问外网资源。 不过很多常用的应用或者命令的代理方式不一致。因此总结一下:

环境变量设置

可以直接在命令行: export http_proxy=http://ip:port. 或者在.bashrc里面加入这一行可以一直生效。 这个可能对于某些命令有效。对于sudo操作,需要在sudo之后加-E

APT系列

包含apt update/intall/upgrade等, 一般使用选项设置代理,如:

1
sudo apt -o Acquire::http::proxy="http://ip:port" update

或者使用-c 写到文件 apt_proxy.conf,内容:

1
2
Acquire::http::proxy="http://ip:port"

这样就可以这样使用代理:

1
2
sudo apt -c ~/apt_proxy.cong update

不过有一些命令可能还需要单独设置:

  • apt-key adv 添加key的时候, 这时候需要用专门的代理选项
    1
    sudo apt-key adv --keyserver-options http-proxy=http://ip:port/ --keyserver keyserver.ubuntu.com --recv-keys XXXXX
  • ADD-APT-REPOSITORY 添加源的时候,因为一般是sudo 权限所以即使设置了环境变量,也不能生效,这时候需要用-E选项
    1
    sudo -E add-apt-repository XXXX
    这个也属于一种通用的方式,sudo -E 表示使用当前用户的环境变量。

Docker

这个直接按照官网教程来即可: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

  • 创建一个服务目录:在/etc/systemd/system/ 下:
    1
    sudo mkdir  docker.service.d
  • docker.service.d目录下新建一个 http-proxy.conf的文件, 写入如下的内容
    1
    2
    [Service]
    Environment="HTTP_PROXY=http://ip:port/"
  • 当然如果有内网的Docker仓库,也可以设置不走代理的名单,只需在后面加上即可,如:
    1
    2
    [Service]    
    Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"
  • 刷新系统配置: sudo systemctl daemon-relaod
  • 重启docker sudo systemctl restart docker
  • 查看验证docker的配置: systemctl show --property=Environment docker

maven代理

修改setting.xml文件,一般位于~/.m2/setting.xml 或者 maven安装目录下的/conf/setting.xml, 修改如下信息(去掉注释):

1
2
3
4
5
6
7
8
9
10
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>

其中,上述选项有的可选,没用的直接删除即可:

pip代理

直接使用--proxy 选项:

1
sudo pip --proxy 127.0.0.1:8888 install XXXX