首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有可能运行(并更新) Ubuntu而只访问APT缓存器吗?

有可能运行(并更新) Ubuntu而只访问APT缓存器吗?
EN

Ask Ubuntu用户
提问于 2020-04-13 21:28:57
回答 1查看 510关注 0票数 4

我正在设置一些am和容器,并相应地划分一些专用网络范围。

假设我将客人分为“前端”(192.168.100.0/24)和“后端”(192.168.200.0/24)网络(有些可能同时访问这两个网络)。“前端”网络使用NAT,因此客人可以通过NAT访问互联网。然而,有些VM应该是一样分离的,因此“后端”网络只允许在该网络上的来宾和主机之间进行访问。DNS查询也将受到严格限制,以及来自这些客人的传出流量。

现在假设我在192.168.200.1 (后端)上运行了一个apt-cacher-ng实例,它恰好是主机。名称apt-cacher.backend.local解析为该IP地址,并且没有其他访问限制。

如果我要在VM的sources.list中调整所有的/etc/apt片段,请从:

代码语言:javascript
复制
deb http://us.archive.ubuntu.com/ubuntu/ focal main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ focal main restricted

..。(用讨厌的方式):

代码语言:javascript
复制
deb http://apt-cacher.backend.local:3142/us.archive.ubuntu.com/ubuntu/ focal main restricted
deb-src http://apt-cacher.backend.local:3142/us.archive.ubuntu.com/ubuntu/ focal main restricted

..。或者为APT选择稍微干净的配置节:

代码语言:javascript
复制
Acquire::http { Proxy "http://apt-cacher.backend.local:3142"; };

因此,总结事实:

  • apt-cacher.backend.local (= 192.168.200.1)和“后端”VM可能需要的任何名称都会很好地解决问题,其他任何名称都不会。
  • apt-cacher-ng将在192.168.200.1:3142上运行收听
  • 从“后端”VM访问完全限于后端网络(192.168.200.1/24),而netfilter规则将确保只提供VM提供的服务,并且只能访问apt-cacher-ng实例。

我的系统能以这种方式更新所有的软件包吗?(不,不会使用其他软件,否则我会自己打包。)

奖金问题:

  • 假设更新是这样工作的,在这样的配置中还有什么值得注意的吗?
  • 是否有一种合理的方法来处理使用https://的包回购?例如,“简单地”将各自的包镜像到不使用https://的本地回购协议中是否可行?
EN

回答 1

Ask Ubuntu用户

发布于 2020-04-19 09:22:11

我知道你想要完全限制后端对外界的访问。主机在192.168.200.1是后端的一部分。

Your idea可以工作,但是ACNG主机还需要访问上游存储库来代理后端包的请求(至少我理解您是这样做的)。因此,主机也需要成为前端的一部分,或者有其他连接互联网的方式。或者,您可以预加载所有必要的包到acng主机回购。不过,这看起来是一个麻烦的解决方案,但收益微乎其微。

我建议您查看/etc//后端*文件,以硬连接将使用哪些上游服务器。

我还建议您在VM上安装鱿鱼-deb-代理-客户端包。这将允许您对VM进行完全透明的配置,而无需修改/etc/apt/Sourcees.list。魔法通过avahi和/etc/apt/apt.conf.d/30自动代理实现。从一个VM运行/usr/share/squid-deb-proxy-client/apt-avahi-discover,以确保您获得ACNG主机的IP。

如果您将后端机器/VM上的sources.list文件更改为apt-cacher.backend.local,则无需进一步更改。如果您将us.archive.ubuntu.com放在那里,那么您需要通过DNS解决这个问题(它基本上可以解析到您喜欢的任何IP,因为请求将被代理到ACNG主机)。

通过https为上游repos提供服务将需要附加配置

Some在一天后添加了其他注意事项

  • 您刚才提到,您将有一些本地生产的软件包要安装。我想你将从局域网内的$host中为他们服务。在这种情况下,我建议添加一个文件/etc/apt.conf/99,其中包含"Acquire::http::Proxy::$host "DIRECT";。这将绕过acng代理。就我个人而言,我已经将这个文件包含在我安装在所有机器上的配置deb文件中,它是我从$host提供的文件之一。该配置deb-文件在/etc/apt/Sourcees.list.d/Private.list中有另一个配置片段,其中包含指向reprepro存储库的deb http://$host/repo/debs/ generic private。也许这对你也有好处。
  • 我还想让您注意的一点是,如果avahi-browse/usr/share/squid-deb-proxy-client/apt-avahi-discover列出了一个apt_proxy服务的多个实例,您可能会遇到一个问题,这取决于您VM的版本。
票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1226857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档