歡迎您光臨本站 註冊首頁

linux下的openvpn如何實現單個客戶的帶寬或者流量控制

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

linux下的openvpn如何實現單個客戶的帶寬或者流量控制

linux主機 OpenVPN 2.0.9
如何實現針對用戶的統一帶寬或者流量限制呢?

不是全局限制,而是可以精確到用戶, 不知道我說的夠不夠明白。

查閱了一些資料。大都是用TC控制全局帶寬。不知道哪位前輩可以提供下方案實現上面描述的要求。

有一些要求的也可以單獨聯繫我。

希望前輩們可以不惜賜教,在此先謝過了
《解決方案》

回復 #1 farmer6 的帖子

使用tc這個是必須的方式
《解決方案》

比較麻煩。。。
《解決方案》

你試試用routeos這個系統來實現你的限速..

我順便請教個問題. 你能幫我解決一下 openvpn+radius的問題嗎?
# cat server.conf
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 172.16.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
user nobody
group nobody
status openvpn-status.log
log         /var/log/openvpn.log
log-append  openvpn.log
mute 5
#
tls-server
status-version 1
cipher BF-CBC
max-clients 200
push "redirect-gateway def1"
push "dhcp-option DNS 202.106.0.20"
push "dhcp-option DNS 202.96.199.133"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radius.cnf
client-cert-not-required
username-as-common-name
#

這是我的openvpn server.conf配置...當我加上plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radius.cnf這條時就會重啟失敗. 去掉這條和下邊的兩條就從啟成功.請問怎麼解決??/
《解決方案》

修改隧道建立成功和拆除時的腳本。

建立后,提取用戶的ip地址,根據ip地址進行採用tc進行流量控制
《解決方案》

樓上的正解。
《解決方案》

tc qdisc add dev tun0 root handle 1:0 htb default 10
tc class add dev tun0 parent 1:0 classid 1:1 htb rate 10Mbit burst 15k

tc class add dev tun0 parent 1:1 classid 1:10 htb rate 640kbit ceil 640kbit burst 15k
tc qdisc add dev tun0 parent 1:10 handle 10: sfq perturb 10
tc filter add dev tun0 protocol ip parent 1:0 prio 3 u32 match ip dst 10.0.0.6 flowid 1:10

上面規則可以控制10.0.0.6這個用戶的下載帶寬為:80KB/s,以此類推限制其它用戶.如果會寫shell,可以作一個程序,加到openvpn的撥入腳本中.

上傳是在eth0(假如外網卡是eth0)上做. 略了
《解決方案》

回復 7# jiangdaoyou


    要搞上無數個循環
《解決方案》

回復  jiangdaoyou


    要搞上無數個循環
kns1024wh 發表於 2010-07-12 10:03 http://bbs.chinaunix.net/images/common/back.gif


    "要搞上無數個循環"  看來你是確實理解了TC規則.     我發現很多人只會改別人的規則,實際對TC並不理解.呵呵

[火星人 ] linux下的openvpn如何實現單個客戶的帶寬或者流量控制已經有2408次圍觀

http://coctec.com/docs/service/show-post-17298.html