本文仅介绍服务端搭建,客户端不限,客户端本人用的是Proxifier,使用教程点击此处前往
目录
- [1. 安装](#1. 安装)
- [2. 配置](#2. 配置)
-
- [2.1. 配置准备](#2.1. 配置准备)
- [2.2. 编辑命令](#2.2. 编辑命令)
- [2.3. 三种配置,按需采用](#2.3. 三种配置,按需采用)
-
- [配置1. 无用户名/身份验证的配置](#配置1. 无用户名/身份验证的配置)
- [配置2. 多个网口这样配置,可以把所有网口加进来](#配置2. 多个网口这样配置,可以把所有网口加进来)
- [配置3. 有用户名/身份验证的配置](#配置3. 有用户名/身份验证的配置)
-
- [A. 新增用户步骤](#A. 新增用户步骤)
- [B. 移除用户步骤](#B. 移除用户步骤)
1. 安装
bash
# 添加库
rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
# 安装dante-server
yum --enablerepo=gf-plus install dante-server -y
安装后,会生成一个名为sockd
的系统服务
创建目录存放该服务的PID
bash
mkdir /var/run/sockd
(非必要步骤)查看该服务的配置,无需修改
bash
cat /usr/lib/systemd/system/sockd.service
2. 配置
您可先查看配置内容,理解配置项后,进行配置准备
2.1. 配置准备
-
获取当前的网络接口名称,后面步骤用到,一般为eth或者eno等开头 如果只想配置一个外部网络接口,记下相应的网络接口名称,如果不知道哪个适合,可以全部记下,后面全部配置
bashifconfig
-
查看你需要的代理端口号,确认是否已放行,默认配置为1080,如果是云服务器查看服务器的安全组配置
2.2. 编辑命令
-
编辑文件,并清空现有内容
bash# 编辑 sudo vi /etc/sockd.conf # 依次按以下键清空当前文件 ggdG
-
按
i
键插入你编辑好的配置或者自行编辑,然后按ESC
键,然后输入命令:wq
保存 -
完成编辑后,需要启动服务即可生效,并可以设置服务自启动
bash# 启动服务 sudo systemctl start sockd # 设置服务自启动 sudo systemctl enable sockd # 重启服务 sudo systemctl restart sockd # 查看服务状态 sudo systemctl status sockd # 停止服务 sudo systemctl stop sockd
2.3. 三种配置,按需采用
external
就是网络名称,指定了 Dante 代理服务器的外部接口,即用于与外部网络通信的接口port=
指定了代理服务的端口号socksmethod
指定了是否开启身份验证,值为username
或none
,其中username
是固定的,不是自己任意取的用户名
配置1. 无用户名/身份验证的配置
bash
logoutput: syslog
internal: 0.0.0.0 port=1080
external: eno2
socksmethod: none
clientmethod: none
user.privileged: root
user.unprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
配置2. 多个网口这样配置,可以把所有网口加进来
bash
logoutput: syslog
internal: 0.0.0.0 port=1080
external: eth0
external: eth1
external: eth2
external.rotation: route
socksmethod: none
clientmethod: none
user.privileged: root
user.unprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
配置3. 有用户名/身份验证的配置
将
socksmethod
设为username
即可
socksmethod
指定了是否开启身份验证,值为username
或none
,其中username
是固定的,不是自己任意取的用户名
bash
logoutput: syslog
internal: 0.0.0.0 port=1080
external: eno2
socksmethod: username
clientmethod: none
user.privileged: root
user.unprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
此时,你可以用系统现有的用户名密码作为身份验证,也可以再新增一个用户专门进行SOCKS5的身份验证
A. 新增用户步骤
-
新增登录用户名,自定义名字,例如
danted
bashsudo useradd -r -s /bin/false danted
-
为用户名配置密码,根据提示设置密码和确认密码,完成新增
bashsudo passwd danted
B. 移除用户步骤
-
首先,如果用户当前已登录,请确保该用户已经退出系统
-
运行以下命令以删除用户,将
<username>
替换为想要移除的用户名,以下两种命令按需选择:bash# 普通删除 sudo userdel <username> # 删除用户的家目录和邮件文件夹 sudo userdel -r <username>