老E的博客

  • 首页
  • 关于
  • 技术应用
    • VPS相关
    • AI相关
    • 盒子相关
    • 其他
  • 订阅Youtube频道
  • 网络加速
    • expressvpnNo.1 ExpressVPN
    • 最佳免费VPN-PrivadoVPN
    • NordVPN
    • 廉价王者-Surfshark
    • PrivateInternetAccess
    • 解锁一切-PrivateVPN
  • 公益资源
    • AI导航
    • 工具下载
    • Docker镜像加速
  • 友情链接
    • tickcloudTickcloud
老E的博客
专注记录并分享跨境技术应用及随想
  1. 首页
  2. 技术应用
  3. VPS相关
  4. 正文

快速安装部署Socks5服务

2023年6月22日 5915次阅读 2条评论
clawcloud
expressvpn best vpn
privado vpn
surfshark vpn
private vpn
pia vpn
nord vpn

1.Socks5项目

在一众xray、ss等协议和应用的包围下,单纯的Socks5不太受关注,老E倒是认为简单、轻便,挂个TG也不错。近期由于需要使用到socks5代理,资源很多,可谓海量,梳理一下大致包括sock5 only(核心功能就是提供socks5 service)、socks5 module(socks5仅是一个模块甚至辅服务)、socks5 distributed(可与其他节点组网多级转发)3类。不考虑x2ray、ss的情况下,典型项目主要有:

  • Goproxy

goproxy是golang实现的高性能http、https、websocket、tcp、socks5代理服务器,支持内网穿透、链式代理、通讯加密、智能HTTP、SOCKS5代理、黑白名单、限速/限流量/限连接数,同时可以跨平台,提供KCP支持及认证API。

  • Hysteria

Hysteria 是一个功能丰富的,专为恶劣网络环境(如卫星网络、拥挤的公共 Wi-Fi、从中国连接境外服务器等)进行优化的双边加速工具,基于修改版的 QUIC 协议。

  • WARP及一键脚本

WARP是Cloudflare公司推出的一款服务,可以用来保护使用者隐私,基于wireguard协议,使用UDP来传输数据,额外提供对socks5的有效支持。WARP一键脚本可以在VPS上一键添加CloudFlare WARP IPv4/IPv6或双栈接口,添加Socks5代理。可支持 ChatGPT,解锁奈飞流媒体。

  • Dante

Dante(但丁)是一个免费的Socks代理服务器,其开发公司主要是通过销售扩展Modules以及服务来盈利。如果只是需要代理,不需要安装额外的Modules。按照其官方文档介绍,dante由 SOCKS 服务器和客户端组成,实现 RFC 1928 和相关标准。在大多数情况下,它可以使客户端透明,提供的功能有点类似于可描述为非透明第 4 层路由器的功能。Dante SOCKS 服务器可以提供包括安全性和 TCP/IP 终止、资源控制(带宽、会话)、日志记录(主机信息、传输的数据)和身份验证等功能。

  • Gost

Gost是go语言实现的安全隧道(st--simple/secure tunnel),支持多端口监听、可设置转发代理,支持多级转发(代理链),同时,支持标准HTTP/HTTPS/HTTP2/SOCKS4(A)/SOCKS5代理协议,Web代理支持探测防御等,功能丰富。核心在于GOST中一个代理服务逻辑上被分成两层:协议层(Protocol)和传输层(Transport),每层有若干可选的类型,两层之间相互独立,并可以任意组合使用。

毫无疑问,老E选择简单、快速,直接danted/sockd走起,选择docker方式安装部署,后续有需要方便替换其他项目。

2.docker方式安装dante

老E使用了lozyme/sockd的dante基于Alpine的精简镜像,镜像作者还提供、发布一键安装脚本,本文一并采用。lozyme/sockd支持Pam.user认证且默认开启,不与系统用户关联,对于VPS管理员而言非常友好。

docker pull lozyme/sockd
mkdir -p /home/dockers/danted

docker run -d --name mydante lozyme/sockd
docker cp mydante:/home/danted/conf/sockd.conf /home/dockers/danted
docker cp mydante:/home/danted/conf/sockd.passwd /home/dockers/danted
docker stop mydante
docker rm -f mydante

#如有需要,可编辑Socks5服务器配置文件,文件内容可参考下文             
vim /home/dockers/dante/sockd.conf 

#10080保持于sockd.conf中设置端口一致,默认2020,此处应保持一致
docker run --name mydante \
   -p 12345:2020 \
   -v /home/dockers/danted/sockd.passwd:/home/danted/conf/sockd.passwd \
   -v /home/dockers/danted/sockd.conf:/home/danted/conf/sockd.conf \
   -d lozyme/sockd

