小樱 发表于 2016/2/1 01:01

Linux下利用TC命令,对PAC代理进行限速,限制某个进程端口的吞吐速度,预留给其他使用,网卡限流

Linux下利用TC命令,对PAC代理进行限速,限制某个进程端口的吞吐速度,预留给其他使用,网卡限流
不少中小服务器接入带宽往往只有100Mbps 通常服务器也运行了其它服务,比如web server服务,当PAC代理用户访问量较大并且有多人同时下载时,带宽很容易耗尽,导致服务器延迟增加或丢包。如何对25端口的PAC代理进行速度限制,而保障其它服务能正常运行?

下面教程是限制为5Mbps,也就是640KB/S
/sbin/tc qdisc add dev eth0 root handle 1: htb
/sbin/tc class add dev eth0 parent 1: classid 1:5 htb rate 640kbps ceil 640kbps
/sbin/tc filter add dev eth0 parent 1:0 protocol ip handle 5 fw flowid 1:5
/sbin/iptables -A OUTPUT -t mangle -p tcp --sport 25 -j MARK --set-mark 5
service iptables save


可以把以上命令写成脚本文件,最后一条保存不需要,放在/home/pac.sh文件中
然后运行crontab -e

然后设置* * * * * /bin/bash /home/pac.sh


假设要对eth0的网卡总体出去流限速为10Mbps的速度,可执行如下命令burst 设置15k,通常10Mbps至少需要10k的缓冲区,否则可能导致丢包。

/sbin/tc qdisc add dev eth0 root handle 1: htb default 1
/sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit ceil 10mbit burst 15k


要列出当前规则,请输入
tc -s qdisc ls dev eth0

想删除全部规则,请输入
tc qdisc del dev eth0 root

查看防火墙规则回显确保添加
cat /etc/sysconfig/iptables | grep sport

不可名 发表于 2016/2/1 01:53

支持·

jmyz_0455 发表于 2016/3/4 23:34

最近租了个学生阿里云,想把PAC扔进去,但是这个扔的操作好像涉及好多东西

比如要像建站一样买个域名,还有备案
然后再阿里云的主机上搭建Web环境
然后上传pac到服务器指定目录
就能通过 ***.域名/a.pac 这样用PAC文件?

网上搜到的人都没有教这一步,要么一笔带过,请指教

小樱 发表于 2016/3/5 00:02

jmyz_0455 发表于 2016/3/4 23:34
最近租了个学生阿里云,想把PAC扔进去,但是这个扔的操作好像涉及好多东西

比如要像建站一样买个域名, ...

是的,搭建一个网站环境,如果你用IP地址的话,可以无需备案操作,网站环境我这有个kangle的
http://bbs.itzmx.com/thread-7232-1-1.html
上面也有个小视频,很简单的。

jmyz_0455 发表于 2016/3/5 23:20

小樱 发表于 2016/3/5 00:02
是的,搭建一个网站环境,如果你用IP地址的话,可以无需备案操作,网站环境我这有个kangle的
http://bbs ...

安装过程一切顺利,就是最后会说一句
#service mysqld restart
mysqld: 未被识别的服务
感觉是数据库这个模块挂了?我重新装一次也没解决。

现在管理面板能进去了,但是不知道 pac 文件放哪里好?

小樱 发表于 2016/3/6 01:13

jmyz_0455 发表于 2016/3/5 23:20
安装过程一切顺利,就是最后会说一句
#service mysqld restart
mysqld: 未被识别的服务


可能是一个网络问题数据库安装失败了。。创建一个主机,然后放进去,绑定IP或者域名就可以访问到了,或者直接丢到/vhs/kangle/www目录下可以存放域名未绑定的内容

jmyz_0455 发表于 2016/3/6 22:08

本帖最后由 jmyz_0455 于 2016/3/6 22:10 编辑

pac放好了,不过数据库安装失败这个怎么解决呢

小樱 发表于 2016/3/6 22:10

jmyz_0455 发表于 2016/3/6 22:08
安装好了,不过数据库安装失败这个怎么解决呢

yum -y install mysql mysql-server
service mysqld restart
chkconfig --level 2345 mysqld on


如果你不搭建网站用数据库的话可以忽略把

仁二 发表于 2016/3/8 07:42

只知道是好东西 要封杀端口的话设置吞吐量为0就好咯对吗?
以前来论坛的时候好像是百度加速器注册的 还是朋友介绍的忘记了
今天发现 原来小樱也在这边{:126:}还有居然是……额
可能很久才来一次的说

小樱 发表于 2016/3/8 16:01

仁二 发表于 2016/3/8 07:42
只知道是好东西 要封杀端口的话设置吞吐量为0就好咯对吗?
以前来论坛的时候好像是百度加速器注册的 还是 ...

嗯.一年上个一两次就好
页: [1]
查看完整版本: Linux下利用TC命令,对PAC代理进行限速,限制某个进程端口的吞吐速度,预留给其他使用,网卡限流