SSH安装kingate(优化默认配置)

特色:安装界面可以自定义代理端口及WEB管理端口,可选是否关闭socks4支持,注册为服务自启动,优化默认配置。

wget http://www.yishanhome.com/wp-content/uploads/2011/04/kingate.sh;sh kingate.sh

完成后登录http://你的IP:管理端口 默认帐号是:root 默认密码是:yishanhome

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

?Download kingate.sh
#!/bin/bash
printf "
#This is a Shell-Based tool of Backup web sites directory
# Author: yishan
# Website: http://www.yishanhome.com
"
server_ip=`ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
s5_prot()
{
s5prot="8044"
echo "Please input the Socks5 proxy port number, Default: $s5prot:"
  read -p "(Limits 1024 - 65025):" s5prot
  if [ "$s5prot" = "" ]; then
   s5prot="8044"
  fi
let "s5prot = $s5prot + 0"
  if [ "$s5prot" -eq "0" ] || [ "$s5prot" -gt "65025" ] || [ "$s5prot" -lt "1024" ] ; then
echo -e '\033[0;31;1mError Socks5 port number\033[0m'
    s5_prot
  fi
  }
web_prot()
  {
webprot="8055"
echo "Please input the http manage prot number, Default: $webprot:"
  read -p "(Limits 1024 - 65025):" webprot
  if [ "$webprot" = "" ]; then
   webprot="8055"
  fi
let "webprot = $webprot + 0"
  if [ "$webprot" -eq "0" ] || [ "$webprot" -gt "65025" ] || [ "$webprot" -lt "1024" ] ; then
  echo -e '\033[0;31;1mError http manage prot number\033[0m'
    web_prot
  fi
}
s5_prot
web_prot
socks4=N
  read -p "support socks4,Default: $socks4 ,y/N: " socks4
  if [ "$socks4" = "" ]; then
   socks4=N
  fi
yum -y install make automake gcc gcc-c++ gcc-g77
wget http://softlayer.dl.sourceforge.net/project/kingate/kingate/2.0/kingate-2.0.tar.gz
tar xzf kingate-2.0.tar.gz
cd kingate-2.0/
  if [ "$socks4" = "N" ]; then
sed -i -e "s/return create_socks4_connect(m_server)/goto cleanup/" ./src/socks.cpp
  fi
./configure --prefix=/usr/local/kingate
make && make install
mv /usr/local/kingate/etc/kingate.conf /usr/local/kingate/etc/kingate.bak
cat > /usr/local/kingate/etc/kingate.conf << EOF
http off
ftp off
pop3 off
smtp off
telnet off
socks on
mms off
rtsp off
manage on
max 2000
max_per_ip 0
min_free_thread 3
http_port 8080
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 $s5prot
socks_time_out 300
socks5_user off
mms_port 1755
mms_time_out 300
rtsp_port 5540
rtsp_time_out 300
manage_port $webprot
manage_time_out 300
log_model user
log_level 0
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 on
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
EOF
cat > /usr/local/kingate/etc/kingate.user << EOF
maxuid 101
root {d3f60209a0d212302895609ea2ae624b 101 57649344 1302407962 30 3531 5149 1 }
EOF
cat > /etc/init.d/kingate << EOF
#!/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.yishanhome.com
 
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
EOF
chmod +x /etc/init.d/kingate
chkconfig --level 345 kingate on
service kingate start
echo "socks5 $server_ip:$s5prot"
echo "manage prot http://$server_ip:$webprot"
echo "User:root"
echo "Password:yishanhome"
echo "service kingate start/stop/restart"

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

1。进入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/

2。进入之后就可以看到一些链接.
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的主目录.

4.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 }

6.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 * * * }

目前还没有任何评论.

返回顶部