Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

多协议代理服务器一键部署脚本 (Multi-Protocol Proxy One-Click Deployment)

一份功能强大且易于使用的 Bash 脚本,用于在任何支持 Docker 的 Linux 服务器上一键部署一个安全、稳定、高性能的多协议代理服务器,同时支持 SOCKS5HTTPHTTPS(通过 HTTP CONNECT 隧道)三种代理协议。特别适用于需要为指纹浏览器(如 AdsPower、VMLogin)或其他应用配置独立 IP 代理的场景。

✨ 主要特性

  • 🚀 一键部署: 只需执行一个命令,即可完成所有环境检查、依赖安装、配置和部署工作。
  • 📡 多协议支持: 同时提供 SOCKS5、HTTP、HTTPS(CONNECT 隧道)三种代理入口,满足不同客户端需求。
  • 📦 Docker 容器化: 所有服务运行在隔离的 Docker 容器中,干净、便携且不污染宿主系统。
  • 🔒 安全可靠: 自动生成强随机密码,使用 3proxy 的 strong 认证模式,确保代理安全。
  • ⚙️ 高度可定制: 支持自定义用户名、密码、SOCKS5 端口和 HTTP/HTTPS 端口。
  • 🔧 便捷管理: 自动生成 manage.sh 脚本,轻松实现服务的启动、停止、重启、查看状态和日志。
  • 🩺 健康检查: 内置 Docker 健康检查,同时监控 SOCKS5 和 HTTP 两个端口的运行状态。
  • 🔥 自动防火墙配置: 自动检测并配置 UFWfirewalld,开放所有所需端口。
  • 📄 清晰的连接信息: 部署完成后,自动生成 connection_info.txt 文件,包含三种协议的连接细节和测试命令。

📡 支持的代理协议

协议 默认端口 说明
SOCKS5 1080 完整的 SOCKS5 代理,支持 TCP/UDP 转发
HTTP 8118 HTTP 代理,适用于浏览器和 HTTP 客户端
HTTPS 8118 (同 HTTP) 通过 HTTP CONNECT 隧道自动支持,无需额外配置

HTTPS 代理与 HTTP 代理共用同一端口。客户端通过 HTTP 代理端口访问 HTTPS 网站时,会自动建立 CONNECT 隧道进行加密通信。

🛠️ 系统要求

  • 一台 Linux 服务器 (推荐使用 Debian 10/11/12 或 Ubuntu 20.04/22.04)
  • root 用户权限
  • 服务器已连接到互联网

⚡ 快速开始

通过 SSH 连接到您的 Linux 服务器,并以 root 用户身份执行以下命令。

1. 下载脚本

从您的代码仓库或指定 URL 下载部署脚本 full_deploy.sh

wget [您的脚本下载链接]/full_deploy.sh

2. 授予执行权限

chmod +x full_deploy.sh

3. 运行部署脚本

./full_deploy.sh

4. 跟随向导进行配置

脚本启动后,会提示您进行配置:

  • 检查环境: 脚本会自动检查并安装 Docker 和 Docker Compose。
  • 配置参数:
    • 您可以选择使用 默认配置(推荐),脚本将为您生成安全的随机用户名和密码。
    • 您也可以选择 自定义配置,手动输入用户名、密码、SOCKS5 端口和 HTTP/HTTPS 端口。

部署过程大约需要几分钟,具体取决于您的网络速度和服务器性能。当您看到 "🎉 部署完成!" 的提示时,表示代理服务器已成功启动并准备就绪。

🔧 服务管理

部署完成后,脚本会自动将 pxy 注册为全局命令(软链接至 /usr/local/bin/pxy),无需进入项目目录,在任意位置均可直接使用:

命令 描述
pxy start 启动代理服务
pxy stop 停止代理服务(会移除容器)
pxy restart 重启代理服务
pxy status 查看服务的运行状态和健康状况
pxy logs 实时查看服务日志 (按 Ctrl+C 退出)
pxy info 显示完整的连接信息(IP、端口、用户名、密码)
pxy rebuild 强制重新构建 镜像并启动,适用于修改配置后

也可以直接执行原始脚本:/opt/multi-proxy-server/manage.sh <命令>

🧪 连接测试

部署完成后,可在服务器上执行以下命令测试各协议是否正常工作:

# SOCKS5 代理测试
curl --socks5-hostname USERNAME:PASSWORD@127.0.0.1:1080 https://ifconfig.me

# HTTP 代理测试
curl -x http://USERNAME:PASSWORD@127.0.0.1:8118 http://ifconfig.me

# HTTPS 代理测试(通过 HTTP CONNECT 隧道)
curl -x http://USERNAME:PASSWORD@127.0.0.1:8118 https://ifconfig.me

请将 USERNAMEPASSWORD 和端口号替换为您的实际配置。如果命令成功返回您服务器的 IP 地址,则表示对应协议的代理工作正常。

📁 项目文件结构

所有文件都位于 /opt/multi-proxy-server/ 目录下:

/opt/multi-proxy-server/
├── 3proxy.cfg              # 3proxy 核心配置文件,包含用户认证和多协议入口配置
├── connection_info.txt     # 部署后生成的连接信息详情(SOCKS5 + HTTP/HTTPS)
├── docker-compose.yml      # Docker Compose 编排文件
├── Dockerfile              # 用于构建代理服务的 Docker 镜像定义
└── manage.sh               # 服务管理脚本

❓ 常见问题 (FAQ)

1. 如何修改代理的用户名或密码?

  1. 进入项目目录: cd /opt/multi-proxy-server
  2. 编辑配置文件: nano 3proxy.cfg
  3. 找到 users ... 这一行,修改为您想要的用户名和密码。
  4. 保存文件后,执行 ./manage.sh rebuild 来使更改生效。

2. 如何修改端口号?

  1. 编辑 3proxy.cfg,修改 socks -pXXXXproxy -pXXXX 中的端口号。
  2. 同步修改 docker-compose.yml 中的端口映射。
  3. 执行 ./manage.sh rebuild 使更改生效。

3. HTTP 代理和 HTTPS 代理有什么区别? 它们共用同一个端口。当客户端通过 HTTP 代理端口访问 http:// 网站时,使用普通 HTTP 代理;当访问 https:// 网站时,客户端会自动发送 CONNECT 请求建立加密隧道,无需额外配置。

4. 指纹浏览器应该选择哪种代理类型?

  • 如果支持 SOCKS5,推荐使用 SOCKS5(端口 1080),性能更好。
  • 如果只支持 HTTP 代理,使用 HTTP(端口 8118),同样支持访问 HTTPS 网站。

5. 如何完全卸载此代理服务?

  1. 停止并移除容器: pxy stop
  2. 移除全局命令: rm /usr/local/bin/pxy
  3. 删除整个项目目录: rm -rf /opt/multi-proxy-server
  4. (可选) 删除 Docker 镜像: docker rmi $(docker images | grep 'multi-proxy-server' | awk '{print $3}')

6. 部署失败或服务启动不起来怎么办? 请进入项目目录 cd /opt/multi-proxy-server,然后运行 ./manage.sh logs 查看详细的错误日志,根据日志提示解决问题。常见的错误原因包括端口被占用、Docker 构建失败等。

🛡️ 安全提示

  • 请务必使用 强密码 来保护您的代理服务。
  • 定期更新您的服务器系统和 Docker,以获得最新的安全补丁。
  • 请勿将您的代理凭据泄露给他人。
  • 如无必要,建议通过防火墙限制代理端口的访问来源 IP。

📄 开源许可

本项目采用 MIT License 许可。

About

一个socket5一键部署至docker的脚本

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages