1 简介

slue 是一个简单的 SOCKS4 代理服务器,只需要一个可执行文件与一个配置文件就可以执行,无需安装。它只支持 SOCKS4 协议中的 TCP Connect 方法,不支持 TCP Bind,也不支持 UDP,但对于大部分简单应用,应该已经足以胜任了。虽然滇狐现在已经不再维护这个程序,但还是希望能够给大家带来一些方便。

2 配置文件格式

该程序是一个控制台程序,没有配置界面,对该服务器的所有配置都是通过使用文本编辑器修改配置文件进行的。slue 的配置文件采用类似 ini 的文件格式,与 ini 文件不同的是该配置文件大小写敏感,也就是说,“server”和“Server”是不同的配置项。配置文件由以下 3 部分组成:服务器设置、允许访问者 IP 列表、禁止访问目标 IP 列表。

“[Server]”块之下是服务器设置,只有两项设置:Port 项表示服务器监听的端口号,默认值为 1080。Log 项表明把服务器收到的所有数据 Dump 到指定目录下,在该目录下生成许许多多的文件,文件名的格式为:t-YYYY-MM-DD-HH-mm-ss-nnnn.bin,t 代表传输方向,“u”代表上传,“d”代表下载;nnnn 为一 4 位流水编号。Log 项如果未设置或者为空,则 slue 不记录数据。Log 主要用于调试用途,正式开设服务器的时候建议大家不要设置 Log 项,一来是会产生大量的垃圾数据,二来是对使用该代理的用户个人隐私的不尊重。

“[From]”块之下是允许访问者 IP 列表,格式是:“IP=OK”。例如,如果我们允许来自 166.111.102.8 的用户使用我们的代理,则在“[From]”块下写:“166.111.102.8=OK”。该代理服务器仅支持为指定 IP 的用户开启代理,不支持为某个区段的 IP 开启,因此主要适用于朋友之间互相帮忙。

“[To]”块之下是禁止访问目标 IP 列表。可能某些站点设置了对你的 IP 信任,而你不打算让其它人通过代理能够自如地访问这些站点,此时你就可以通过设置禁止访问目标 IP 列表的方式阻止你的代理用户使用。格式是:“IP=Denied”。例如,如果你不希望你的代理用户通过代理访问 127.0.0.1,你就可以写在“[To]”块下写:“127.0.0.1=Denied”。

下面是一个简单的 slue 示范配置文件,你可以在该配置文件的基础上修改,用作你自己的配置文件。

3 slue For Linux

由于 Linux 版本的 C 运行库版本较多,而且大部分情况下都是使用动态链接,因此滇狐不再提供 Linux 版的可执行文件,而是以源代码的形式提供。

slue 的源代码使用 Kittie.Concept 编译,如果你没有安装 Kittie.Concept 的话,请先安装一份,安装方式参看说明书。另外,slue 还依赖 etseqeuc,请下载相应的库并解压到同一目录下。

以上依赖关系都满足后,点击这里下载 slue 的源代码,将 slue 源代码解压到与 etseq 和 euc 相同的目录下,然后到 slue 所在目录下执行:

kittiemake CFG=Release

即可完成 slue 的编译。

slue 运行时默认会读取用户主目录($HOME)下的 .slue,如果你使用其它文件名作为配置文件的话,也可以通过:“slue <配置文件名>”的形式加载指定配置文件。

程序运行后可以通过按 Ctrl-C 的形式结束。如果使用“&”符号或运行后通过 Ctrl-Z 后“bg”使该程序后台运行,则可以通过向程序发送 INT 或 TERM 信号,使该程序结束运行:

killall -s INT slue

修改了配置文件后,向该程序发送 HUP 信号,即可通知程序重新加载配置文件,而无需杀死正在运行的服务器再重新开启:

killall -s HUP slue

4 slue For Windows

slue for Windows 下载后只需要直接解压,然后局部修改 slue.ini,然后双击 slue.exe 运行即可。slue 运行时默认会读取自身所在路径之下的 slue.ini,如果你使用其它文件名作为配置文件的话,可以将你的配置文件用鼠标拖放到 slue.exe 上放开,slue.exe 就会启动并加载你指定的配置文件。你也可以通过命令行的形式,使用:“slue.exe <配置文件名>”的形式加载指定配置文件。

如果在运行过程中修改了配置文件,可以在 slue 窗口中输入“reload”,回车后 slue 就会重新读入新的配置文件。当不需要再使用该程序时,输入“quit”按回车即可关闭。

点击这里可下载 slue for Windows 的可执行文件与示范配置文件。由于版权等多种原因所限,这里提供的可执行文件是使用 MinGW 编译的。如果你愿意的话,可以参看上一节的编译说明,下载 slue 的源代码后使用 Kittie.Concept 将 slue.kmk 转换为 vcproj 格式,在 slue 所在目录执行以下命令:

kittie slue.kmk slue.vcproj

即可得到 VC7 格式的工程文件,然后你可以用 VC7 重新编译一份新的 slue。据测试,VC7 版的可执行文件体积远小于 MinGW 版,而且执行速度也比 MinGW 版快得多。