CentOS 6下搭建SOCKS5代理服务器详细指南

admin
本文详细介绍在CentOS 6系统下搭建SOCKS5代理服务器的操作流程,涵盖系统更新、依赖安装(如OpenSSH)、SSH服务配置(启用隧道功能)、防火墙端口开放(如1080)及服务启动等关键步骤,通过SSH隧道实现安全代理,并附测试方法,确保代理可用性,适用于需要内网穿透或安全访问的场景。

SOCKS5代理作为一种网络协议,支持TCP和UDP数据转发,能够隐藏客户端真实IP,广泛应用于匿名访问、绕过网络限制等场景,CentOS 6作为经典的Linux发行版,虽然已停止官方维护,但在某些测试或遗留系统中仍有使用,本文将详细介绍如何在CentOS 6系统下通过Dante代理服务器搭建SOCKS5代理服务,并完成配置与测试。

环境准备

  1. 系统要求:纯净的CentOS 6系统( minimal安装建议安装net-tools工具包,便于网络管理)。
  2. 网络配置:确保服务器能访问外网(用于下载安装包),并规划好代理服务监听的IP和端口(如0.0.0:1080)。
  3. 权限要求:使用root用户或具有sudo权限的用户操作。

安装Dante代理服务器

Dante是一款稳定、功能丰富的SOCKS代理服务器,支持多种认证方式和转发规则,是CentOS 6下搭建SOCKS5代理的理想选择。

安装依赖

yum update -y  # 更新系统软件包
yum install -y gcc make  # 安装编译工具

下载并编译Dante

# 下载Dante源码(以dante-1.4.2为例,可根据需要更新版本)
wget https://www.inet.no/dante/files/dante-1.4.2.tar.gz
tar -zxvf dante-1.4.2.tar.gz
cd dante-1.4.2
# 编译安装
./configure
make
make install

验证安装

安装完成后,检查sockd命令是否存在:

CentOS 6下搭建SOCKS5代理服务器详细指南

which sockd  # 应输出 /usr/local/bin/sockd

配置SOCKS5代理

Dante的配置文件位于/etc/sockd.conf,需根据实际需求修改,以下是基础配置示例,支持用户名密码认证,并允许指定客户端访问。

备份原始配置

cp /etc/sockd.conf /etc/sockd.conf.bak

编辑配置文件

vi /etc/sockd.conf

示例

# 内部接口:监听所有IP(可根据需求修改为具体IP,如192.168.1.100)
internal: 0.0.0.0 port = 1080
# 外部接口:出站网卡的IP(可通过`ip addr`查看,如eth0的IP)
external: eth0
# 认证方式:用户名密码(需提前创建系统用户)
method: username
# 客户端访问规则:允许所有用户(可限制IP,如from 192.168.1.0/24)
user.privileged: root
user.notprivileged: nobody
user.libwrap: nobody
# 客户端规则:允许认证通过的用户访问
client pass {
    from: 0.0.0.0/0  # 允许所有客户端(建议限制为可信IP)
    to: 0.0.0.0/0
}
# 转发规则:允许所有目标地址(可限制特定端口或域名)
socks pass {
    from: 0.0.0.0/0
    to: 0.0.0.0/0
}

创建认证用户

useradd -s /sbin/nologin proxyuser  # 创建用户(禁止登录系统)
echo "proxyuser:yourpassword" | chpasswd  # 设置密码(替换yourpassword为实际密码)

启动并配置服务

创建systemd服务文件(CentOS 6默认使用init,但Dante可能需手动管理)

由于CentOS 6默认使用init而非systemd,直接通过service命令管理:

# 创建服务脚本
vi /etc/init.d/sockd

服务脚本内容

#!/bin/bash
# chkconfig: 345 85 15
# description: Dante SOCKS5 Proxy Service
case "$1" in
    start)
        echo "Starting sockd..."
        /usr/local/bin/sockd -D
        ;;
    stop)
        echo "Stopping sockd..."
        pkill sockd
        ;;
    restart)
        $0 stop
        sleep 2
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac
exit 0

添加执行权限并设置开机自启

chmod +x /etc/init.d/sockd
chkconfig --add sockd
chkconfig sockd on

启动服务

service sockd start

检查服务状态

service sockd status  # 应显示“sockd (pid xxx) is running...”
netstat -tuln | grep 1080  # 确认1080端口已监听

安全配置

  1. 防火墙设置
    开放代理端口(1080),并限制访问来源(建议仅允许可信IP):

    iptables -I INPUT -p tcp --dport 1080 -j ACCEPT
    iptables -I INPUT -p tcp --dport 1080 -s 192.168.1.0/24 -j ACCEPT  # 仅允许192.168.1.0/24访问
    iptables -I INPUT -p tcp --dport 1080 -s 0.0.0.0/0 -j DROP       # 禁止其他IP
    service iptables save  # 保存防火墙规则
  2. SELinux配置
    若SELinux开启(getenforce查看),需允许Dante网络访问:

    setsebool -P allow_execstack on
    semanage port -a -t socks_port -p tcp 1080  # 添加1080端口到SELinux策略(需安装policycoreutils-python)

测试代理服务

使用curl测试

# 设置代理环境变量(替换IP和端口)
export ALL_PROXY=socks5://proxyuser:yourpassword@服务器IP:1080
# �
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码