文章介绍:使用官方vyos-1.5版本镜像,简单实现http代理能力,方案一可以使用vyos内置的set命令配置webproxy,方案二可以使用container部署squid。

一、VyOS镜像

官方 GitHub 滚动版下载

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

四、windows使用

yydy_2025-02-25_23-48-59