APT için proxy yapılandırılsın mı?


72

Proxy'yi yapılandırmam gerekiyor. İçinde apt.confdosya etc/apt/yoktu, ben de onu kullanarak yarattım nano.

Ama orada ne yazmam gerektiğini anlamıyorum. http_proxy = http://lgn:pwd@192.168.1.254:8080/Orada yazdım ve yeniden başlattım networking. Ama denediğimde apt-get update- işe yaramıyor.

Aslında apt.confdosyada hangi portu ve ipi yazmam gerektiğini anlamıyorum ( 192.168.1.254ip ve 8080port için örnek vardı, bu yüzden onları kullanmaya karar verdim).


Bir ubuntu ziyarette kurumsal vekaleten iş bulmak vekil ayarlarında değişiklik yoktur github.com/navinas33/docker_ubuntu.git o ... işleri
olarak Navin

Yanıtlar:


103

Bir proxy kullanmak için bir proxy sunucusuna ihtiyacınız vardır. IP ve port bu proxy sunucusundan olmalıdır. Giriş ve şifre, proxy sunucusundaki kullanıcı ve şifreniz olmalıdır (proxy giriş gerektiriyorsa).

Gönderen help.ubuntu.com sitesinde :

APT yapılandırma dosyası yöntemi

Bu yöntem, / etc / apt / dizininizde bulunan apt.conf dosyasını kullanır. Bu yöntem, yalnızca apt-get (ve diğer uygulamaları değil) bir http-proxy'nin kalıcı olarak kullanmasını istiyorsanız faydalıdır.

Bazı kurulumlarda apt-conf dosyası kurulmayacaktır. İstediğiniz düzenleyiciyi kullanarak apt-conf dosyasını düzenleyin (veya henüz hiç kimse yoksa yeni bir tane oluşturun).

sudo nano /etc/apt/apt.conf

Bu satırı /etc/apt/apt.conf dosyasına ekleyin (bilgilerinizi proxy adresiniz ve proxyport'unuz ile değiştirin).

Acquire::http::Proxy "http://yourproxyaddress:proxyport";

Apt.conf dosyasını kaydedin.

Proxy’niz bir kullanıcı adı / şifre gerektiriyorsa, yerine:

"http://yourproxyaddress:proxyport";

ile:

"http://username:password@yourproxyaddress:proxyport";

Proxy sunucusundan kullanıcı adı ve şifreyi kullanarak.


6
Ayrı bir yerel dosya eklemek /etc/apt/apt.conf.d/tercih edilir, bu nedenle sistemin temel yapılandırma dosyalarını düzenlemek zorunda değilsiniz. Bu şekilde, daha sonraki bir paket sürümünde güncellenirlerse, yerel değişikliklerinizi elle birleştirmeniz gerekmez.
üçlü

Kullanıcı dizininde bir proxy conf dosyası var mı?
becko

Bu cevabın güncellenmesi gerekiyor: gksudo eski. sudo -HGedit veya benzeri bir aygıt kullanıyorsanız, GUI dışı başka bir editör veya gksudo yerine önermeyi düşünün .

24

Bu apt config ile birlikte daha genel bir cevaptır.

Proxy ayarlarını yapılandırmak için pek çok yer olduğundan başlangıçta kafa karıştırıcı olabilir. Bazı şeyleri özetlememe ve iyi uygulamalar önermeme izin verin.

Konsol programları için

Örn: wget, git ve internete bağlanan hemen hemen her konsol uygulaması.

Proxy'lerinizi bir nedenden ötürü her çalıştırdığınızda yapılandırmak istiyorsanız, aşağıdaki komutları kullanarak ortam değişkenlerini ayarlayın .

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Diğer tüm kullanıcılar için her seferinde aynı ayarları kullanmak istiyorsanız, sonra bunları kullanın.

Bashrc'de yapılandır

$ nano /etc/bash.bashrc
export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export ftp_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/

Yapılandır /etc/environment

$ nano /etc/environment
https_proxy="http://myproxy.server.com:8080/" 
ftp_proxy="http://myproxy.server.com:8080/" ...

GUI kullanarak yapılandırma

Ağ ayarlarını açın ve sisteminizin genel ağ proxy'sini ayarlayın.

Ağ -> Ağ proxy -> Yapılandır -> Sistemi geniş olarak uygula.

Ancak proxy için kimlik doğrulamanız varsa bu kullanışlı olmayabilir.

Apt için.

Apt için tesadüfen bazı ek işler yapmanız gerekir, çünkü apt'nin tesadüfleri ortam değişkenlerine uymaz,

$ nano /etc/apt/apt.conf
Acquire::http::Proxy "http://USERNAME:PASSWORD@SERVER:PORT";
Acquire::https::Proxy "https://USERNAME:PASSWORD@SERVER:PORT";

Bu kapsam dışında kalan her şey için, uygulamanın kendisinde proxy ayarlarını yapılandırma seçeneği bulunmalıdır. Üzgünüm değilse;)


2
/ etc / ortamındaki config çok önemlidir, çünkü kullanıcı için http_proxy var ayarını sadece ayarlarsanız, sudo moduna geçtiğinizde ('sudo apt-get update' gibi şeyler için), terminal genellikle mevcut ortamı korumaz vars; ayarlarınızı sınamak için çok önemli: sudo echo $ http_proxy
belun

