跳转到内容
Guides 3 分钟阅读 1108 次浏览

3proxy

掌握 3proxy 的安装与配置。本指南详细介绍轻量级代理服务器的搭建,帮助您提升网络控制能力与隐私性。

3proxy

3proxy 是一套轻量级、高性能的代理服务器软件,可安装并配置为提供 HTTP、HTTPS、SOCKSv4/4.5/5 和 FTP 代理服务,以及 TCP 端口映射和流量重定向;在类 Unix 系统上主要通过源码编译安装,在 Windows 上则使用预编译的二进制文件。

3proxy 是一款紧凑而灵活的代理服务器,专为资源占用极低、可配置性极高的环境设计。体积小、效率高,使它适用于嵌入式系统、个人使用,或者 Squid 这类全功能代理显得过于臃肿的场景。

前置条件

安装 3proxy 之前,请确认目标系统满足以下要求:

  • 操作系统:用于编译的类 Unix 系统(Linux、FreeBSD、macOS),或使用二进制发行版的 Windows。本指南以 Linux 为主。
  • 编译器:GCC 或 Clang(用于源码编译)。
  • 构建工具make 工具。
  • 网络访问:能够下载源码文件。
  • 用户权限:安装和配置系统服务需要 rootsudo 权限。

安装

安装 3proxy 通常包括下载源码、编译,然后将二进制文件和配置文件放到合适的位置。

下载源码

请始终从 3proxy 官网或其 GitHub 仓库下载最新的稳定版本。

# 进入临时目录
cd /tmp

# 下载最新稳定版本(如版本不同,请替换为当前版本)
# 最新链接请查看 https://3proxy.ru/ 或 https://github.com/3proxy/3proxy
wget https://3proxy.ru/0.9.4/3proxy-0.9.4.tar.gz

# 解压压缩包
tar -xzf 3proxy-0.9.4.tar.gz

# 进入解压后的目录
cd 3proxy-0.9.4

编译与安装

3proxy 使用简单的 Makefile,编译过程很直接。

# 编译 3proxy
make -f Makefile.Linux

# 创建安装目录
mkdir -p /usr/local/3proxy/bin
mkdir -p /usr/local/3proxy/etc
mkdir -p /usr/local/3proxy/logs

# 安装编译好的二进制文件和示例配置
cp src/3proxy /usr/local/3proxy/bin/
cp 3proxy.cfg.sample /usr/local/3proxy/etc/3proxy.cfg

# 设置合适的权限(可选,但推荐)
chmod 755 /usr/local/3proxy/bin/3proxy
chmod 640 /usr/local/3proxy/etc/3proxy.cfg

如果系统需要特定功能(例如 NTLM 认证、IPv6 支持),请查阅 src/Makefile.Linux 中的编译选项。例如启用 NTLM:make -f Makefile.Linux NTLM

基础配置

3proxy 的主配置文件是 3proxy.cfg,它定义监听端口、代理类型、认证方式和访问规则。默认位置为 /usr/local/3proxy/etc/3proxy.cfg

核心指令

一个最小化的 3proxy.cfg 包含:

  • nserver:指定用于主机名解析的 DNS 服务器。
  • timeouts:设置各类连接超时。
  • log:定义日志文件路径和格式。
  • users:声明用于认证的用户。
  • auth:指定认证方式。
  • proxysockstcppm:定义代理服务。

示例:简单的 HTTP/HTTPS 代理

以下配置在 3128 端口上建立一个 HTTP/HTTPS 代理,要求用户名 testuser、密码 password123 的基本认证。

# /usr/local/3proxy/etc/3proxy.cfg

# 全局设置
nserver 8.8.8.8 # Google 公共 DNS
nserver 8.8.4.4

# 超时(秒)
timeouts 1 5 30 60 180 1800 15 60

# 日志设置
# log /usr/local/3proxy/logs/3proxy.log D # 按天轮转
log /usr/local/3proxy/logs/3proxy.log
logformat "- +_L%t.%. %N.%O %I %E %U %C:%c %R:%r %O %h %T"

# 认证用户:用户名:密码
users testuser:CL:password123

# 认证方式
# CL:明文密码(不建议用于生产环境)
# LM:LAN Manager 哈希
# NT:NTLM 哈希
# P:加密密码(3proxy 内部格式,使用 `3proxy -e` 生成)
auth strong # 使用强认证(需要 LM/NT 或 P)
# 若使用简单的 CL 密码,请改用 'auth iponly,basic'

# 允许已认证用户访问
allow testuser

# 定义 HTTP/HTTPS 代理服务
# -p 3128:监听 3128 端口
# -n:为该服务禁用 NTLM 认证(若已启用全局 NTLM)
# -a:启用基本认证
proxy -p3128

使用 3proxy -e 生成加密密码:

/usr/local/3proxy/bin/3proxy -e password123

输出结果(例如 _E_01000000010000000000000000000000)随后可以带 _E_ 前缀用于 users 指令:users testuser:_E_01000000010000000000000000000000

运行 3proxy

配置好 3proxy.cfg 之后,启动服务器:

/usr/local/3proxy/bin/3proxy /usr/local/3proxy/etc/3proxy.cfg

以守护进程方式在后台运行:

/usr/local/3proxy/bin/3proxy /usr/local/3proxy/etc/3proxy.cfg -d

进阶配置主题

认证方式

