Socks5 是一种基于 TCP 的网络通信协议,有点类似于 Http,通常用于网络代理,而 socks 是 对 Socks 协议进行加密,封装,具体不过多介绍。
Socks 是一种通信协议,所以跟语言无关,因此他有很多的客户端实现,因为它主要用于代理通信,因此建议使用 Nodejs 或者 Go 来搭建 socks 服务,这样在使用方便和较高的性能之间达到较好的平衡。
这里使用 Nodejs 开发的 Blinksocks 来搭建 socks 服务,Blinksocks 的通信过程如图:
Blinksocks 支持 Socks5/Socks4/Socks4a 和 HTTP 协议,可以配置 ACL 权限控制,对于新手来说建议使用 socks, 因为 socks 协议更加简单,不同平台支持的客户端多,尤其考虑到 android 平台或者 openwrt 这种路由平台。
搭建 socks 最重要的是拥有一个境外服务器,这里推荐 Linode, 像 Vultr 支持微信付款,因此国人太多,网络貌似不太稳定。可以选择日本的节点,当然也可以在阿里云,腾讯云买境外服务器,但是价格会贵一点,还要备案,如果是企业用的话,也是不错的选择。
服务器上配置 Blinksocks 基于 CentOS 7 版本,因为 Blinksocks 是 Nodejs 写的,因此首先需要在系统上安装 Nodejs 环境,CentOS 自带的 nodejs 版本太老了,有两种方式安装 Nodejs 最新版,一种是使用 Nodejs 安装器 Nvm 安装, 一种是使用 Nodesource 源安装。