Total Pageviews

Monday 6 February 2012

国人搞的socks服务器软件kingate发布2.1版,这次的版本很好用(原创文章)

昨天到其官网http://sourceforge.net/projects/kingate/看了一下,发现作者于2月2号发布了新版-2.1版,距其上一个版本-2.0版整整过了1年9个月。2.0版基本用不了,2.1版很好用,看来作者修复了不少bug.
2.1版下载地址:
http://sourceforge.net/projects/kingate/files/kingate/2.1/kingate-2.1.tar.gz/download
直链地址:
http://downloads.sourceforge.net/project/kingate/kingate/2.1/kingate-2.1.tar.gz
(http://sourceforge.net/projects/kingate/files/kingate/)

攻略如下:

# wget
http://downloads.sourceforge.net/project/kingate/kingate/2.1/kingate-2.1.tar.gz
# tar zxvf
http://downloads.sourceforge.net/project/kingate/kingate/2.1/kingate-2.1.tar.gz
# cd kingate-2.1
# ./configure --prefix=/usr/local/kingate
# make
# make install
安装完毕。执行文件为/usr/local/kingate/bin/kingate,配置文件为
/usr/local/kingate/etc/kingate.conf,编辑这个配置文件:
# nano /usr/local/kingate/etc/kingate.conf

确保socks on这行不变;在这行socks_port 1082,可把1082改为其他端口号,保存更改。
# killall kingate
# nohup /usr/local/kingate/bin/kingate &

(我还未弄清楚它能否设置用户认证)
然后,你就可关闭putty.exe,运行tor browser,在新版的tor vidalia 程序中,点击“设置中继服务器”-“网络”-勾选“我使用代理服务器连接到网络”-address栏填写你的vps的主机名或ip,端口填写你所设置的socks server的端口号.

username和password栏不用填。
type选择socks 5,不勾选“我的防火墙只允许我连接到特定端口”和“我的isp阻止与tor网络的连接",
然后点击“确定”。这样通过你建立的socks 5代理,即可很顺利的连接上tor网络,设置浏览器的socks代理为127.0.0.1:9050,从而可用tor顺利的翻墙。

 这个程序同时还是一个http proxy程序, 修改/usr/local/kingate/etc/kingate.conf,确保http on不变;在这行http_port 8082,把8082改为其他端口号,保存更改。然后重启kingate:

# killall kingate
# nohup /usr/local/kingate/bin/kingate &
用它所建立的http proxy和用squid或tiny proxy(这也是一个http proxy程序)建立的http proxy起着一样的作用。
-----------------


找到kingate这么一个socks5代理服务器,这个软件是国人写的,有详细的使用手册,同时支持socks5,http代理等多种代理类型。 地址:http://sourceforge.net/projects/kingate/
下载编译,竟然一次成功,更可贵的是支持简单的web管理。这里向大家推荐下。
使用说明手册在他的源码包里面。这里我贴出我的安装步骤。 84,ds,hostrail,buyvm,nordicvps等都安装成功。
apt-get -y -q install automake make gcc g++
wget http://nchc.dl.sourceforge.net/project/kingate/kingate/2.0/kingate-2.0.tar.gz 
tar xzf kingate-2.0.tar.gz
cd kingate-2.0
./configure --prefix=/etc/kingate
make install
根据我的安装路径,kingate的部分文件:
/etc/kingate/bin/kingate  kingate主程序(windows版本就是kingate.exe) 
/etc/kingate/var/kingate.log  kingate的日志文件(要求kingate运行用户有读写权限) 
/etc/kingate/etc/kingate.conf  kingate的配置文件
/etc/kingate/etc/kingate.user  kingate的用户文件(要求kingate运行用户有读写权限) 
/etc/kingate/etc/access.conf  kingate的访问控制文件

配置文件在/etc/kingate/etc/kingate.conf
看下,配置还是很简单明了的。说几点我自己的体验:
1、建议关闭socks5代理之外的所有的代理,因为s5代理号称万能代理,有一个socks5代理,其他代理能干的活,s5都能干。
2、另外建议,将配置文件中的log_level  改成0,不然你用代理较多,或者有意无意公布到网上,这个日志的容量将急剧增加。
3、将socks5的端口改到10000以上,免得被轻易扫到。
4、配置文件中每行后面都有^m,这个是windows的换行符到linux下的表现,保留或者删除,并不影响。
安装完成后,启动kingate:
/etc/kingate/bin/kingate
其他kingate命令:
/etc/kingate/bin/kingate   启动kingate 
/etc/kingate/bin/kingate -f   强行启动kingate
/etc/kingate/bin/kingate -h   查看kingate用法 
/etc/kingate/bin/kingate -q   关闭kingate 
/etc/kingate/bin/kingate -v   查看kingate版本
最后,把kingate添加到随机启动:
sed -i '2a /etc/kingate/bin/kingate'  /etc/rc.local
该软件大概占用15m的内存。
我写了一个自动安装的脚本,默认是关闭http代理,关闭web管理,只保留s5代理,端口改成55555,关闭用户认证的。因为只是自己用,所以开的端口越少越好。如果你需要其他的功能,请对照官方手册和配置文件自行修改。
修改完了,记得要重启kingate才能生效哦~
自动安装脚本很简单,两句命令搞定
wget http://linux-bash.googlecode.com/files/kingate.sh
bash kingate.sh
----------------
kingate代理服务器指南 

kingate是一个代理服务器,能代理多种协议,包括:http,https,socks,ftp,pop3,smtp,telnet,dns。能运行在linux,freebsd,...及其它类unix,还有windows(最新版本要求nt 4.0以上)操作系统上 
kingate是一个多线程的程序(采用线程池的方式),所以短时间内大量的连接请求,kingate还能保持很高的性能。 
kingate还支持tcp端口映射,可以实现别人访问你的内网主机。 
kingate有强大的规则控制,包括源IP地址,目的IP地址,目的端口,及采用的代理协议。 
kingate也支持时间控制。即可以设置什么时间内,所设置的规则才有效。 
kingate内置了用户认证,以及记录用户的使用情况,包括用户的使用时间,接收和发送的数据量,可以很容易实现对用户的记费。 
kingate采用http来进行管理,使得管理kingate及查看运行信息变得一件很轻松的事情,也可以远程管理。 
kingate还支持内存及硬盘共二级缓存(仅限http代理). 
最新版本的kingate还可以用来加速web服务器(采用缓存原理)。提升你的web服务器的性能。 
kingate还是一款国人开发的代理服务器。下面我们来全面了解kingate服务器。 

1:下载最新的kingate. 
http://sourceforge.net/projects/kingate/ 

如果你是windows版本请看第8项. 
2:解压 
tar xzf kingate-xxxxx.tar.gz 
cd kingate 

3:安装 
./configure --prefix=安装目录 
如:./configure --prefix=/tmp/kingate 
make install 

4:使用 
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)。数字越高显示信息也越多。 


