免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8252 | 回复: 17

[proxy] kingate代理服务器指南 [复制链接]

论坛徽章:
0
发表于 2004-03-29 08:24 |显示全部楼层
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/

论坛徽章:
0
发表于 2004-03-29 12:53 |显示全部楼层

kingate代理服务器指南

这个软件与squid来讲简直是小乌见大乌,呵呵
不单是功能还是性能,曾经试用过一段时间,非常不稳定,后来改用了NAT+squid

论坛徽章:
0
发表于 2004-03-29 13:29 |显示全部楼层

kingate代理服务器指南

原帖由 "xiaoxiaoke" 发表:
这个软件与squid来讲简直是小乌见大乌,呵呵
不单是功能还是性能,曾经试用过一段时间,非常不稳定,后来改用了NAT+squid

不敢和squid比!呵呵。。。
只是提供给另外一种方便。
说到不稳定!我想说的是,发现BUG,要靠大家啊。你发现了BUG,程序产生了core文件,为什么不报告啊!就像linux也是一样,如果大家都不报告BUG.光靠作者是发现不了很多BUG的。
最新版本的kingate(1.6-pre2),自我使用运行良好,现在用来加速web服务器.
站点:http://www.51j.cn
提供免费PHP空间的,看日志平均每天50万个请求。

论坛徽章:
0
发表于 2004-03-29 15:45 |显示全部楼层

kingate代理服务器指南

是一种补充也是另一个选择,俺用iptables+squid(http)+kingate(ftp、smtp、pop3、socket)

论坛徽章:
0
发表于 2004-04-03 14:10 |显示全部楼层

kingate代理服务器指南

khj99你好!按你的介绍装了一个.设置都参照你的.特别是在ACCESS.CONF中没动(即MODEL ALLOW部分为{* * * *}).在客户机上用FTP连接不上.查看LOG文件,显示RULE NO ALLOW.....,可是没限制什么呀?能不能帮忙讲一讲.我用的REDHAT AS3.

论坛徽章:
0
发表于 2004-04-04 08:39 |显示全部楼层

kingate代理服务器指南

你用的版本是什么?还有你的log文件发给我(khj99@tom.com)

论坛徽章:
0
发表于 2004-04-05 12:19 |显示全部楼层

kingate代理服务器指南

squid
怎么代理qq啊?

论坛徽章:
0
发表于 2004-04-05 17:45 |显示全部楼层

kingate代理服务器指南

原帖由 "text2002" 发表:
squid
怎么代理qq啊?

squid不能代理QQ.QQ是用socks协议的。

论坛徽章:
0
发表于 2004-04-06 09:35 |显示全部楼层

kingate代理服务器指南

原帖由 "khj99" 发表:

squid不能代理QQ.QQ是用socks协议的。

那好遗憾啊。那怎么办啊?qq2003是可以socks5代理,也可以的http代理的。




请问是否办法通过一台linux机器,使得qq可以上线,这台linux是具有公网ip的。我对代理不是很熟悉。

论坛徽章:
0
发表于 2004-04-06 12:42 |显示全部楼层

kingate代理服务器指南

多谢pangty!将first deny  改成first allow可以了。就是用FTP下载时,时常停止传数据。连接又没断,过一阵后显示超时。
我用kingate-1.6-pre2.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP