LIUNX+NAT网吧网段限速透明代理脚本

LIUNX+NAT网吧网段限速透明代理脚本

首先我说明一下我这的网络环境
我这里上网用的是电信(ISP)公网IP+LIUNX代理服务器(算是简单路由器吧.呵呵)
LIUNX装双网卡
ETH0  为  内网IP
ETH1  为 外网IP
另外大家有好的IPTABLES规则防火强要在下面跟帖啊,我会把帖子整理出来(会注明哪位兄弟发的::xiao2:: )让大家(包括我)可以学习学习:P

好了,下面是我的限速脚本(请注意空格和大小写,好象记得LIUNX对大小有要求:) )  以下是我RC.LOCAL内容
注:()里是我的注解,如果有不对的请版主指出。

# !/bin/sh

touch   /var/lock/subsys/local
echo  1  > /proc/sys/net/ipv4/ip_forward

route add default  gw  10.0.0.0   (这是加入电信网关,如果你已设了不用这条)

DOWNLOAD=640Kbit     (640/8 =80K ,我这里限制下载最高速度只能80K)
UPLOAD=640Kbit           (640/8 =80K,上传速度也限制在80K)
INET=192.168.0.           (设置网段,根据你的情况填)
IPS=1                           (这个意思是从192.168.0.1开始)
IPE=200                        (我这设置是从IP为192.168.0.1-200这个网段限速,根据自已的需要改)
ServerIP=253                (网关IP)
IDEV=eth0
ODEV=eth1

/sbin/tc  qdisc  del  dev  $IDEV root handle 10:
/sbin/tc  qdisc  del  dev  $ODEV  root handle  20:
/sbin/tc  qdisc  add  dev $IDEV  root  handle  10: cbq  bandwidth  100Mbit avpkt  1000
/sbin/tc  qdisc  add  dev  $ODEV  root  handle  20: cbq bandwidth  1Mbit  avpkt  1000
/sbin/tc  class  add  dev $IDEV  parent 10:0  classid  10:1  cbq  bandwidth  100Mbit  rate 100Mbit  allot 1514  weight  1Mbit  prio  8  maxburst  20  avpkt  1000
/sbin/tc  class  add  dev  $ODEV  parent  20:0  classid  20:1 cbq  bandwidth  1Mbit  rate  1Mbit  allot  1514  weitht  10Kbit  prio  8  maxburst  20  avpkt  1000

COUNTER=$IPS
while  [   $COUNTER  -le  $IPE   ]
    do
/sbin/tc  class  add  dev  $IDEV   parent  10:1  classid  10:1$COUNTER  cbq  banwidth  100Mbit  rate  
$DOWNLOAD  allot  1514  weight  20Kbit  prio  5  maxburst  20  avpkt  1000  bounded
/sbin/tc  qdisc  add  dev  $IDEV  parent  10:1$COUNTER  sfq  quantum  1514b  perturb15
/sbin/tc  filter  add  dev  $IDEV  parent  10:0  protocol  ip  prio  100  u32  match  ipdst  $INET$COUNTER   flowid  10:1$COUNTER
      COUNTER=` expr  $COUNTER  +  1  `
done

iptables  -t  nat  -A  POSTROUTING  -o  eth1  -s  192.168.0.0/24  -J  MASQUERADE

(完)自行用 cat  /etc/rc.local  检查脚本,有好的IPTABLES规则防火强请跟贴.好让广大兄弟姐妹受益(包括我在内:) )

另外还可以装个SQUID做做CACHE服务器,会使你网吧打开网页的速度有显著提高..
Squid是什么?    (网上找的,让不知道的朋友有个认识.知道的高手就不用看了)  我现在用的是LIUNX+IPTALBLES+SQUID做代理,感觉很好用....
  Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

下面是我的SQUID配置文件,比较简单.但应付一般的足够了.如果想得到更多更全的SQUID配置要靠大家努力..
至于安装SQUID可以到网上找找资料,蛮多的.
以下是我的SQUID基本配置文件,我的SQUID安装在/ETC/SQUID目录下.所以
VI /ETC/SQUID/SQUID.CONF    ..  SQUID.CONF配置内容


http_port 3128     (代理,也就是缓存服务器端口)
visible_hostname   hostname     (hostname你的服务器名)
cache_dir ufs /var/spool/squid   1000  16  256   (缓存目录,大小)
cache_mem   20MB
cache_swap_low  90
cache_swap_high  95
httpd_accel_host  virtual
httpd_accel_port  80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
acl  all src  0.0.0.0/0.0.0.0
http_access allow  all

保存退出,squid -k check 检查代码,如果只做到这那么你还要到每台机的IE-工具-internet选项-连接-局域网设置里设置代理服务器IP和端口,比较麻烦吧..最好是把外网80端口映射到内网的3128端口上..这样下面机器什么都不用设置真正做到透明代理...下面是我的IPTABLES规则,可以把这个加到启动项里去

iptables -t  nat  -A  PREROUTING -i  eth1  -p tcp -m  tcp --dport  80  -j REDIRCT  --to-ports  3128
iptables  -t  nat  -A  POSTROUTING  -o  etho  -j  MASQUERADE  

如果版主发现有哪需要改进或错误请指出
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值