安装kingate代理
公司的OA等系统只允许内部使用,在web上做了IP限制(而且这样做,安全些也强一些,避免外部人员攻击,嘿嘿)。不过后来,公司又搞了一个分公司,分公司的人是用asdl上网的,没有固定公网IP,导致他们每次变更IP都要在nginx上进行修改,很麻烦。由于公司的网关是一台废弃的确台机装的linux改的(iptables+tc实现),所以决定在这台网关上做一个代理,让分公司的人能通过代理连接公司内部上网。这里用的就是kingate --我在 鸡肋的linux正向代理 中有提到 。
一、概述
- 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项目托管在sourceforge上。其主页为:http://sourceforge.net/projects/kingate/ ,目前最新版本是2.2 。具体安装方法如下:
1wget http://softlayer.dl.sourceforge.net/project/kingate/kingate/2.2/kingate-2.2.tar.gz
2tar xzf kingate-2.2.tar.gz
3cd kingate-2.2/
4./configure --prefix=/usr/local/kingate
5make && make install
kingate安装完成后默认有二个配置文件kingate.conf 、access.conf,在修改用户信息后,还会生成第三个配置文件kingate.user。
最主要的配置为kingate.conf ,其内容如下:
1[root@gataway etc]# cat kingate.conf
2http on
3ftp on
4pop3 off
5smtp off
6telnet off
7socks off
8mms off
9rtsp off
10manage on
11max 2000
12max_per_ip 0
13min_free_thread 3
14http_port 8082
15http_accelerate off
16x_forwarded_for on
17http_time_out 30
18ftp_port 2121
19ftp_time_out 300
20pop3_port 1100
21pop3_time_out 300
22smtp_port 2525
23smtp_time_out 300
24telnet_port 2323
25telnet_time_out 300
26socks_port 1082
27socks_time_out 300
28socks5_user off
29mms_port 1755
30mms_time_out 300
31rtsp_port 5540
32rtsp_time_out 300
33manage_port 2222
34manage_time_out 300
35log_model user
36log_level 2
37log_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 * * * }
38log_close_msg off
39mem_min_cache 50m
40mem_max_cache 12m
41disk_min_cache 20m
42disk_max_cache 30m
43use_disk_cache off
44refresh never
45refresh_time 300
46user_time_out 0
47mem_cache 50m
48disk_cache 100m
49max_deny_per_ip 0
50max_queue_thread 15
51min_limit_speed_size 1m
52limit_speed 20k
53max_request 50
54total_seconds 10
55bind_addr
56run_user
57insert_via off
以上配置中,http on 表示启用http代理(也可以根据你自己的需求开启其他类型的代理),http_port 8082 表示http代理的端口。manage on 为启用http管理,manage_port 2222 为http管理的端口 (出于安全考虑也可以进行修改)。
access.conf的内容如下:
1first deny
2model deny
3model allow
4{ * * * * }
以上表示先进行deny规则匹配,再进行allow规则匹配,deny内容为空,allow规则下的几个*分别代表如下
关于kingate.user的内容不再介绍,因为kingate 的mangage设计的非常好,简洁实用,所有的配置项都可以在mangage页里配置。manager管理界面的默认用户名为root,密码为kingate 。
三、kinagate的自启动及其他
kingate默认不带自启动脚本,不过写其来很简单,如下:
1#!/bin/bash
2#
3# chkconfig: 2345 85 15
4# description: kingate is an proxy server daemon
5# processname: kingate
6## BEGIN INIT INFO
7# Provides: kingate
8# Required-Start: $all
9# Required-Stop: $all
10# Default-Start: 2 3 4 5
11# Default-Stop: 0 1 6
12# Short-Description: starts kingate proxy server
13# Description: starts kingate porxy server
14## END INIT INFO
15# Author: licess
16# website: http://www.vpser.net
17prog="kingate"
18kingate="/usr/local/kingate/bin/kingate"
19start() {
20 echo -n $"Starting $prog: "
21 $kingate
22}
23stop() {
24 echo -n $"Stopping $prog: "
25 $kingate -q
26}
27restart(){
28 echo -n $"Restarting $prog: "
29 stop
30 start
31}
32case "$1" in
33 start)
34 start
35 ;;
36 stop)
37 stop
38 ;;
39 restart)
40 restart
41 ;;
42 *)
43 echo $"Usage: kingate {start|stop|restart}"
44 RETVAL=1
45esac
46exit $RETVA
在进行访问控制时,假有人配置了你设置的IP和端口访问不允许的站点时,在访问页面的左下角会有kingate的版本提示为: Generated by kingate(2.2)这样的信息提示 。其nginx apache squid等软件一样,不想让他提示该信息,可以修改src/run_client.cpp文件的1303行,将其改为你想提示的内容。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/install-kingate-proxy/2801.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.