VPS搭建代理完全指南：从HTTP到SOCKS5的手把手教程
最近总有人问我："我在VPS上搭了代理，但速度很慢，是不是哪里没配好？"代理这个东西，看似简单——装个软件、跑起来就能用——但实际上里面的门道不少。协议选择、性能优化、安全配置，每一个环节都能影响最终体验。我玩VPS代理玩了七八年，从早期的 Squid 到现在的各种协议，都折腾过。今天就把这些经验整理出来，给大家一份完整的 VPS 代理搭建指南。目录 什么时候需要用VPS做代理？ 常见的代理方案对比 方案一：HTTP代理（Squid） 方案二：SOCKS5代理（Dante） 方案三：Nginx反向代理 代理性能优化指南 安全注意事项 总结 什么时候需要用VPS做代理？先搞清楚场景。用VPS做代理，通常就这几个原因： 科学上网 — 最常见的需求，不多解释 API代理中转 — 绕过某些API的地区限制或速率限制 爬虫代理池 — 用多个VPS做代理轮换，防止被封IP 内网穿透 — 通过VPS代理访问内网服务 CDN加速 — 用VPS做反向代理加速网站访问 不同场景需要的配置和方案完全不同。搞清楚你要做什么，再选择方案。常见的代理方案对比 方案 协议 配置难度 速度 安全性 推荐场景 Squid HTTP/HTTPS ⭐⭐ ⭐⭐⭐ ⭐⭐ 网页加速、缓存代理 Dante SOCKS5 ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ 科学上网、通用代理 Nginx HTTP/HTTPS ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ 反向代理、API中转 HAProxy TCP/HTTP ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 负载均衡、高性能代理 Shadowsocks 自定义 ⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ 科学上网（需要客户端） 我的建议： 如果不是有特殊需求，SOCKS5（Dante）是最通用的选择。它支持TCP和UDP，几乎所有软件都能配置使用。方案一：HTTP代理（Squid）Squid 是最老牌的HTTP代理软件，优点是稳定、功能强大，而且支持缓存。安装和配置# 安装 Squid apt install squid -y # 备份原始配置 cp /etc/squid/squid.conf /etc/squid/squid.conf.bak 编辑配置文件 /etc/squid/squid.conf：# 监听端口（修改默认的3128为自定义端口） http_port 8888 # 允许的网段（按需修改） acl localnet src 0.0.0.0/0 # 允许所有通过 http_access allow localnet http_access deny all # 关闭缓存（如果是做代理而非缓存） cache deny all 启动并验证：systemctl restart squid systemctl enable squid # 验证端口是否监听 netstat -tlnp | grep 8888 优点： 配置简单，支持缓存，兼容性好 缺点： 只支持HTTP协议，不支持UDP，不适合游戏和视频通话方案二：SOCKS5代理（Dante）Dante 是目前最流行的SOCKS5代理软件，配置相对简单，功能强大。安装和配置# 安装 Dante apt install dante-server -y 编辑配置文件 /etc/danted.conf：logoutput: /var/log/danted.log # 监听端口 internal: 0.0.0.0 port = 1080 # 出口网卡 external: eth0 # 认证方式（无认证，配合防火墙IP白名单使用） socksmethod: none clientmethod: none # 允许的客户端 client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 } # SOCKS5 规则 socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 protocol: tcp udp } 启动：systemctl restart danted systemctl enable danted # 检查端口 netstat -tlnp | grep 1080 安全提醒： 默认配置是没有任何认证的，任何人知道你的IP和端口都能使用。必须配合防火墙限制IP访问。配置防火墙# 只允许特定IP访问1080端口 iptables -A INPUT -p tcp --dport 1080 -s 你的家庭公网IP -j ACCEPT iptables -A INPUT -p tcp --dport 1080 -j DROP 或者使用密码认证（需要编译安装额外模块），但最简单的做法就是防火墙IP白名单。方案三：Nginx反向代理Nginx 反向代理适合做API中转、网站加速等场景。配置示例# 安装 Nginx apt install nginx -y 编辑配置文件 /etc/nginx/sites-available/proxy：server { listen 8080; location / { # 代理到目标服务器 proxy_pass https://目标API地址; # 传递请求头 proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 超时设置 proxy_connect_timeout 30s; proxy_read_timeout 60s; proxy_send_timeout 60s; } } 优点： 功能强大，支持HTTPS、负载均衡、流量控制 缺点： 配置相对复杂，需要一定的Nginx基础代理性能优化指南不管你用哪种方案，下面的优化都能显著提升代理性能：1. 开启BBR这个我之前说过，BBR对网络传输的提升非常明显：echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf sysctl -p 2. 调整系统参数# 在 /etc/sysctl.conf 中添加 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30 net.core.somaxconn = 4096 # 生效 sysctl -p 3. 选择最优的机房这个很关键。代理的速度，70% 取决于线路，30% 取决于配置。 面向国内用户：选 CN2 GIA 线路的VPS 面向海外用户：选离目标地区近的机房 安全注意事项代理服务器直接暴露在公网上，是黑客的重点关注对象。以下安全措施一定要做好：1. 防火墙是底线不管是哪种代理方案，一定配合防火墙使用。只允许可信的IP访问代理端口。2. 不使用默认端口把端口改成非标准端口（如 1080 改成 10080-65535 之间的随机端口），能挡住大量自动扫描。3. 启用认证如果代理需要长期使用，最好启用用户名密码认证。Dante 需要配合 libpam 使用，Nginx 可以配置 basic auth。4. 监控异常流量定期检查代理的日志文件，看有没有异常的大流量或者异常的连接IP：# 查看连接最多的IP netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head -10 5. 及时更新软件定期更新 Squid、Dante、Nginx 等软件到最新版本，修补已知漏洞。总结最后，给不同需求的用户一个简单直接的建议： 想要通用代理、兼容各种软件 → Dante SOCKS5，配合防火墙IP白名单 需要缓存加速、浏览网页 → Squid HTTP代理 做API中转或网站加速 → Nginx 反向代理 追求兼容性和加密 → Shadowsocks（需要客户端配合） 不管你选择哪种方案，记住三点： 安全第一 — 防火墙是必须的，代理端口不能对所有人开放 线路决定体验 — 再好的配置也弥补不了垃圾线路 做好监控 — 定期检查日志，及时发现异常 代理这个东西，配置起来不难，但要配得好、用得稳，还是需要一些心思的。希望对你有帮助。（全文完）