5:配置 
kingate配置文件是etc/kingate.conf,打开这个文件,里面有详细的说明及用法. 

6:关于Bug 
运行kingate之前最好运行:ulimit -c unlimited 
请访问:http://sourceforge.net/tracker/?group_id=54802&atid=474891,说明bug的现象,及重现办法,以及kingate的版本号。注意,如果kingate在退出时产生了core文件,这很好, 
使用: 
gdb prefix/bin/kingate core文件 
再输入:bt 
把显示的信息也帖上去. 
或者发邮件给作者:khj99@tom.com 

7:关于dnsproxy 
专门代理dns服务请求,请用root用户指行此程序. 

8.windows用户 
解压: 
使用winzip或winrar之类的解压工具。 

安装 
c:\>;prefix\bin\kingate --install 
c:\>;prefix\bin\kingate -z 

反安装 
c:\>;prefix\bin\kingate --uninstall 

启动kingate代理 
c:\>;net start kingate 

停止kingate代理 
c:\>;net stop kingate 

启动dns代理: 
c:\>;prefix\bin\dnsproxy.exe -h use_dns_host -b bindaddr -m max_thread 

9.kingate的配置文件说明: 

#配置文件开始 
#service 
#以下是告诉kingate代理哪些协议,如果要打开的请设置on,否则设为off 
http on 
ftp on 
pop3 on 
smtp on 
telnet on 
socks on 
mms on 
rtsp on 
manage on 

#bind_addr用来告诉kingate绑定的IP地址。 
#bind_addr 192.168.0.1 

