2019-03-16

SKSocks 新一代防火墙穿透框架

作者:administrator 所属分类 - 黑科技

SKSocks是什么?SKSocks是一个可以让TCP/HTTP、FTP、SMTP等协议穿透网络防火墙所设计的框架。同时也是一个网络访问协议,目前支持TCP以及基于TCP的FTP、HTTP等协议的防火墙穿透。

SKSocks有什么功能?SKSocks可以使得用户方便的访问服务器的内网资源。例如,服务器内网有一个资源,IP地址相对于服务器是192.168.1.10,而在外网是无法访问这个资源的,通过SKSocks,我们就可以在广域网穿透防火墙,访问到该资源。通过SKSocks,我们可以简单配置,就能访问服务器上的资源。

SKSocks在本地适配了Socks5协议,但是SKSocks并不是基于Socks5的框架,跟Socks5也没有关系。只是为了方便大家使用,本地可以直接使用Socks5来间接使用SKSocks。

使用的示例:

功能预览

使用SKSocks,数据可以被加密并且转发到指定的服务器,可以访问服务器能够访问的内网或广域网资源。目前SKSocks还在完善当中。

SKSocks支持的功能列表:
1. 支持会话加密。
2. 支持数据转发。
3. 支持用户鉴权。
4. 支持多线程会话控制。
5. 支持跨平台,目前可以在安装了GNU工具链的Linux设备和安装了VS2017或更高版本的Windows设备上编译运行。
6. 无额外模块引入,可自定义框架协议内容,本身非常轻量。
7. 支持IPV6。
8. 支持配置存储。

注意,目前SKSocks暂不支持UDP的加密转发。

代码以及成品下载:https://github.com/lianglixin/SKSocks

建议Windows用户安装VS2017,自行编译代码。Linux用户可以直接make -j4来生成文件,需要安装G++4.9或更新的版本。

界面预览
使用方法:
编译SKSocks,Linux用户是make -j4,Windows用户需要使用MSVC来编译(推荐使用VS2017,MSVC不能管理源代码)。
得到成品,将服务端部署到服务器上(我的是香港的服务器)。
在服务器上运行server端,如需保存配置文件,请在保存配置的输入选项输入"auto"。
服务端输入监听端口,再配置用户名和密码列表(鉴权列表),这个用户名和密码列表应该如下图所示的格式:
用户名和密码的格式

注意,大小写敏感!

配置好用户名以后(可以不配置,这样任何人都能连接你的服务器!),我们在自己的个人计算机或者手机上运行Client端(安卓版懒得用Android Studio界面了,AMD电脑不能开模拟器)。
按照提示输入内容,例如我的服务器IP地址是0.0.0.0,域名srv.typedef.cn,那么可以输入域名或者IP地址配置。
如需保存配置,在保存配置的时候输入auto。
而本地监听域名就是火狐、QQ或者别的支持Socks5框架的软件所要使用的端口,远程端口就是我们服务器设置监听的端口。
如果服务端开启了用户鉴权,则客户端需要输入用户名和密码。
如果没开启,则用户名和密码随便输入即可(不能输入空字符串!)。
此时,客户端已经启动了,例如我输入的本地监听地址是9966,那么以火狐为例,我们在火狐里面这样设置:
火狐设置的页面
需要配置的项目

注意需要按照上图进行配置!安卓版火狐需要地址栏输入about:config来进行设置,具体设置的项目是proxy(可以搜索proxy),其余的可以自行百度。如果不只是浏览器需要设置,可以使用全局socks5代理软件(应该是使用本地VPN的软件)。

### 注意,Socks5主机为开启了Client软件的主机。
### 假如我的电脑内网IP是192.168.1.88,那么手机的Socks5主机
### 或者别的电脑的Socks5主机可以填写192.168.1.88。
### 只需要一台设备开启Client端即可~

我们配置好以后,就可以开始访问服务器内网资源了哦!
具体代码在GitHub上开源了,可以根据个人喜好自定义。
代码使用C with Class开发,使用了少量的C++11 STL库,非常轻量。

教程到这里就结束了,欢迎大家注册发表讨论咯~

麦科技原创 转载请声明出处!

隐藏