docker exec mydante script/pam add test 1234

可使用如下命令测试socks5代理是否成功开启:

curl -v -x socks5://uaername:passwd@127.0.0.1:portnum https://bing.com

当前版本lozyme/sockd dante默认端口采用2020,可以修改。除passwd文件外,可一并将dante.conf文件拷贝宿主机目录,并在后续创建、挂载容器时映射至宿主机对应目录。老E给出如下一份最为简单的sockd.conf文件内容参考。其中的接口(internal、external)可使用接口名称或ip,也可使用主机名。

logoutput: stdout
#debug: 2

internal: eth0   port = 2020
external: eth0
#external.rotation: same-same

clientmethod: none
socksmethod: pam.username none

user.privileged: root
user.notprivileged: nobody

client pass {
    from: 0/0  to: 0/0
    log: connect disconnect
}
#client block {
#    from: 0/0 to: 0/0
#    log: connect error
#}

socks pass {
    from: 0/0 to: 0/0
    log: connect disconnect
}
#socks block {
#    from: 0/0 to: 0/0
#    log: connect error
#}

同时,精简的lozyme/sockd Dante镜像具备相应的账户管理功能。

docker exec mydante script/pam show   #mydante为 --name指定的容器名,script/pam show显示账户
docker exec mydante script/pam add USER PASSWORD    #添加、修改账户
docker exec mydante script/pam del USER   #删除账户

3.一键脚本(danted/sockd)方式安装

Dante的安装相对简单,但配置需要一定的Linux基础,化繁为简,可以使用Dante一键安装脚本进行快速安装部署(Lozy/danted: Fast script for installing & configing Danted--Socks5 Proxy Server)。

#apt-get install dante-server  #普通安装方式
wget --no-check-certificate https://raw.github.com/Lozy/danted/master/install.sh -O install.sh bash install.sh
bash install.sh --name mysockd --ip="a.b.c.d" -p 12345 --user=test --passwd=1234

#bash install.sh --uninstall  #卸载danted/sockd

可通过以下命令添加用户。

/etc/init.d/sockd adduser USERNAME PASSWORD

4.最后

至此,在调整VPS安全策略、防火墙规则的前提下,需要使用socks5代理服务的应用即可通过lozyme/sockd宿主机的相应端口、dante服务账户及密码上线部署、运行了,socks5相对轻便、可通过TLS以支持加密通信。而本地部署的应用也可以充分借助其高效转发代理的功能,以Go-proxy-bingai为例,其docker启动加载命令进行如下调整即可。

#画蛇添足
docker run -e Go_Proxy_BingAI_SOCKS_URL=VPS_IP:DantePort -e Go_Proxy_BingAI_SOCKS_USER=username -e Go_Proxy_BingAI_SOCKS_PWD=passwd -d -p 8080:8080 --name go-proxy-bingai --restart=unless-stopped adams549659584/go-proxy-bingai

Goproxy、Gost等都是非常优秀的项目,而WARP作为一款Cloudflare全家桶的一员,其应用非常广泛,因其IP相对较为洁净、未受污染,常被用于解锁Netflix、ChatGPT服务,而带宽虽有不足,但可作为备份以应对不时之需,后续我们将针对WARP、WARP+及Zero Trust的部署和应用进行分析和分享。

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
标签: Cloudflare proxy socks5 代理
最后更新:2024年6月2日

老E

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • acc663yjk

    请问openwrt虚拟多播取的多个外网ip 有什么办法搭建对应的socks5吗?

    我有一个python程式有一个功能只限定socks5连接('socks5://192.168.11.20:1080')
    我想要让这个程式连接五个不同的外网ip从我家自己连出去的 该怎么连线且使用socks5对应到绑定的外网ip?

    2023年12月30日
    回复
    • webmaster

      @acc663yjk 手动修改python程序或者在11.20部署支持级联代理的socks5服务端

      2023年12月30日
      回复
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    站内搜索
    归档
    • 2025 年 5 月
    • 2025 年 4 月
    • 2025 年 3 月
    • 2025 年 2 月
    • 2025 年 1 月
    • 2024 年 12 月
    • 2024 年 11 月
    • 2024 年 10 月
    • 2024 年 9 月
    • 2024 年 8 月
    • 2024 年 7 月
    • 2024 年 6 月
    • 2024 年 5 月
    • 2024 年 4 月
    • 2024 年 3 月
    • 2024 年 2 月
    • 2024 年 1 月
    • 2023 年 12 月
    • 2023 年 11 月
    • 2023 年 10 月
    • 2023 年 9 月
    • 2023 年 8 月
    • 2023 年 7 月
    • 2023 年 6 月

    Copyright ©2023-2025 Appscross. All Rights Reserved.