#run_user指kingate的运行者。请注意,如果设置了run_user.请以root启动kingate.并且把kingate的etc和var目录设置该用户可以读写。 
#run_user nobody 

#max指kingate最多同时接受多少个连接请求。超过此数,多余的连接kingate将马上关闭。 
max 500 

#max_per_ip用来表明每个IP,同时最多有多少个连接请求。设置为0,表示不限制 
max_per_ip 0 

#min_free_thread 表明kingate关闭一些超时空闭的线程时,最少会留多少个不关闭。 
min_free_thread 3 


#[http] 
http_port 8082 
#http_port表时http代理的端口 

http_accelerate off 
#http_accelerate这个参数很重要。如果你只是使用代理时请设置为off. 
#如果你用kingate来加速web服务器时,设置为on,并且加上: 
#http_redirect { * *  http_host:http_port  none } 

x_forwarded_for off 
#在http请求中加入客户端的IP地址。如果你用kingate来加速web服务器时,建议设置on. 


http_time_out 300 
#http_time_out http代理发送接收超时时间(秒) 

#http重定向: 

#http_redirect { dst[/dst_mask][:dst_port] file redirect_host:redirect_port flag } 
#http_redirect { * *  210.15.29.16:80 none } 
#http_redirect { 211. *  210.15.29.16:8082 proxy } 
#[ftp] 
ftp_port 2121 
ftp_time_out 300 

#[pop3] 
pop3_port 1100 
pop3_time_out 300 

#[smtp] 
smtp_port 2525 
smtp_time_out 300 


#[telnet] 
telnet_port 2323 
telnet_time_out 300 

#[socks] 
socks_port 1082 
socks_time_out 300 
socks5_user off 
#socks5_user设置是否在socks5代理中运行用户认证。 

#[mms] 
mms_port 1755 
mms_time_out 300 

#[rtsp] 
rtsp_port 5540 
rtsp_time_out 300 

#[manage] 
manage_port 2222 
manage_time_out 300 

#log section 
log_model user 
log_level 2 

log_rotate { 0 0 * * * } 
log_close_msg off 
#the log_close_msg first add in v1.5 when it on the kingate will log the connect close msg to log_file. 
#and when it set off kingate won't log the connect close msg to log_file 

#缓存部分 
#cache section 

mem_min_cache 20m 
mem_max_cache 30m 
disk_min_cache 100m 
disk_max_cache 120m 
use_disk_cache on 
refresh never 
refresh_time 0 


#端口重定向 
#redirect port_host:port #端口重定向功能,所有port端口的请求发送至host:port 
#redirect 9999_211.141.90.201:23 
#redirect 3333_127.0.0.1:23 

#配置文件结束 


10.kingate管理 
kingate从1.5版开始远程管理使用单独的端口来管理。我们有了远程管理可以动态改变控制规则,用户及用户组的管理。相信这个功能会越来越强大的。 
只要http代理或者manage端口打开了,远程管理功能就可以了,在access.conf文件里面记得要允许manage管理访问哦,像下面一样就打开了(只允许本机使用管理功能,service写manage,用户组写*,就表示这条规则是管理的了); 
first deny 
model deny 
{ manage * !127.0.0.1 * } 
model allow 
{ * * * * } 

。进入http管理 
打开浏览器(如IE或Mozilla),在地址栏中输入:http://kingate代理服务器IP地址:manage代理端口/ 
manage端口由kingate.conf里面的manage_port指定,并在kingate.conf指定manage on 
就可以了。初始root的密码是kingate, 
注意:这里一定要写kingate代理服务的IP地址,不可以写域名啊或localhost之类的。比如在kingate装在本机manage端口是2222就输入:http://127.0.0.1:2222/ 
不能写:http://localhost:2222/ 

。进入之后就可以看到一些链接. 
logout -->;>; 退出登录 
chanage password -->;>; 更改自已的密码 
--------------------------------------------------- 
如果是root登录的话,你还可以看到以下链接: 

users -->;>; kingate的用户管理 
login users -->;>; 查看当前登录用户情况 
access -->;>; 管理kingate的访问控制 
info -->;>; 查看kingate的运行信息 
config -->;>; 配置kingate(注意:这里更改后kingate要重起才能生效) 

3.kingate的部分文件 

