【金沙官网线上】三种方式给apt设置代理

金沙官网线上 1
为什么设置代理,你懂得。

在crontab中使用环境变量

有很多第三方工具可以用,比如proxychains,非常好用,不过今天这不是正题。因为有可能没有代理,上网你都做不到,更别提下载软件了。想一想方法还是告诉你,免得你万一必须用:sudo apt install proxychains

 

通常有三种办法为apt设置代理,有了代理能上网之后,apt才能为你带来其它软件的帮助。
1.设置环境变量,如果想为所有用户设置,可以编辑/etc/profile或者/etc/environment;如果只是当前用户使用,可以设置~/.profile文件,如果使用的不是bash,可能要根据需要设置其它配置文件,具体看使用shell的帮助文件,比如fish是使用:~/.config/fish/config.fish。另外不同的脚本设置环境变量的命令是不同的,注意区别使用。
以bash为例,把下面这行脚本写入配置文件。记着把代理的用户名、密码替换成自己的,如果没有密码也可以把@之前的部分包括@都去掉:

环境:(产品,平台,机型,软件版本,等)AIX5L

export HTTPS_PROXY=http://username:password@192.168.1.1:8080

  www.2cto.com  

如果使用的是socks5代理,可以写成这样:

问题描述:crontab中启动的shell脚本不能正常运行,但是使用手动执行没有问题,在$home/.profile中设定了脚本所需要的环境变量。

export HTTPS_PROXY="socks5://192.168.1.1:8088"
#或者
export ALL_PROXY="socks5://192.168.1.1:8088"

 

2.如果不想一直使用代理,只是各别命令行程序有代理需求,可以使用临时的环境变量。方法是,建立一个脚本文件,比如叫proxy.sh,内容为:

解答:cron命令的默认shell是/usr/bin/bsh,如果要在cron启动的脚本中使用ksh,就必须在脚本中的第一行添加“#!/usr/bin/ksh”的声明。

#!/bin/sh
HTTPS_PROXY=http://username:password@192.168.1.1:8080 $*

 

这样,以后需要使用代理执行某个命令的时候,用如下的形式:

如果cron进程启动的shell脚本要用登录时的环境变量,就必须在cron启动的shell脚本中添加下面的内容,才能够在启动的脚本中使用

proxy.sh curl https://www.google.com

$home/.profile文件中的环境变量。

这种方法对于某些子进程没有继承父进程环境变量的情况,会有兼容问题。不如proxychains好用。不过对于apt的测试是可以的。

 

3.针对apt进行设置,当然就只对apt有效了。其它常用软件git之类的,都有自己的方法,请自行搜索相关设置。设置apt代理的方法是:

. $home/.profile

sudo su
vi /etc/apt/apt.conf.d/10proxy   #这个文件正常不存在,会新建一个
#编辑内容为:
Acquire::http::Proxy "http://user:pwd@192.168.1.1:8080";

 

金沙官网线上,随后执行apt的任何操作,都将使用这个代理了。

这是因为cron进程执行的shell脚本是不会自动加载用户目录下的.profile文件,所以需要脚本自己加载所需要的环境变量。

参考文献:
https://stackoverflow.com/questions/25322280/how-can-i-configure-a-http-proxy-for-apt-get

================

环境变量文件加载顺序

本文由金沙官网线上发布于操作系统,转载请注明出处:【金沙官网线上】三种方式给apt设置代理

您可能还会对下面的文章感兴趣: