圆海博客-探寻心灵的宁静

您现在的位置是:首页 > 博客 > 正文

博客

代理服务器怎么搭建?端口认证与访问控制教程

2026-09-07 11:45:05博客
无论是做数据采集、多账号管理,还是搭建企业出海业务的网络通道,一台稳定的代理服务器都是基础设施中的关键一环。但很多技术同学在实际搭建时,往往卡在两个地方:端口怎么配才……

无论是做数据采集、多账号管理,还是搭建企业出海业务的网络通道,一台稳定的代理服务器都是基础设施中的关键一环。但很多技术同学在实际搭建时,往往卡在两个地方:端口怎么配才不冲突、认证和访问控制怎么设置才既方便使用又足够安全。

这篇文章会从零基础出发,带你完整走一遍代理服务器的搭建流程,重点拆解端口认证访问控制这两个核心安全环节,让你搭出来的节点既好用又防得住。

一、搭建前的准备工作

在动手之前,先确认以下几项基础条件是否就绪:

1. 服务器环境
一台拥有独立公网 IP 的云服务器(Linux 系统推荐 Ubuntu 22.04 或 CentOS 7+)。如果你没有合适的海外服务器资源,光络云提供国内及海外多节点代理 IP 服务,其中海外节点需要客户自身具备海外网络环境才能接入(TikTok 专线除外),可以省去自行采购和运维的麻烦。

2. 端口规划
提前确定你要开放的代理端口。常见选择如下:

用途 推荐端口 说明
HTTP/HTTPS 代理 3128 / 8080 / 8443 最常用,兼容性好
SOCKS5 代理 1080 / 3128 支持 TCP/UDP,灵活性高
备用端口 9050 / 8888 主端口被占时切换

3. 防火墙初始状态
确认服务器的防火墙(firewalld / ufw / iptables)处于可管理状态,后续步骤会用到它来做访问控制。

二、安装与核心配置

以最常见的 Squid 代理为例(Socks 协议可选 3proxy 或 Dante),以下是核心步骤:

# 1. 安装 Squid(Ubuntu 示例)
sudo apt update
sudo apt install -y squid

# 2. 编辑主配置文件
sudo nano /etc/squid/squid.conf

在配置文件中设置监听端口:

# 监听地址与端口
http_port 0.0.0.0:3128
# 如需同时开启 HTTPS 代理(需提前配置证书)
# https_port 0.0.0.0:8443 cert=/etc/squid/ssl/server.pem

保存后重启服务:

sudo systemctl restart squid
sudo systemctl enable squid

如果选择 SOCKS5 协议,以 3proxy 为例:

# 安装 3proxy
sudo apt install -y 3proxy

# 编辑 /etc/3proxy/3proxy.cfg
nserver 8.8.8.8
socket 1 3 3
timeouts 1 5 30 60 180 1800 15 60
allow work 0.0.0.0 0.0.0.0
proxy -p1080 -a -n -r
auth strong

到这里,代理的基本服务已经跑起来了,但裸奔状态——任何人都能连上来用。接下来就是最关键的安全加固环节。

三、端口认证:给代理加一把锁

端口认证的核心思路是:连接代理时必须提供正确的用户名和密码,否则直接拒绝。这一步能有效防止你的代理端口被扫描后滥用。

Squid 的用户认证配置

# 在 /etc/squid/squid.conf 中添加:

# 启用基本认证
auth_param basic program /usr/lib/squid/negotiate_cert_id_lookup
auth_param basic realm Proxy Access
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

# 限制:只有认证通过的用户才能使用代理
auth_required all
http_access allow authenticated
http_access deny all

创建认证用户(使用 htdigest 或 PAM):

# 方法一:htdigest(简单场景)
sudo htdigest /etc/squid/passwd "Proxy" username1
# 输入密码后回车

# 在 squid.conf 中指定:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

3proxy 的认证配置

# /etc/3proxy/3proxy.cfg 中:
auth strong

# 创建用户文件 /etc/3proxy/login:
username1:CL:your_password_here
username2:CL:another_password

# 重启服务
sudo systemctl restart 3proxy

验证是否生效:在客户端配置代理后,如果不填用户名密码,连接应直接超时或返回 407 Proxy Authentication Required。

四、访问控制:只让”自己人”进门

认证解决了”你是谁”的问题,访问控制则解决”你能不能来”的问题。两层叠加,安全等级直接拉满。

1. IP 白名单(应用层)

在代理软件层面,只允许指定 IP 段发起连接:

