使用场景
SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。socks5-百度百科
socks5类似于梯子,可以通过socks5协议,将自己的设备“伪装”成对应的服务器(socks5属于明文代理,不能用来做一些特殊的事),可以使用socks5来做跳板机等常用的运维工具。
这里使用danted来实现socks5,开源项目,1k start
Docker方式部署(推荐)
下载镜像
docker pull lozyme/sockd
编辑配置文件
cd /data/socks5-docker
vi sockd.passwd
#格式:用户名:加密后的密码。
#代表默认用户名:sockd,默认密码:sockd
#从官方github copy获得,尝试过乱写密码。最终的结果是新增用户失败
#这些注释不要放在文件里,我不确定有注释会不会有问题
sockd:xJY9EJy0Bk//U
sockd.passwd
sockd:xJY9EJy0Bk//U
安装
docker run -d --name sockd --publish 2020:2020 --volume /data/socks5-docker/sockd.passwd:/home/danted/conf/sockd.passwd lozyme/sockd
创建用户
docker exec sockd script/pam add testu testp
验证
curl https://ifconfig.co --socks5 127.0.0.1:2020 --proxy-user testu:testp
#此处显示为机器ip,则为成功
验证失败
#出现此报错,参考常用操作中的例子添加一个新用户使用即可
curl: (7) User was rejected by the SOCKS5 server (11).
其他常用操作
[查看] docker exec sockd script/pam show
[添加/修改] docker exec sockd script/pam add USER PASSWORD
[删除] docker exec sockd script/pam del USER
[例子] docker exec sockd script/pam add testu testp
脚本方式部署
cd /data/socks5-script
wget --no-check-certificate https://raw.github.com/Lozy/danted/master/install.sh -O install.sh
bash install.sh
bash install.sh --port=2020 --user=sockd --passwd=sockd
其他常用操作
#卸载
bash install.sh --uninstall
#添加用户
/etc/init.d/sockd adduser testu testp
#查看应用状态
service sockd status
注意点
- 用户名密码很重要,如果泄露出去,很容易被滥用,导致服务器被黑等一系列意想不到的情况
- 用户的密码是加密的,并且不能大于8位,大于8位会被截取
- 如果是云服务器,记得打开防火墙和服务器安全组
连接工具
安卓端
SocksDroid,开源项目,仅771kb的小软件,配置简单,输入host、ip、用户名、密码即可用
IOS端
没有IOS的机子,这种正规的协议,官方商店应该有对应的软件吧