prefix/bin/kingate kingate主程序(windows版本就是kingate.exe) 
prefix/bin/dnsproxy kingate的dns代理程序(windows版本就是dnsproxy.exe) 
prefix/var/kingate.log kingate的日志文件(要求kingate运行用户有读写权限) 
prefix/etc/kingate.conf kingate的配置文件(如果用http管理的话,则要求kingate运行用户有读写权限,否则只要读权限) 
prefix/etc/kingate.user kingate的用户文件(要求kingate运行用户有读写权限) 
prefix/etc/access.conf kingate的访问控制文件(如果用http管理的话,则要求kingate运行用户有读写权限,否则只要读权限) 
prefix/etc/kingate.pid 保存kingate的pid的文件(windows版本没有,要求kingate运行用户有读写权限) 

prefix就是kingate的主目录. 

.kingate访问控制。 
kingate的访问控制可以通过http管理进行修改,也可以通过直接编辑access.conf文件,两者的区别就是直接编辑access.conf文件,kingate需要重起才能生效,而通过http管理则不用重起就能生效。 
kingate的访问控制分为两类规则,一类是allow(允许)规则,另一类是是deny(拒绝)规则。还有一个first来指定的第一规则(即优先级较高的). 
kingate对一个请求首先在第一规则查找,如果找到,就按第一规则进行处理。 
第一规则中没有找到,kingate在另一规则中查找,如果找到按第二规则进行处理。 
如果该请求在两者中都没能找到,kingate就按第一规则进行处理。 

一个规则由以下各项组成: 
{ rule } { time } 
该规则有效时间由time指定,如果没有time,表示所有时间,time格式见下面。 

rule格式: 
[!]service [!]group [!]src_ip[/src_mask]  [!]dst_ip[/dst_mask][:dst_port] 
详细说明 
*表示所有。 
!表示取反,例service为 !http 表示除http服务之外. 
注意:!和*不可以同时使用,如果同时使用会发生意想不到结果。以下同。 

service可以为名字:http,socks,ftp,.... 
也可以写端口,如:8082,1082,... 

group为用户组名称. 
*表示所有的用户和非用户。 
all表示所有的用户。 

src_ip表示源地址,如果以"."结尾表示是一个网络。*表示所有的源地址. 
src_mask源地址掩码,可以是255.255...的形式,也可以是数字像iptables的形式.如果src_ip为一个IP,src_mask就不要写。 

dst_ip目的地址,格式和src_ip一样。 
dst_mask目的地址掩码,格式和src_mask一样. 
dst_port目的端口。如果不写则表示所有端口。 

注意:src_mask,dst_mask,dst_port不可以和取反"!"一起使用. 

time格式: 
分 时 日 月 星期 
格式同crontab一样(星期日是0),但是没有"/"符号. 
例: 
* 8-10 * * 6,0 
表示:星期六星期日的8点到10点。 

5.access.conf文件格式: 
first allow|deny 
model allow 
{ rule } { time } 
... 
model deny 
{ rule } { time } 

access.conf文件举例: 
a:实现kingate的匿名代理: 
first deny 
model deny 
{ manage * !127.0.0.1 * } 
model allow 
{ * * * * } 

b:实现kingate用户认证代理(记得一定要更改kingate的root密码哦) 
first deny 
model deny 
model allow 
{ * all * * } 
{ manage * * * } 


11.客户端访问方式: 
.http代理的设置就不用说了(应该简单)。 
.ftp代理格式:user@ftp_host:port 
.pop3代理格式:email@pop3_host:port 
.smtp代理设置: 
smtp代理从1.5版之后不用在服务器设置了,只用在客户端设置就可以了。 
设置分为两类: 
a:你的smtp要验证: 
在你的邮件客户端把smtp认证选上。认证用户名:user@smtp_host:port,认证密码写你的密码 
b:你的smtp不用验证: 
在你的邮件客户端把smtp认证选上。认证用户名:user#smtp_host:port,认证密码随便写一个 
.telnet代理使用: 
telnet kingate主机地址 kingate的telnet端口 
输入: 你要访问的主机 你要访问的主机地址 
.socks代理设置(包括socks4和socks5): 
参见各客户端软件的介绍. 
mms和rtsp代理请参见windows media play和realplay的使用方法 

12.kingate的官方站点: 
http://sourceforge.net/projects/kingate/

from http://www.chinaunix.net/old_jh/38/291194.html