应该说,Linux下功能最全的代理服务器差不多就是kingate了,支持http,https,socks,mms,ftp等等相当全面的协议,认证模块也算得丰富,并且还提供了基于Web进行配置管理的界面,是一个非常不错的开源软件。作者是一个国内的高手,只是近两年好像没有再继续更新了。有人说这个软件不够稳定,的确开启该软件的http代理服务时,代理服务器端存在容易崩溃的现象,不过我都是只开一个Web管理端口和socks5服务的,感觉还是十分稳定的。

本来考虑偷懒一下,直接找Debian下有deb包的代理软件来用,可惜找来找去,虽然有squid、socks5 server等同样非常优秀的代理服务器软件,可是总是无法兼顾http代理、socks代理和认证这三方面的功能,所以还是用回kingate了。

下载源码,准备编译环境

本来kingate的官方网站应该是http://www.kingate.net ,但现在访问不到了。可以到http://sourceforge.net/projects/kingate 下载最新的1.6版本源代码包,也就是kingate-1.6.tar.gz 。

我的操作系统版本是Debian Etch 4.1 (testing),为了能够编译kingate,大致需要安装gcc g++ gpp这几个包,安装时几个包会自动装上相关的依赖库。

修改源代码

由于现在gcc的版本已经是4.1了,对c++语法的支持略有变化,因此需要做如下改动:

  1. src/KConfig.h的第52行,由
     bool KConfig::GetList(const char *filename);
    改为
     bool GetList(const char *filename);
  2. src/KUser.h的第87行,由
     std::string KUser::ListLoginUser();
    改为
     std::string ListLoginUser();

配置和编译

  1. ./configure --prefix=/opt/kingate
    • 其中“/opt/kingate”是我想放置编译好的kingate程序的路径位置,详细可以参考随源代码的安装说明README.zh。
    • 如果编译环境准备得没有问题,则./configure过程会顺利完成,如果报错,则可能因为缺少某些包造成的,要检查./configure的屏幕输出信息,看其中环境检查结果是“no”的项,有可能对应着某个还没有安装的包。
  2. make install
    • 如果已经按上面的方法修改了源代码,那么应该能够顺利完成编译;如果不修改源代码,则会抛出一个“error: extra qualification”。

执行kingate

使用命令/opt/kingate/kingate 启动代理服务,这时应该可以通过浏览器访问http://localhost:2222 以用户名root、密码kingate登录了。对系统参数的调整也可以通过Web界面来完成。

其他常用的kingate命令行参数包括:

prefix/bin/kingate 启动kingate
prefix/bin/kingate -f 强行启动kingate,如果启动kingate提示有一个在运行,而你又确实kingate没有运行,可以使用这个。
prefix/bin/kingate -h 查看kingate用法
prefix/bin/kingate -q 关闭kingate
prefix/bin/kingate -v 查看kingate版本
prefix/bin/kingate -d # 以调试方式运行程序。#为调试级别,(0-3)。数字越高显示信息也越多。

更详细的说明参照随源代码发布的README文件以及doc目录中的说明文档。

GlossyBlue theme adapted by David Gilbert
Powered by PmWiki