奇怪的 apt(-get) 代理认证行为

奇怪的 apt(-get) 代理认证行为

我在公司的电脑上安装了 Ubuntu18.04。并且我设置了通过公司代理连接互联网的配置,例如:

/etc/environment

http_proxy="http://user%40domain:[email protected]:port/"
https_proxy="https://user%40domain:[email protected]:port/"
ftp_proxy="ftp://user%40domain:[email protected]:port/"

/etc/apt/apt.conf

Acquire::http::Proxy "http://user%40domain:[email protected]:port/";
Acquire::https::Proxy "https://user%40domain:[email protected]:port/";
Acquire::ftp::Proxy "ftp://user%40domain:[email protected]:port/";

然后我就可以连接互联网并执行类似的 apt 命令sudo apt-get update

但是当第二天来临时,我无法执行 apt 命令。

Err:1 http://ftp.riken.jp/Linux/ubuntu bionic InRelease
  407  Proxy Authentication Required [IP: proxy.ip port]
Err:2 http://ftp.riken.jp/Linux/ubuntu bionic-updates InRelease  
  407  Proxy Authentication Required [IP: proxy.ip port]
Err:3 http://ftp.riken.jp/Linux/ubuntu bionic-backports InRelease
  407  Proxy Authentication Required [IP: proxy.ip port]
Err:4 http://ftp.riken.jp/Linux/ubuntu bionic-security InRelease               
  407  Proxy Authentication Required [IP: proxy.ip port]

但!!如果我从 GUI 打开 Firefox,这个问题就解决了...这太奇怪了,我无法理解这种行为...

Firefox 的设置是Use system proxy settings

我向公司的代理服务器管理员咨询了这个问题,我们的代理服务器似乎每晚都会重新启动。你能解释一下为什么会发生这种情况吗?我该如何执行 apt 命令每天无需打开 Firefox?

答案1

我在 Google 上搜索了很长时间,终于找到了解决方案......

答案是每天使用 shell 脚本以无头模式打开 Firefox!这可能不是一个优雅的答案,但无论如何我可以通过我们公司的代理 :(

这是我的脚本~/open_firefox.sh

# open url via firefox
firefox https://google.com --headless & disown

# wait 3s
sleep 3

# kill above process
pkill -f firefox

然后,通过crontab -e;注册crontab

0 2 * * * $HOME/open_firefox.sh

当然,不要忘记赋予执行权限。

sudo chmod +x ~/open_firefox.sh

相关内容