3proxy 支持多种认证方式:

  • iponly:仅基于客户端 IP 地址认证(无需用户名/密码)。
  • basic:HTTP Basic 认证(以明文发送凭据)。
  • digest:HTTP Digest 认证。
  • ntlm:NTLM 认证(需在编译时启用 NTLM 支持)。
  • strong:自动选择可用的最强方式。

auth iponly 示例:

# /usr/local/3proxy/etc/3proxy.cfg
auth iponly
allow 192.168.1.0/24 # 允许该子网内所有客户端,无需显式用户认证
proxy -p3128

访问控制

allowdeny 指令按多种条件控制客户端访问。规则按顺序处理,第一条匹配的规则生效。

# /usr/local/3proxy/etc/3proxy.cfg

# 拒绝指定 IP 地址
deny 192.168.1.10

# 允许指定用户
allow myuser

# 允许指定子网使用 HTTP/HTTPS
allow * 192.168.1.0/24 * * HTTP HTTPS

# 拒绝访问指定目标域名
deny * * .example.com

allow/deny 的语法为 allow [user] [src_ip] [dst_ip] [target_port] [protocol]* 表示通配符。

代理链(上级代理)

3proxy 可以使用 parent 指令将请求转发到另一台代理服务器。

# /usr/local/3proxy/etc/3proxy.cfg

# 链接到上游 HTTP 代理
parent 1000 http 192.168.1.100 8080 myuser:mypass

# 链接到上游 SOCKS5 代理
parent 1000 socks5 192.168.1.101 1080

第一个参数 1000 是以毫秒为单位的超时时间。

SOCKS 代理

要配置 SOCKS 代理(v4、v4.5、v5),使用 socks 指令。

# /usr/local/3proxy/etc/3proxy.cfg

# 在 1080 端口定义 SOCKS 代理服务
socks -p1080

TCP 端口映射(TCPPM)

tcppm 指令可将 TCP 连接从本地端口转发到远程主机和端口。

# /usr/local/3proxy/etc/3proxy.cfg

# 将本地 2222 端口的连接转发到 remotehost:22(SSH)
tcppm -p2222 remotehost.example.com 22

日志配置

log 指令指定日志文件,logformat 定义输出结构,rotate 配置日志轮转。

# /usr/local/3proxy/etc/3proxy.cfg

# 将日志写入 /usr/local/3proxy/logs/access.log
log /usr/local/3proxy/logs/access.log

# 自定义日志格式
logformat "- +_L%t.%. %N.%O %I %E %U %C:%c %R:%r %O %h %T"

# 按天(D)、按周(W)、按月(M)或按大小(S<bytes>)轮转日志
rotate D /usr/local/3proxy/logs/archive

系统集成(systemd 服务)

为保证运行稳定,可将 3proxy 作为 systemd 服务运行。

  1. 创建服务文件/etc/systemd/system/3proxy.service

    ```ini
    [Unit]
    Description=3proxy Lightweight Proxy Server
    After=network.target

    [Service]
    Type=forking
    ExecStart=/usr/local/3proxy/bin/3proxy /usr/local/3proxy/etc/3proxy.cfg -d
    ExecReload=/bin/kill -HUP $MAINPID
    KillMode=process
    Restart=on-failure
    User=nobody # 或使用专用的非特权用户,例如 '3proxy'
    Group=nogroup # 或使用专用用户组

    [Install]
    WantedBy=multi-user.target
    `` *注意*:如有需要,创建3proxy用户/用户组:sudo useradd -r -s /sbin/nologin 3proxy。请相应调整/usr/local/3proxy/logs` 的文件归属。

  2. 重新加载 systemd,启用并启动服务

    bash sudo systemctl daemon-reload sudo systemctl enable 3proxy.service sudo systemctl start 3proxy.service sudo systemctl status 3proxy.service

故障排查建议

  • 查看日志:出现错误信息或访问问题时,务必查看 3proxy 日志文件(默认为 /usr/local/3proxy/logs/3proxy.log)。
  • 防火墙规则:确认防火墙(例如 ufwfirewalldiptables)允许入站连接访问 3proxy 的监听端口(例如 3128、1080)。
    bash # ufw 示例 sudo ufw allow 3128/tcp
  • 配置语法:检查 3proxy.cfg 是否存在语法错误。3proxy 对配置格式要求严格。
  • 权限:确认 3proxy 二进制文件具有执行权限,且运行该服务的用户对日志目录有写权限。
  • 重启服务:任何配置变更之后,请重新加载或重启 3proxy 服务(sudo systemctl restart 3proxy)。

3proxy 与 Squid 对比

特性 3proxy Squid
资源占用 极低(CPU、RAM 占用小) 中到高(取决于负载/功能)
复杂度 相对简单,纯文本配置 复杂,配置选项繁多
代理类型 HTTP、HTTPS、SOCKS、FTP、TCPPM HTTP、HTTPS、FTP、ICP、ESI
缓存 无原生缓存 强大且高度可配置的缓存
SSL 拦截 有限/基础 高级,基于证书
认证 Basic、Digest、NTLM、基于 IP 全面(LDAP、Kerberos、RADIUS)
适用场景 轻量、个人、嵌入式 企业级、高流量、内容过滤
开发情况 活跃,单一开发者 活跃,社区驱动
已更新: 04.03.2026
返回分类

试用我们的代理

遍布 100+ 国家的 20,000+ 代理

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.