HTTP_PROXY(büyük harflerle), bu değişken için standart ad olarak görünmektedir, ancak birçok program küçük harf sürümüne geri dönecektir. https_proxy(Küçük harf notu) bunun için doğru büyük harf, ancak /etc/environmentyukarıda da olduğu gibi, asla yalnız kullanmazsınız . (Ben sbir yazım hatası olduğunu düşünüyorum .)
Curt J. Sampson

APT'nin ek proxy yapılandırması gerektirmesinin nedeni nedir? Neden / etc / ortamına uymuyor?
Loreno

22

Aşağıdaki gibi bir şey çalışması gerekir:

Acquire::http::proxy "http://lgn:pwd@192.168.1.254:8080/";
Acquire::https::proxy "http://lgn:pwd@192.168.1.254:8080/";

Hangi port ve ip kullanmak için fark var mı?
lapts

Evet, elbette kullanmak istediğiniz vekil için doğru bilgileri vermeniz gerekir.
Dennis Kaarsemaker

er ... ip - yönlendiricinin ipi mi? Bu ipten örnek kullandım ama tüm yönlendiricinin ayarları 192.168.1.1ip kullanarak tarayıcıda yapılandırdım . .1 kullanmalı mıyım? ve giriş ve şifre ubuntu kök veya yönlendirici olmalı?
lapts

2
Ne yaptığını biliyor musun? Ayrıntılarını bilmiyorsanız bir proxy kullanmanız gerektiğini nereden biliyorsunuz?
Dennis Kaarsemaker

5
O zaman öğretmenine sor. Bu bir "ödevimi benim için yap" sitesi değil.
Dennis Kaarsemaker

5

Yapabileceğiniz şey, sudo -Eortam ayarlarını alacak olan komutu çalıştırmayı da denemektir . Güncellemeye çalıştığımda, apt-apt-repository eklemeye ve yüklemeye çalıştığımda benim için çalışıyor gibi görünüyor. Örnek:

sudo -E add-apt-repository ppa:xxxxx

@David Foerster'e göre bu sadece kabuk kullanarak manuel etkileşim için çalışır, ancak kullanıcı etkileşimi olmadan Apt'yi çağıran otomatik görevler ve hizmetler üzerinde çalışmaz.


Bu olsa da, kullanıcı etkileşimi olmadan Apt'yi çağıran otomatik görevler ve servisler için yardımcı olmaz.
David Foerster

Bildirim için teşekkür ederiz, cevabınıza yorumunuzu ekleyeceğim.
Frank Qiu

2

Bir proxy arkasında apt kullanmanız gerekiyorsa, büyük olasılıkla her şeyin de proxy config'e ihtiyacı vardır. Proxy ayarlarımı, ortam değişkeni olabilecek tek bir yerde yönetmeyi seviyorum.

Bunun için /etc/profiles.d/99-proxy.shgerekli proxy ayarlarını içeren bir tane oluşturdum (tarif edildiği gibi):

export http_proxy=http://DOMAIN\USERNAME:PASSWORD@SERVER:PORT/
export https_proxy=$http_proxy
export ftps_proxy=$http_proxy

Bu şekilde, o makinedeki tüm kullanıcılar proxy’ye erişebilir. (unutma chmod a+x)

Bir kullanıcı olarak apt veya apt-get kullandığınızda, bu kullanıcı sudo kullanabilir. Frank Qiu'nun açıkladığı gibi, sudo ortam değişkenlerini geçmiyor. Bunun için ekleyebilirsiniz

Defaults env_keep += "http_proxy https_proxy ftp_proxy"

için (örneğin)

/etc/sudoers.d/00-environment 

veya doğrudan

/etc/sudoers

dosya. Bu şekilde proxy ayarlarını yalnızca bir yerde yönetmeniz gerekir.


0

Orijinal soru yanlış yönde olabilir. Linux'ta bir proxy sunucusu kurmak istediğinize inanıyorum?

Bu, Linux ortamından mevcut bir proxy kullanmak istemekten tamamen farklı.

Sorunuz ilki ise, Linux'ta bir proxy sunucusu yapılandırmak için herhangi bir üçüncü taraf hizmetini kullanın. Bir örnek kalamar olabilir.

Kalamar yüklemek için basit komutlar:

$ sudo apt-get install squid3

Ardından Yerel Ağa izin vermek için yapılandırmayı düzenleyin (bu durumda kendi makineniz). $ sudo vi /etc/squid3/squid.conf

Aşağıdaki satırları ekleyin / düzenleyin:

http_access allow local_net
acl local_net src 192.168.1.0/255.255.255.0

Linux makineniz için IP’nizin 192.168.1 / 24 blokta olduğunu varsayalım.


Muhtemelen bu sorunun okuyucularının çoğu zaten kalamar yüklü;), ayrıca http[s]_proxyENV değişkenlerini de belirlediler ve şimdi merak ediyorum, APT neden hala çalışmıyor? Ancak, makine hariç her şeyden HTTP 403 alıyorsanız squid- kelimenin denyyorumlanmayan tüm oluşumları için bir kez daha bakın . (özellikle http_accessaynı çizgide.
Tomasz Gandor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.