手把手教你建立 SOCKS5 代理服务器
我们通过在网络出口配置一台双网卡的代理服务器来部署网络管理的全部。今
天就由我手把手的教会你如何建立 SOCKS5 代理服务器。
经常有网管询问如何有效的管理员工计算机的网络访问权限,例如屏蔽使用 QQ,MSN 等
聊天工具,禁止 BT 下载电影等。然而对 于一般的交换式网络来说,通过简单的管理工具是
不可能实现上面提到的方法的。就好比水流一样,只有从源头截断才能有效果,在中游和下
游采取拦截措施只会造成洪灾的爆发。
所以说网络出口才是最有效的管理网络的地点,我们通过在网络出口配置一台双网卡的
代理服务器来部署网络管理的全部。今天就由我手把手的教会你如何建立 SOCKS5 代理 服
务器。
一、Windows 平台下 SOCKS5 代理服务器的实现思路
首先介绍大名鼎鼎的 nec 版 socks5 服务器,用过 xNIX 系统的读者可能都熟悉,NEC 的
SOCKS5 版软 件既开源又免费。不过不经过处理它只能在 UNIX 及 Linux 下使用,作为
Windows 的用户,在 Win 平台下选择代理服务器比较麻烦,专业的 代理软件如 ISA 系列,
体积庞大而且配置相对复杂。好用点的如 CCproxy 是商业软件,免费使用时不能超过三用户。
而免费的软件有的功能能够实现但没有 用户控制功能,不能使用密码认证。
难道我们就没有办法在 Windows 平台下找到满意的代理软件吗?今天就由我告诉大家如
何将 NEC Socks5 UNIX 版编译成 WIN32 版。这样通过使用编译后的版本就可以轻松的在
Windows 上建立 SOCKS5 代理服务器了。
二、编译 nec 的 socks5 代理软件 WIN32 版
第一步:从 http://www.socks.permeo.com 下载 socks5 软件包。当然我们也可以在网上搜
索,最新版 本是 socks5-v1.0r11.tar.gz。
第二步:从 http://www.cygwin.com 下载并安装 cygwin 软件,用于稍后编译工作。我们也
可以从网上搜索。
第三步:将 socks5-v1.0r11.tar.gz 解压到 cygwin 的 tmp 目录下,即 cygwin\tmp\socks5-
v1.0r11,解压工具使用最常见的 WINRAR 即可。
第四步:修改 cygwin\usr\include\cygwin\if.h 文件,在#define IFF_LOOPBACK 0x8 后添加
#define IFF_POINTOPOINT 0x10。
第五步:修改 socks5-v1.0r11\server\daemon.c,查找 chdir("/");在前面添加"//"屏蔽掉此句,
使之 成为//chdir("/")。
小提示:如果不添加“//”屏蔽该句,则运行 socks5 会提示"Config: Error opening config file
(socks5.conf): No such file or directory"。
第六步:修改 socks5-v1.0r11\server\udp.c,找到
/*
if (Authorize(pri, 0) != AUTH_OK) {
S5LogUpdate(S5LogDefaultHandle, S5_LOG_ERROR, 0, "UDP Setup: Setup failed:
permission denied");
s5err = SOCKS5_AUTHORIZE;
rval = EXIT_AUTH;
goto cleanup;
}*/
这段代码将其删除。
小提示:我们也可以不删除这段代码,不过不删除的话运行代理的机器就不可以使用
UDP 代理了。
第七步:运行 cygwin,在 cygwin 中切换到 socks5-v1.0r11 目录。
第八步:一次性输入以下命令
./configure --with-threads --with-libconffile=libsocks5.conf --with-srvconffile=socks5.conf
--with-srvpidfile=socks5.pid --with-srvpwdfile=socks5.passwd --with-srvidtfile=socks5.ident
第九步:输入 make 后回车。
第十步:这样你会发现 socks5-v1.0r11\server\Socks5.exe 编译出来了,这就是我们所说的
WIN32 平台的 Socks5 代理工具的主程序了。
第十一步:加上 cygwin\bin\cygwin1.dll(库文件),以及手工编辑的 socks5.passwd(存放用户
名和密码的文 件),socks5.conf(配置文件),就是 WIN32 版的 SOCKS5 代理服务器软件的全
部了。正常运行时只需要保留这四个文件在同一个目录即可。
第十二步:最后我们测试下制作的程序是否可以使用,进入 socks5.exe 所在目录,运行
“socks5 -s -f”如果出现 01904: Socks5 starting at Thu Oct 21 16:07:32 2004 in normal mode 则表
示软件编译成功。
三、启用代理功能
我们需要在一台服务器上通过刚刚编译好的 socks5.exe 程序开启代理功能。方法很简单,
具体步骤如下:
第一步:双击刚刚编译的 socks5.exe 运行,出现一个黑乎乎的控制台窗口,将其最小化。
第二步:客户机就可以通过服务器的 IP 地址和默认端口 1080 来使用 SOCKS5 代理服务器
了。
第三步:默认端口是 1080,可能有的读者觉得比较难记或者公司对该端口进行了封闭,
那么可以通过如下方法修改默认的代理端口,方法是加参数 -b port。例如想改变代理端口
为 8088 使用“socks5.exe -b 8088”来修改。
小提示:如果我们希望为使用代理的用户分配用户名和密码,阻止非法用户使用代理服
务器的话可以使用以下方法。
编辑 socks5.conf 将#auth - - u 前面的“#"符号去掉,再编辑 socks5.passwd,按照 “用
户名 密码”的格式一行一回车添加用户名和密码,保存后运行 socks5.exe,客户机就必须添
加相应的用户名和密码才能正常使用代理服务器了。
总结:其实编译过程虽然复杂但我们只需要配置一次即可,以后启用代理服务器通过运
行 socks5.exe 就可以轻松实现了。