您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

LINUX路由和QOS限速

添加时间:2010-11-15  添加: admin 
关注和试用LINUX很长时间了,但较少实际用起来,刚好单位需一个路由器,有闲置老机,提升下自己实战能力吧!网上文章好多笔误,因此有些小波折,希望把这次经历总结下,为了忘却的纪念。

安装好UBUNTU SERVER 8.04后,设置双网卡:eth0为外网网卡,eth1为内网网卡,

sudo vi /etc/network/interfaces

auto eth0
iface eth0  inet static
address  外网网卡IP
netmask  子网掩码
gateway  网关
auto eth1
iface eth1 inet static
address  内网网卡IP
netmask  子网掩码

sudo /etc/init.d/networking restart

还有设置DNS服务器
sudo vi  /etc/resolv.conf(实际系统默认的并不存在resolv.conf该文件,属于自己创建)
nameserver   主DNS
nameserver   后备DNS

要想使LINUX系统达到这种目的,首先得查看LINUX系统的内核中是否打开了IP转发功能,可以通过下列命令来查看:
  sudo  cat /proc/sys/net/ipv4/ip_forward
如果用此命令返回的结果是0,那么就表明LINUX内核没有启用IP转发功能。就可以通过下示命令来启用:
  sudo echo 1 > /proc/sys/net//ipv4/ip_forward
通过固定公网IP地址方式连接互联的实现方法如下:
  sudo iptables –t nat –A POSTROUTING –s 192.168.1.0/24 -j SNAT ––to XXX.XXX.XXX.XXX
XXX是外网网卡IP,我的路由还没做防护,先隐藏了,对IPTABLES还不熟悉,呵呵。

用后发现还不能上网,一番检查,还不行,暴汗……猛然想起可能是ISP对上网网卡的MAC地址绑定了,我改……
其实就是在网卡配置文件中加一行pre-up ifconfig eth0 hw ether 88:88:88:88:88:88(MAC地址)

sudo vi /etc/network/interfaces


auto eth0
iface eth0  inet static
pre-up ifconfig eth0 hw ether 88:88:88:88:88:88
address  外网网卡IP
netmask  子网掩码
gateway  网关
auto eth1
iface eth1 inet static
address  内网网卡IP
netmask  子网掩码

sudo /etc/init.d/networking restart

能PING能了,网卡配置能保存,把NAT和QOS做成一脚本,设置主属为ROOT,否则运行无权限,开机时运行。

#!/bin/sh
# BY ZWY 090916
# Coyote local command init script

echo "1" >/proc/sys/net/ipv4/ip_forward
#打开内核IP转发功能

iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -j SNAT --to XXX.XXX.XXX.XXX
#设置IP转发规则,但没有做任何防护:裸奔!呵呵。


ODEV="eth0"   #外网网卡
IDEV="eth1"    #内网网卡

UP="64kbps"    #上行总带宽:注意单位其实应该是KB/S,TC写法如此没办法,如下同单位。
DOWN="256kbps"   #下行总带宽

UPLOADrate="4kbps"     #限速范围IP上行保证带宽
UPLOADceil="32kbps"     #限速范围IP上行最大带宽
DOWNLOADrate="16kbps"   #限速范围IP下行保证带宽
DOWNLOADceil="128kbps"   #限速范围IP下行最大带宽

INET="192.168.1."    #限速网段

IPS="100"                 #限速范围起始IP
IPE="110"                 #限速范围结束IP

outdown="4kbps"      #不在限速范围IP共享(总)下行速度
outup="1kbps"          #不在限速范围IP共享(总)上行速度  

tc qdisc del dev $ODEV root 2>/dev/null       #清除队列规则(初始化)
tc qdisc del dev $IDEV root 2>/dev/null

tc qdisc add dev $ODEV root handle 10: htb default 2254        #设置根队列
tc qdisc add dev $IDEV root handle 10: htb default 2254

tc class add dev $ODEV parent 10: classid 10:1 htb rate $UP ceil $UP             #设置总速度
tc class add dev $IDEV parent 10: classid 10:1 htb rate $DOWN ceil $DOWN

#开始设置限速范围IP规则

i=$IPS;
while [ $i -le $IPE ]
do
tc class add dev $ODEV parent 10:1 classid 10:2$i htb rate $UPLOADrate ceil $UPLOADceil prio 1
tc qdisc add dev $ODEV parent 10:2$i handle 100$i: pfifo
tc filter a
分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站