Bootstrap

b4tman / docker-squid 可快速安装运行的、容器型代理服务器 + podman

使用容器部署,省时省力。

使用镜像,目前的最大麻烦就是之前各大镜像源纷纷关闭,需要自己找到合适的、安全的镜像源。

幸好 docker-squid 推广在 ghcr.io,目前下载没有障碍。

注:ghcr.io 是 GitHub Container Registry 的域名。GitHub Container Registry 是 GitHub 提供的容器镜像注册表服务,允许开发者在 GitHub 上存储、管理和分享 Docker 镜像。

docker-squid 有 3 种版本

  > https://github.com/b4tman/docker-squid 

容器文件小

Docker Squid container based on Alpine Linux. 基于 Alpine,Size 只有 29.5MB。

有 3 种不同的版本

   DockerHub:
        b4tman/squid  # 官方给出的命令例子,应该是从这里来的吧?但是,它在墙外?
    Github:
        ghcr.io/b4tman/squid  # 最新版 ?
        ghcr.io/b4tman/squid-armhf  # arm 版
        ghcr.io/b4tman/squid-ssl-bump  # ssl-bump 版 ?

安装容易

1. linux 发行版,一般在官方仓库里都有 podman

sudo apt install podman

既然是代理,那么,肯定的有服务器吧?如果是 linux 服务器的话,安装 podman 就是一句命令就可以搞定了。

2. 下载镜像

squid-ssl-bump  Package squid-ssl-bump · GitHub 

podman pull ghcr.io/b4tman/squid-ssl-bump:latest

3. 创建数据卷

podman volume create volume1

 注意:没有数据卷,容器不能启动运行。

命令用法摘录:

# 创建数据卷
podman volume ls
podman volume create volume1
find / -name volume1

# 查看数据卷
podman volume inspect web
podman inspect centos1 | grep web

4. 查看上条命令所创建出来数据卷的绝对路径。相对路径好像 NG ?

记住红色字体部分的路径,不包括最后的 /_data

$ podman volume inspect volume1
[
    {
        "Name": "volume1",
        "Driver": "local",
        "Mountpoint": "/home/mypc/.local/share/containers/storage/volumes/volume1/_data",
        "CreatedAt": "2024-11-09T15:42:36.750447413+08:00",
        "Labels": {},
        "Scope": "local",
        "Options": {}
    }
]

5. 官方给出的运行命令 Example:

  https://github.com/b4tman/docker-squid/pkgs/container/squid-ssl-bump 

docker run -p 3128:3128 \
    --env='SQUID_CONFIG_FILE=/etc/squid/my-squid.conf' \
    --volume=/srv/docker/squid/squid.conf:/etc/squid/my-squid.conf:ro \
    b4tman/squid

 主要有 4 个地方要注意

  • docker :改为 podman
  • my-squid.conf :改成自己的
  • /srv/docker/squid/squid.conf :改成自己的数据卷的绝对路径,上面步骤 4?
  •  b4tman/squid 的改发,如下:

$ podman images
REPOSITORY                          TAG                        IMAGE ID      CREATED      SIZE
ghcr.io/b4tman/squid-ssl-bump       latest                     50345g3d64  50 days ago   29.5 MB

b4tman/squid  改为:ghcr.io/b4tman/squid-ssl-bump:latest 

6. 修改配置文件

/etc/squid/my-squid.conf  # 自己建一个就好。

官方 squid.conf  配置文件,假如想要,则 sudo apt install squid 安装,然后,到 /etc/squid/ 目录下,可以找到 squid.conf 。

7. 运行,结果如下 OK

 podman run -p 3128:3128        --env='SQUID_CONFIG_FILE=/etc/squid/my-squid.conf'      --volume=/home/mypc/.local/share/containers/storage/volumes/volume1/squid.conf:/etc/squid/my-squid.conf:ro       ghcr.io/b4tman/squid-ssl-bump:latest

$ podman run -p 3128:3128        --env='SQUID_CONFIG_FILE=/etc/squid/my-squid.conf'      --volume=/home/mypc/.local/share/containers/storage/volumes/volume1/squid.conf:/etc/squid/my-squid.conf:ro       ghcr.io/b4tman/squid-ssl-bump:latest
+ '[' '!' -d /var/cache/squid/ssl_db ]
+ /usr/lib/squid/security_file_certgen -c -s /var/cache/squid/ssl_db -M 4MB
Initialization SSL db...
Done
+ /usr/sbin/squid -f /etc/squid/my-squid.conf --foreground -z
2024/10/09 22:28:45| Processing Configuration File: /etc/squid/my-squid.conf (depth 0)
2024/10/09 22:28:45| Created PID file (/var/run/squid/squid.pid)
2024/10/09 22:28:45 kid1| Processing Configuration Fil

# 省略

2024/10/09 14:50:31 kid1| Accepting HTTP Socket connections at conn3 local=[::]:3128 remote=[::] FD 11 flags=9
    listening port: 3128
2024/10/09 14:50:32 kid1| storeLateRelease: released 0 objects

8. 具体的优化,在一步一步搞了。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;