J'ai fait des recherches sur plusieurs solutions et certains développeurs Ubuntu ont proposé une configuration de proxy (basée sur Squid) pour 10.04 et les versions ultérieures. Ça s'appelle squid-deb-proxy
. Il suffit qu'une machine agisse en tant que serveur. Les grandes entreprises utilisent généralement leur propre miroir, mais pour la plupart des gens, la mise en miroir à la demande suffit.
Pourquoi squid-deb-proxy?
- Pas d'édition de fichiers côté client.
- Utilisez zeroconf pour que les clients soient "zéro configuration"
- Utilisez une solution proxy solide existante au lieu d'écrire un nouvel outil.
- Facile à configurer pour un administrateur Linux typique.
Configuration du serveur
Sur la machine que vous souhaitez utiliser en tant que serveur, installez l'outil avec:
sudo apt-get install squid-deb-proxy avahi-utils
Maintenant, démarrez les bits de service:
sudo start squid-deb-proxy
Et les bits d'avahi (vous n'en avez pas besoin si vous êtes sur 12.04+):
sudo start squid-deb-proxy-avahi
Cela installera le serveur proxy (qui écoute le port 8000 par défaut) et les outils avahi nécessaires au serveur pour s’annoncer sur votre réseau via zeroconf.
Configuration client
Sur chacun des ordinateurs sur lesquels vous souhaitez utiliser le cache (les clients et le serveur lui-même afin qu'il puisse également utiliser le cache), vous devez installer l'outil côté client qui permet de rechercher le serveur automatiquement, faites-les cliquer ici. :
ou via la ligne de commande:
sudo apt-get install squid-deb-proxy-client
Facultatif : pour une efficacité maximale, vous devez configurer une machine pour télécharger automatiquement les mises à jour. Ainsi, lorsque vos autres machines en ont besoin, elles sont déjà dans le cache. Vous pouvez le faire en allant dans Système-> Administration-> Gestionnaire de mises à jour, puis cliquez sur le bouton "Paramètres ...", dans l'onglet Mise à jour, configurez-le pour télécharger automatiquement toutes les mises à jour.
Mettre en cache des sources tierces
Par défaut, le cache est configuré pour ne mettre en cache que les référentiels Ubuntu officiels. Pour en ajouter davantage, vous devez les ajouter à la liste des sources à l'adresse /etc/squid-deb-proxy/mirror-dstdomain.acl
. C'est ici que vous pouvez ajouter ppa.launchpad.net ou d'autres services que vous pourriez utiliser. Après avoir modifié ce fichier, vous devez l'exécuter sudo restart squid-deb-proxy
pour que les modifications soient effectives.
Configuration manuelle
Si, pour une raison quelconque, vous ne souhaitez pas utiliser zeroconf (pour des raisons de réseau ou autre), vous pouvez configurer manuellement un client pour qu'il utilise le proxy en modifiant /etc/apt/apt.conf
et en ajoutant la strophe suivante (remplacez 0.0.0.0 par l'adresse IP du serveur). ):
Acquire {
Retries "0";
HTTP { Proxy "http://0.0.0.0:8000"; };
};
Pare-feu
Si vous utilisez un pare-feu, avahi utilise l'adresse 5353 au-dessus des adresses 224.0.0.0/4 et requiert une règle ressemblant à ceci:
# Specifically port 5353 which avahi uses
-A INPUT -i eth2 -d 224.0.0.0/4 --dport 5353 -j ACCEPT
# OR
# Wide open so all local broadcasting works
-A INPUT -i eth2 -d 224.0.0.0/4 -j ACCEPT
Ensuite, vous devez ouvrir le port TCP 8000 pour la communication réelle via le proxy. Quelque chose de plus ou moins comme ça:
-A INPUT -i eth2 -p tcp -m tcp --dport 8000 -d 192.168.0.1 -s 192.168.0.0/24 --syn -j ACCEPT
Ces règles sont juste pour vous aider. Ils ne correspondront probablement pas à votre configuration. (c.-à-d. mauvaise interface, mauvaises adresses IP de réseau privé, etc.)
Confirmer cela fonctionne
Commencez par mettre le journal sur le serveur afin que vous puissiez le consulter: tail -F /var/log/squid-deb-proxy/access.log
puis exécutez une mise à jour sur toute machine sur laquelle le client est installé; le journal devrait commencer à défiler avec des entrées comme celle-ci:
1307310795.647 32 192.168.1.106 TCP_MISS/302 768 GET http://us.archive.ubuntu.com/ubuntu/dists/natty-proposed/universe/i18n/Translation-en.xz - DIRECT/141.210.26.10 text/html
1307310795.683 34 192.168.1.106 TCP_MISS/302 752 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.716 32 192.168.1.106 TCP_MISS/302 746 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/main/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.750 32 192.168.1.106 TCP_MISS/302 764 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en_US.lzma - DIRECT/141.210.26.10 text/html
1307310795.784 32 192.168.1.106 TCP_MISS/302 758 GET http://us.archive.ubuntu.com/ubuntu/dists/natty/multiverse/i18n/Translation-en.lzma - DIRECT/141.210.26.10 text/html
1307310795.817 32 192.168.1.106 TCP_MISS/404 657 GET http://us.archive.ubuntu.com/dists/natty-proposed/multiverse/i18n/Translation-en_US.xz - DIRECT/141.210.26.10 text/html
Ce qui signifie que les clients voient le cache mais le manquent, ce qui est attendu car il n'a encore rien mis en cache. Chaque exécution suivante devrait apparaître comme TCP_HIT. Vous pouvez trouver les fichiers de cache squid eux-mêmes dans /var/cache/squid-deb-proxy
.
En l'utilisant
À partir de ce moment, toutes les machines de votre réseau vérifieront le cache avant de frapper le réseau extérieur pour récupérer les paquets. Si de nouveaux packages sont disponibles, le premier ordinateur le téléchargera du réseau, après quoi les demandes ultérieures pour ce package seront envoyées du serveur aux clients.
FAIRE
Nous devons encore permettre à apt d'utiliser simplement un cache annoncé sur le réseau immédiatement et par défaut, de sorte que vous n'avez pas besoin d'installer la pièce cliente. Nous devons également corriger le bogue selon lequel le fichier deb de 403 ne figure pas dans la liste des miroirs.
apt.conf
fichier sous/etc/apt
. Cependant, il existe une pléthore de fichiers avec des paramètres sous/etc/apt/apt.conf.d
. J'imagine que nous devrions maintenant créer un fichier là-bas?apt-cacher-ng
C’est la solution pour moi: je n’ai rencontré aucun problème dans les environnements de petite taille (environ 20 clients). Je suppose donc que les problèmes mentionnés par @MagicFab ont été résolus dans la version actuelle (installée sur Ubuntu 10.04 et 10.10). Aucune configuration n'est nécessaire pour le serveur et il vous suffit d'indiquer à vos clients d'utiliser le serveur en tant que proxy du gestionnaire de packages.Le serveur est complètement installé et configuré en installant le
apt-cacher-ng
paquet.Les clients doivent être configurés en configurant le proxy APT - en ajoutant le fichier
/etc/apt/apt.conf.d/01proxy
contenant ce dernier (où "votre-apt-serveur" est le nom ou l'adresse IP de votre serveur):Terminé - les paquets seront désormais mis en cache par le serveur, quelles que soient les sources utilisées ou la version de votre système (un serveur 10.04 peut par exemple être utilisé par les clients 9.10, 10.04 et 11.04 sans aucun problème ni conflit).
Si vous avez un ou plusieurs ordinateurs portables clients qui se déplacent entre réseaux, cela devient un peu plus complexe: j'ai créé un script qui définit le bon proxy en fonction de l'adresse du réseau; le script est exécutable et en
/etc/network/if-up.d/apt-proxy
. Lors de la réception d'une adresse IPv4 d'un serveur DHCP, le script définira le bon serveur apt-cacher pour le réseau respectif:la source
squid-deb-proxy
etsquid-deb-proxy-client
: zeroconf signifie en effet zéro configuration sur les clients, ce qui est extrêmement utile pour les utilisateurs nomades - et si un serveur ne répond pas, le client utilise par défaut le téléchargement direct.pbuilder
. Cela a fonctionné hors de la boîte. De plus, il semble qu'il y ait un soutien pourzeroconf
(en 2016), mais je ne pouvais pas (encore) le faire fonctionner de mon côté.Une des solutions les plus simples consiste à installer apt-proxy.
Lisez la documentation ubuntu ici: https://help.ubuntu.com/community/AptProxy
la source
Je préfère de loin configurer un miroir local à l'aide de l'
debmirror
utilitaire.Voici un exemple d'incantation.
Je l’utilise environ une fois par semaine et je l’utilise comme base pour établir un ou plusieurs "niveaux de patch". Par exemple...
Cela crée une copie liée de l’arborescence (utilise presque aucun espace disque) vers laquelle je peux diriger chacun de mes serveurs locaux dans apt sources.list
la source
Dans les petits réseaux (tels que les particuliers / les petites entreprises), j’ai utilisé apt-cacher-ng avec de bons résultats. Je n'ai pas vérifié les dernières versions, mais je sais qu'il nécessite une configuration minutieuse du serveur et des clients, et qu'il convient mieux aux clients qui ne recevront que les mises à jour de votre réseau local.
J'ai essayé la solution à base de calmars au -dessus , mais il obligé d' appliquer plusieurs solution de contournement et plus la configuration du client que je ne voudrais, donc il ne se sent pas encore comme il pourrait remplacer apt-ng-en cacher les petites configurations.
la source
apt-cacher
n’était pas la plus facile à configurer et il ne survivra pas à une mise à jour dist.Installez
squid-deb-proxy
sur le serveur,squid-deb-proxy-client
sur les clients. Il utilise zeroconf Avahi, aucune configuration n'est donc nécessaire.Si vous cherchez à cacher plus que de simples debs, je ne m'embêterai pas avec Squid. Apache Traffic Server est la prochaine grande chose. http://trafficserver.readthedocs.org
la source