为什么apt-get总是使用代理,虽然没有配置代理?
我正在尝试禁用apt-get
的代理,但似乎apt-get
从/etc/apt/apt.conf
以外的其他地方获取代理配置,因为虽然apt.conf
文件是空的(并且系统代理设置为None
)它仍在尝试连接到代理。
有人有个主意吗?
我正在使用脚本替换不同的配置文件,以便在代理和非代理环境之间轻松切换。 问题是我用一个空的apt.conf文件替换了代理apt.conf文件,然后将其忽略。
写完Acquire::http::Proxy "false";
进入apt.conf它没有代理:)
有时,仍然存在设置的代理环境变量。
要找到答案,请执行以下命令:
env | grep proxy
如果您看到一些输出,例如:
http_proxy=http://127.0.0.1:1234/
然后你需要取消设置这个变量。
为此,请执行以下命令:
unset http_proxy
对所有其他条目采用相同的方法,例如https_proxy
。
apt-get读取配置文件不仅有一个地方。 您应该运行grep proxy /etc/apt/apt.conf.d/*
,它将为您提供具有代理设置的确切文件(这只是一个使用update
而不是proxy
运行的示例:
grep update /etc/apt/apt.conf.d/* /etc/apt/apt.conf.d/20apt-show-versions:// When Apt's cache is updated (ie apt-cache update) /etc/apt/apt.conf.d/20packagekit:// Whenever dpkg is called we might have different updates /etc/apt/apt.conf.d/20packagekit:// ie if an user removes a package that had an update /etc/apt/apt.conf.d/20packagekit:"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null"; /etc/apt/apt.conf.d/20packagekit:// When Apt's cache is updated (ie apt-cache update) /etc/apt/apt.conf.d/20packagekit:"/usr/bin/test -e /usr/share/dbus-1/system-services/org.freedesktop.PackageKit.service && /usr/bin/test -S /var/run/dbus/system_bus_socket && /usr/bin/gdbus call --system --dest org.freedesktop.PackageKit --object-path /org/freedesktop/PackageKit --timeout 1 --method org.freedesktop.PackageKit.StateHasChanged cache-update > /dev/null; /bin/echo > /dev/null";
环境变量http_proxy可能设置为某个代理。 尝试清除变量(或至少查看它是否有值)
使其工作的愚蠢方法是使用system settings > Network
禁用代理一段时间。
或者从/etc/environment
和/etc/apt/apt.conf
删除代理配置
一旦您需要代理回来,请添加手动代理配置。
如果您不希望apt-get
使用代理,请使用apt-get
as:
sudo apt-get -o Acquire::http::proxy=false
尽管为服务器打开了所有端口,并且apt的配置文件中没有任何内容,但机器仍然希望使用代理。 取消环境变量就是诀窍