# Squid 示例:只允许公司出口 IP 段
acl trusted_src src 203.0.113.0/24 198.51.100.10
http_access allow trusted_src
http_access deny all
# 3proxy 示例:
allow work 203.0.113.10
allow work 198.51.100.0-198.51.100.255
# 其余 IP 默认拒绝(3proxy 默认 deny)

2. 防火墙规则(系统层)

即使应用层配置有误,防火墙也能兜底拦截:

# firewalld(CentOS)
sudo firewall-cmd --permanent --add-rich-rule='
  rule family="ipv4" source address="203.0.113.0/24"
  port port="3128" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='
  rule family="ipv4" source address="203.0.113.0/24"
  port port="1080" protocol="tcp" accept'
sudo firewall-cmd --permanent --add-rich-rule='
  rule family="ipv4" port port="3128" protocol="tcp" drop'
sudo firewall-cmd --permanent --add-rich-rule='
  rule family="ipv4" port port="1080" protocol="tcp" drop'
sudo firewall-cmd --reload
# ufw(Ubuntu)
sudo ufw allow from 203.0.113.0/24 to any port 3128 proto tcp
sudo ufw allow from 203.0.113.0/24 to any port 1080 proto tcp
sudo ufw deny 3128
sudo ufw deny 1080
sudo ufw --force enable

3. 连接数与频率限制

防止单个 IP 把带宽打满:

# Squid 限制单 IP 最大连接数
max_client_body 8 MB
request_body_max_size 8 MB

# 配合 iptables 限制每 IP 新建连接速率
sudo iptables -A INPUT -p tcp --dport 3128 \
  -m connlimit --connlimit-above 50 --reject

五、安全加固清单

搭建完成后,建议逐项核对以下清单:

检查项 操作 优先级
端口认证已启用 无凭据连接返回 407 / 拒绝 必须
IP 白名单已配置 非白名单 IP 无法建立 TCP 连接 必须
防火墙仅放行白名单 非白名单 IP 在系统层即被 DROP 必须
日志开启 Squid/3proxy 日志记录来源 IP 与时间 推荐
定期轮换密码 每 30 天更换一次认证密码 推荐
禁用不必要协议 关闭 FTP、Gopher 等无关代理协议 推荐
SSH 密钥登录 关闭密码登录,仅允许密钥 推荐

六、什么时候该考虑用现成的代理服务?

自己搭建代理服务器适合学习原理、小规模测试,但在以下场景中,自建方案的运维成本和稳定性很难跟上业务节奏

需要大量 IP 轮换——自建节点 IP 池有限,频繁更换需要批量采购服务器;需要高可用与故障自动切换——单台服务器宕机即业务中断;需要覆盖多地域——自己在全球各地部署和运维节点,人力成本极高。

光络云提供国内及海外多节点的代理 IP 服务,内置端口认证、IP 白名单、连接数控制等安全机制,开箱即用。海外节点需要客户自身具备海外网络环境才能接入(TikTok 专线除外),免去自行采购和运维服务器的麻烦。对于业务量较大、对稳定性和合规性有要求的团队,直接接入成熟的代理服务是更务实的选择。

常见问题

Q: 代理端口被扫描到怎么办?
首先确认认证和防火墙规则是否生效。如果端口暴露且无认证,立即在防火墙层 DROP 该端口,然后重新配置认证。建议将代理端口改为非常用端口(如 443 以外的随机高端口),降低被自动化扫描命中的概率。

Q: 用户名密码认证和 IP 白名单,哪个更重要?
两者解决不同层面的问题,缺一不可。IP 白名单是”第一道门”,在 TCP 层就拦截非授权来源;认证是”第二道门”,即使 IP 在白名单内(比如同事共用出口 IP),也必须凭据正确才能使用。生产环境建议两层都配。

Q: 搭建完成后如何验证代理是否正常工作?
在客户端用 curl 测试:curl -x http://user:pass@代理IP:端口 http://httpbin.org/ip,返回的 JSON 中 IP 应为代理服务器的公网 IP。如果返回 407 说明认证配置有误,如果超时说明防火墙或网络不通。

Q: 光络云的代理服务需要我自己有海外服务器吗?
光络云的海外节点需要客户自身具备海外网络环境才能接入,TikTok 专线产品除外。国内节点则无此限制,可直接使用。具体接入条件可在光络云官网查看产品说明或联系技术支持确认。

Q: 搭建的代理服务器需要定期维护吗?
需要。建议每月检查一次系统安全更新(sudo apt upgrade)、审查访问日志是否有异常来源 IP、轮换一次认证密码。如果业务量增长,还需关注 CPU、内存和带宽是否接近瓶颈。