文章介绍:使用官方vyos-1.5版本镜像,简单实现http代理能力,方案一可以使用vyos内置的set命令配置webproxy,方案二可以使用container部署squid。
一、VyOS镜像
https://ghfast.yydy.link:2023/https://github.com/vyos/vyos-nightly-build/releases
二、set设置webproxy
2.1、命令行set
set service webproxy cache-size '1024'
set service webproxy listen-address 0.0.0.0 disable-transparent
set service webproxy mem-cache-size '1024'
1. cache-size '1024'
:磁盘缓存 1GB,提高访问速度。
2. listen-address 0.0.0.0 disable-transparent
:监听所有 IP,关闭透明代理模式。
3. mem-cache-size '1024'
:内存缓存 1GB,减少磁盘读写,加快网页加载。
2.2、底层修改squid.conf
sudo sed -i '/^[^#]*http_access deny all/s/deny/allow/' /etc/squid/squid.conf
三、container部署squid
3.1、配置registry
set container registry dockerhub.yydy.link:2023
3.2、拉取镜像
run add container image sameersbn/squid
3.3、创建缓存目录
sudo mkdir -p /config/podman/squid/cache
3.4、启动容器
set container name squid allow-host-networks
set container name squid capability 'net-admin'
set container name squid capability 'sys-admin'
set container name squid capability 'net-raw'
set container name squid host-name 'vyos-squid'
set container name squid image 'sameersbn/squid'
set container name squid restart 'always'
set container name squid volume cache destination '/var/spool/squid'
set container name squid volume cache source '/config/podman/squid/cache'
commit
1. allow-host-networks
:允许容器使用宿主机的网络(与 VyOS 共享网络)。
2. capability 'net-admin'
:授予容器管理网络的权限,比如修改防火墙规则、路由等。
3. capability 'sys-admin'
:授予容器管理系统的权限,比如挂载文件系统等。
4. capability 'net-raw'
:允许容器发送和接收原始网络数据包。
5. host-name 'vyos-squid'
:设置容器的主机名为 vyos-squid
。
6. image 'sameersbn/squid'
:使用 sameersbn/squid
这个 Squid 代理的 Docker 镜像。
7. restart 'always'
:设置容器崩溃或重启时自动重启,确保代理服务持续运行。
8. destination '/var/spool/squid'
容器内部路径,Squid 在容器内存储缓存的目录。
9. source '/config/podman/squid/cache'
宿主机路径,VyOS 本机上的目录,实际存储 Squid 缓存数据。
3.5、拷贝默认配置至本地
sudo podman cp squid:/etc/squid/squid.conf /config/podman/squid
3.6、修改squid.conf
sudo sed -i '/^[^#]*http_access deny all/s/deny/allow/' /config/podman/squid/squid.conf
3.7、映射配置文件
set container name squid volume conf destination '/etc/squid/squid.conf'
set container name squid volume conf source '/config/podman/squid/squid.conf'
commit
save
1. destination '/etc/squid/squid.conf'
容器内部路径,Squid 在容器内使用的配置文件路径。
2. source '/config/podman/squid/squid.conf'
宿主机路径,VyOS 本机上的 Squid 配置文件。
3.8、重启容器
run restart container squid