安装kingate代理

2013年10月17日 发表评论 阅读评论

公司的OA等系统只允许内部使用,在web上做了IP限制(而且这样做,安全些也强一些,避免外部人员攻击,嘿嘿)。不过后来,公司又搞了一个分公司,分公司的人是用asdl上网的,没有固定公网IP,导致他们每次变更IP都要在nginx上进行修改,很麻烦。由于公司的网关是一台废弃的确台机装的linux改的(iptables+tc实现),所以决定在这台网关上做一个代理,让分公司的人能通过代理连接公司内部上网。这里用的就是kingate --我在 鸡肋的linux正向代理 中有提到 。

一、概述

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

二、安装与配置

kingate项目托管在sourceforge上。其主页为:http://sourceforge.net/projects/kingate/ ,目前最新版本是2.2 。具体安装方法如下:

wget http://softlayer.dl.sourceforge.net/project/kingate/kingate/2.2/kingate-2.2.tar.gz
tar xzf kingate-2.2.tar.gz
cd kingate-2.2/
./configure --prefix=/usr/local/kingate
make && make install

kingate安装完成后默认有二个配置文件kingate.conf 、access.conf,在修改用户信息后,还会生成第三个配置文件kingate.user。

最主要的配置为kingate.conf ,其内容如下:

[root@gataway etc]# cat kingate.conf
http on
ftp on
pop3 off
smtp off
telnet off
socks off
mms off
rtsp off
manage on
max 2000
max_per_ip 0
min_free_thread 3
http_port 8082
http_accelerate off
x_forwarded_for on
http_time_out 30
ftp_port 2121
ftp_time_out 300
pop3_port 1100
pop3_time_out 300
smtp_port 2525
smtp_time_out 300
telnet_port 2323
telnet_time_out 300
socks_port 1082
socks_time_out 300
socks5_user off
mms_port 1755
mms_time_out 300
rtsp_port 5540
rtsp_time_out 300
manage_port 2222
manage_time_out 300
log_model user
log_level 2
log_rotate {0 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * }
log_close_msg off
mem_min_cache 50m
mem_max_cache 12m
disk_min_cache 20m
disk_max_cache 30m
use_disk_cache off
refresh never
refresh_time 300
user_time_out 0
mem_cache 50m
disk_cache 100m
max_deny_per_ip 0
max_queue_thread 15
min_limit_speed_size 1m
limit_speed 20k
max_request 50
total_seconds 10
bind_addr
run_user
insert_via off

以上配置中,http on 表示启用http代理(也可以根据你自己的需求开启其他类型的代理),http_port 8082 表示http代理的端口。manage on 为启用http管理,manage_port 2222 为http管理的端口 (出于安全考虑也可以进行修改)。

access.conf的内容如下:

first deny
model deny
model allow
{ * * * * }

以上表示先进行deny规则匹配,再进行allow规则匹配,deny内容为空,allow规则下的几个*分别代表如下

kingate

关于kingate.user的内容不再介绍,因为kingate 的mangage设计的非常好,简洁实用,所有的配置项都可以在mangage页里配置。manager管理界面的默认用户名为root,密码为kingate 。

kingate2

三、kinagate的自启动及其他

kingate默认不带自启动脚本,不过写其来很简单,如下:

#!/bin/bash
#
# chkconfig: 2345 85 15
# description: kingate is an proxy server daemon
# processname: kingate
### BEGIN INIT INFO
# Provides:          kingate
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts kingate proxy server
# Description:       starts kingate porxy server
### END INIT INFO
# Author:   licess
# website:  http://www.vpser.net
prog="kingate"
kingate="/usr/local/kingate/bin/kingate"
start() {
        echo -n $"Starting $prog: "
        $kingate
}
stop() {
        echo -n $"Stopping $prog: "
        $kingate -q
}
restart(){
        echo -n $"Restarting $prog: "
        stop
        start
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  *)
        echo $"Usage: kingate {start|stop|restart}"
        RETVAL=1
esac
exit $RETVA

在进行访问控制时,假有人配置了你设置的IP和端口访问不允许的站点时,在访问页面的左下角会有kingate的版本提示为: Generated by kingate(2.2)这样的信息提示 。其nginx apache squid等软件一样,不想让他提示该信息,可以修改src/run_client.cpp文件的1303行,将其改为你想提示的内容。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: 开源软件 标签: