tinyproxy(似乎不稳定)

步骤 1:创建 tinyproxy.conf 配置文件

首先,在与 docker-compose.yml 文件相同的目录下,创建一个名为 tinyproxy.conf 的文件,并填入以下内容。这个配置已经为您设置好了:

  • 监听所有网络接口的 8888 端口。
  • 允许通过 CONNECT 方法连接 443 (HTTPS) 和 80 (HTTP) 端口。
  • 设置了基础认证的用户名为 test,密码为 test123
  • 允许任何客户端连接(通过注释掉 Allow 配置实现)。

tinyproxy.conf

# --- 用户与端口 ---
User nobody
Group nobody
Port 8888

# --- 日志与进程 ---
LogLevel Info
# --- 认证 ---
# Basic 认证,格式:BasicAuth <user> <password>
# 将下面的 test 和 test123 替换为您自己的用户名和密码
BasicAuth test test123
# --- 连接设置 ---
Timeout 600
MaxClients 100

# --- 关键:允许通过 CONNECT 方法访问的端口 ---

# 标准 Web 端口
ConnectPort 80      # HTTP
ConnectPort 443     # HTTPS

# 常见备用 Web 端口
ConnectPort 8000
ConnectPort 8080
ConnectPort 8888
ConnectPort 8443    # 备用 HTTPS

# 常见开发端口
ConnectPort 3000
ConnectPort 5000

# 其他代理服务端口
ConnectPort 3128    # Squid
ConnectPort 1080    # SOCKS

# 其他有用的端口
ConnectPort 22      # SSH
ConnectPort 563     # SNEWS (已在您的配置中)


# --- 隐私与安全 (最佳实践) ---
XTinyproxy No
DisableViaHeader Yes

步骤 2:修改 docker-compose.yml 文件

接下来,修改您的 docker-compose.yml 文件,内容如下。主要改动包括:

  • image 更改为 stilleshan/tinyproxy:latest
  • 移除 environmentcommand 部分,因为相关配置已移至 tinyproxy.conf 文件中。
  • 添加 volumes 部分,将我们刚刚创建的 tinyproxy.conf 文件挂载到容器内。

docker-compose.yml

version: '3.8'

services:
  tinyproxy:
    # 1. 更换为 stilleshan/tinyproxy 镜像
    image: stilleshan/tinyproxy:latest
    container_name: simple-forward-proxy
    ports:
      - "8888:8888" # 将主机的8888端口映射到容器的8888端口
    # 2. 添加 volumes,挂载配置文件
    #    将宿主机当前目录下的 tinyproxy.conf 文件挂载到容器的 /etc/tinyproxy/tinyproxy.conf
    volumes:
      - ./tinyproxy.conf:/etc/tinyproxy/tinyproxy.conf:ro
    restart: unless-stopped

注意: :ro 表示以只读(read-only)模式挂载,这是一个好习惯,可以防止容器意外修改配置文件。

步骤 3:启动容器

现在,确保 docker-compose.ymltinyproxy.conf 这两个文件在同一个目录下,然后在该目录中运行以下命令来启动服务:

docker-compose up -d

这样,您就成功地切换到了 stilleshan/tinyproxy 镜像,并通过挂载配置文件的方式实现了对 80 端口的支持以及自定义账号密码。

squid

docker compose

version: '3.8'

services:
  squid:
    # 使用一个稳定且流行的 Squid 镜像
    image: ubuntu/squid
    container_name: squid-open-proxy
    ports:
      # 将你服务器的 31128 端口映射到容器的 3128 端口
      - "31128:3128"
    volumes:
      # 将我们自定义的配置文件挂载到容器内部
      - ./squid.conf:/etc/squid/squid.conf
      # 创建一个具名数据卷来持久化缓存,可以提高性能
      - squid_cache:/var/spool/squid
    restart: unless-stopped

# 定义具名数据卷
volumes:
  squid_cache:

squid.conf

# =================================================================
# 访问控制(ACL)设置
# =================================================================
# 定义一个名为 'all' 的访问列表,匹配所有源 IP 地址
acl all src all

# 允许所有 http 协议的访问
http_access allow all

# =================================================================
# 端口设置
# =================================================================
# Squid 监听的端口(与 docker-compose.yml 中的容器端口对应)
http_port 3128

# =================================================================
# 隐私与匿名化设置 (核心部分)
# =================================================================
# 关闭 Via 请求头,不暴露代理服务器信息
via off

# 删除或伪造 Forwarded-For 请求头,隐藏客户端的真实 IP
# "delete" 会彻底删除该头部
# "truncate" 会保留最后一个IP,但会隐藏前面的链路
forwarded_for delete

# 额外确保相关的头部信息被拒绝,加强匿名性
request_header_access X-Forwarded-For deny all
request_header_access From deny all
request_header_access Referer deny all
request_header_access Server deny all
request_header_access User-Agent deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all

# =================================================================
# 其他推荐设置
# =================================================================
# 当 Squid 无法连接到原始服务器时,返回一个通用的错误页面
# 这可以防止暴露有关您网络的内部信息
deny_info TCP_RESET all

# 关闭 DNS 查询日志,减少信息记录
dns_v4_first on
Last modification:September 8, 2025
如果觉得我的文章对你有用,请随意赞赏