导航:首页 > 操作系统 > linuxdhcpserver

linuxdhcpserver

发布时间:2024-11-01 10:00:28

linux中如何控制端口流量

配置网卡
建立一台虚拟机,并安装完成后以桥接的方式在虚拟机上面添加两张网卡。分别为eth0和eth1。
eth0: a.b.c.d(外网的上网地址)
eth1: 172.16.44.1(做为内网的网关)

Tip
原先我使用eth0:0的这种虚拟网卡的形式去配置一直不成功,后来使用双网卡的时候一直忘了把eth0:0这张虚拟网卡删掉导致了限速配置一直不成功,浪费了大把的青葱。
配置iptables nat
#开启ip_forward
echo "1">/proc/sys/net/ipv4/ip_forward

#清除原来的防火墙规则
iptables -F
iptables -t nat -F
iptables -t mangle -F

#添加nat转发
iptables -t nat -A POSTROUTING -s 172.16.44.0/24 -o eth0 -j MASQUERADE

通过执行上面的代码后,局域网内的电脑就可以上网了。
端口转发
由于我的内网还挂了网站,所以要开启80端口的转发。
iptables -t nat -I PREROUTING -p tcp -d a.b.c.d --dport 80 -j DNAT --to 172.16.44.210:80
iptables -t nat -I POSTROUTING -p tcp -d 172.16.44.210 --dport 80 -j SNAT --to 172.16.44.1

这条命令指定外网地址a.b.c.d的80端口转发到172.16.44.210:80上。由于是双网卡,所以需要做一下回路。
下载限速
下载限速要在eth1上面做,判断数据包的目的地址来做限制。tc包括三部分:队列、类、过滤器。我使用了htb方式去限制速度,也可以使用cbq,但cbq配置比较复杂一点,而且据说性能没htb好。
#删除原来的tc规则队列
tc qdisc del dev eth1 root
#添加tc规则队列
tc qdisc add dev eth1 root handle 10: htb default 256
#生成根类
tc class add dev eth1 parent 10: classid 10:1 htb rate 100mbit ceil 100mbit
#支类列表用于限制速度
#这里的rate指的是保证带宽,ceil是最大带宽。
tc class add dev eth1 parent 10:1 classid 10:10 htb rate 400kbps ceil 400kbps prio 1

#添加支类规则队列
#采用sfq伪随机队列,并且10秒重置一次散列函数。
tc qdisc add dev eth1 parent 10:10 handle 101: sfq perturb 10

#建立网络包过滤器,设置fw。
tc filter add dev eth1 parent 10: protocol ip prio 10 handle 1 fw classid 10:10
#在iptables里面设定mark值,与上面的handle值对应。
iptables -t mangle -A POSTROUTING -d 172.16.44.130 -j MARK --set-mark 1

通过上面的代码就可以限制172.16.44.130这台机子的下载速度到400kbps。
Tip
经过实际测试这里的kbps实际上就是KB/S每秒千字节。另一个单位是kbit,这个才是每秒千比特。这里的172.16.44.130也可以写成一个网段,比如:172.16.44.0/24
上传限速
上传限速的原理其实跟下载的差不多,只不过限制的网卡不同,要在eth0上过滤来源地址去限制。
#删除原来的tc规则队列
tc qdisc del dev eth0 root

#添加tc规则队列
tc qdisc add dev eth0 root handle 20: htb default 256

#生成根类
tc class add dev eth0 parent 20: classid 20:1 htb rate 100mbit ceil 100mbit

#支类列表用于限制速度
tc class add dev eth0 parent 20:1 classid 20:10 htb rate 40kbps ceil 40kbps prio 1

#添加支类规则队列
tc qdisc add dev eth0 parent 20:10 handle 201: sfq perturb 10

#建立网络包过滤器
tc filter add dev eth0 parent 20: protocol ip prio 100 handle 2 fw classid 20:10
iptables -t mangle -A PREROUTING -s 172.16.44.130 -j MARK --set-mark 2

Tip
跟下载不同的是POSTROUTING要改成PREROUTING,-d改成-s。
观察连接数
通过iptables的nat连接可以通过下面的代码查看。至于统计连接数可以写代码实现,也可以利用awk,grep等工具。反正里面的内容就是文本,处理起来也比较简单。
cat /proc/net/ip_conntrack

写在结尾
到此上网、端口转发和流量限制都已经实现。下次再考虑配置个dhcp server和dnsmasq。至于一些路由器其它诸如mac地址绑定,限制上网等用到的时候再去研究研究。

❷ 请教linux中isc-dhcp-server服务启动失败的问题

出现问题的可能有以下几个可能: 1. 配置文件有问题。 1.1 内容不符合语法结构,例如,少个分号; 1.2 声明的子网和子网掩码不符合; 2. 主机IP地址和声明的子网不在同一网段。 3. 主机没有配置IP地

❸ VMware下Linux虚拟机nat方式上网问题,为什么虚拟网卡vmnet8显示无法访问,我是按照步骤配置的

虚拿拦拟网卡是无法连接的你可碧敏游以右键选择电脑-管理进入设备管理器,右键选择主机名,

然后选择添加过时硬件,从里面添加回环网卡,然悔销后在vmware设置里编辑网卡

❹ 局域网Pxe 做系统方法及教程求助

今天我给大家带来的是如何在不同局域网的客户机(client)也能实现系统的自动安装,大家可以来学习下。 一、原理篇 1.先实现全网的互通即能ping通,这样是实现跨局域网实现自动安装系统的基础。 2.在192.168.2.0/24这个局域网中搭建一个dhcp server,之所以在客户端所在的局域网中搭建dhcp server,是因为通过dhcp server可以自动获取ip地址而且还可以指定路由以及指定tftp server。指定路由相当于默认网关这样client就可以和PXE server通信,指定tftp server客户端可以通过tftp协议下载pxelinux.0文件以及内核启动文件等。通过text.cfg文件知道ks.cfg文件的位置,下载并按照ks.cfg文件的步骤安装系统。由ks.cfg文件就知道系统安装文件在192.168.0.105的/var/www/ubuntu目录中,请求安装文件安装之。 二、实战篇 1.实现全网互通 把PXE Server的网关指向192.168.0.111,dhcp server 的网关指向192.168.2.1 在192.168.0.111主机上做路由:#route add default gw 192.168.1.1 在192.168.2.1主机上做路由: #route add default gw 192.168.1.2 在客户端dhcp server 上测一下联通性:(当然ping最简单) 这样全网就互通了。 2.客户端dhcp server的设置: #vim /etc/dhcp3/dhcpd.conf subnet 192.168.2.0 netmask 255.255.255.0 { range 192.168.2.100 192.168.2.200; option domain-name "192.168.2.2"; option domain-name-servers 192.168.2.2; option routers 192.168.2.1; #这是指定客户端网关为:192.168.2.1 default-lease-time 600; max-lease-time 7200; next-server 192.168.0.105; #这里指定tftp server 为192.168.0.105 filename "pxelinux.0"; } 对于客户端来说dhcp server的设置是非常重要的,当然也可以用dhcp 中继、路由这里就不介绍了。 三、测试安装 client 分配的ip是:192.168.2.101 ,网关:192.168.2.1 tftp server :192.168.0.105 这样设置完之后跨局域网自动安装系统就已经完成了。虽说步骤不多,但还是需要用户们认真按步骤执行,才能牢记此方法哦。

❺ Linux下如何安装DHCP服务和使用

DHCP基于客户/服务器模式。当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端供给自动分配IP地址的服务。
当然高等的DHCP,不光只是分配地址这么简单,今天我们的课程只是架设一个普通的DHCP的服务器, client端能获取到上网必须的网络配置信息
安装了DHCP服务软件的服务器称为DHCP服务器,而启用了DHCP功效的客户机称为DHCP客户端,DHCP服务器是以地址租约的方法为DHCP客户端供给服务的,它有以下两种方法:
限定租期 和 永久租用
学DHCP服务器,就一定要知道DHCP服务器的工作原理:
DHCPDISCOVER(DHCP发明)
DHCPOFFER(DHCP供给)
DHCPREQUEST(DHCP请求)
DHCPACK(DHCP确认)
这个4个步骤,是client获取IP地址必经的步骤
DHCP供给的时候,服务器已经给client分配了IP地址,第二部分分给client的IP地址是临时的,client得到这个IP地址后,会发出DHCP请求,请求租用这个地址,服务器收到请求后,就会正式把这个地址分配给client,继而向client发送DHCP确认。
这个四步主要是应对同一网络多个DHCP服务器
后台过程:dhcpd
脚本:/etc/rc.d/init.d/dhcpd
使用端口:67
所需RPM包:dhcp
相关RPM包:
dhcp-devel-3.0.5-7.el5.i386.rpm
dhcpv6-0.10-33.el5.i386.rpm
dhcpv6_client-0.10-33.el5.i386.rpm
配置文件:/etc/dhcpd.conf
日志:/var/log/xferlog
再提示一点吧,网络启动方法也叫bootpc,这样获取的IP地址是不会受服务器的租期111ttt.com的,它永远有效
好了,我们先安装DHCP服务器
一、下载或从光盘上找到DHCP服务安装包。
二、安装(dhcp*代表其安装包名称):
# rpm -ivh dhcp*
三、配置DHCP文件:
复制/usr/share/doc/dhcp*/dhcpd.conf.sample 到/etc目录下,更名为:dhcpd.conf
# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf
当然,也可以先vi /etc/dhcpd.conf,然后在末行模式运行以下命令:
r /usr/share/doc/dhcp*/dhcpd.conf.sample
这样这个dhcpd.conf.sample文件的内容就导进来了。
打开dhcpd.conf,要修改的几个地方:
subnet 后面接的是你所定义的网段,要与本机的IP地址同网段,
每一语句以分号“;”结尾,不要忘记。
例如:我的IP是“192.168.2.11”,下面是我的配置文件:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option domain-name-servers 192.168.2.1;
option time-offset -18000;
range dynamic-bootp 192.168.2.100 192.168.2.254
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
next-server 192.168.2.11;
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
四、详细注解:
ddns-update-style interim; #定义所支持的DNS动态更新类型(必选),一般我们设置成关闭,
#interim和none都是关闭的意思
allow/ignore client-updates; #允许/疏忽客户机更新DNS记载
allow/deny unknown-clients; #是否动态分配IP给未知的使用者
allow/deny bootp; #是否响应激活查询
allow/deny booting; #是否响应使用者查询
subnet 192.168.2.0 netmask 255.255.255.0 { #设置子网声明
# --- default gateway
option routers 192.168.2.1; #设置缺省网关为192.168.2.1
option subnet-mask 255.255.255.0; #设置客户端的子网掩码
option nis-domain "domain.org"; #为客户设置NIS域
option domain-name "domain.org"; #为客户设置域名
option domain-name-servers 192.168.2.1; #为客户设置域名服务器
option time-offset -18000; # Eastern Standard Time #为客户端指定格林威治时间偏移时间,单位秒,
# 该选项可以在全局配置、局部配置均可使用
# option ntp-servers 192.168.2.1; #NTP是时间服务器
# option netbios-name-servers 192.168.2.1; 设置wins服务器
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2; #设置netbios节点类型 我不清楚这个netbios节点是什么东西
range dynamic-bootp 192.168.2.28 192.168.2.254; #设置动态的地址池
default-lease-time 21600; #设置缺省的地址租期
max-lease-time 43200; #设置客户端最长的地址租期
# we want the nameserver to appear at a fixed address
filename "/pxelinux.0"; #开始启动文件的名称,应用于无盘安装,可以是tftp的相对或绝对路径
next-server 192.168.2.11; #This is the name of the server they should get it from
#tftp服务器,可以和dhcp服务器不在同一机器上,一般是PXE网络使用此参数
#设置主机声明
host ns {
next-server marvin.redhat.com; #设置由于定义服务器从引导文件中装入的主机名,用于无盘站
hardware ethernet 12:34:56:78:AB:CD; #指定dhcp客户的mac地址
fixed-address 207.175.42.254; #给指定的mac地址分配ip
}
}
五、配置好dhcpd.conf文件后就可以启动dhcp服务了:
# service dhcpd restart
这时可以用“netstat -nlutp”命令查看dhcp服务是否有启动。
六、其它相关文件:
1、这个文件/var/lib/dhcpd/dhcpd.leases,可以看到被租出去的IP地址和相关信息。
2、这个文件/etc/sysconfig/dhcpd是指定DHCP服务器111ttt.com的网卡,如果只有一个网卡,一般不用设置
DHCPDARGS=eth0 或者是eth1 ,如果全部111ttt.com就不用管。
3、这个文件/etc/sysconfig/dhcrelay就是设置DHCP中继的文件,大家打开瞧一下吧。
interfaces 就是来自这个端口的dhcpdiscover(请求)都会转发到后面的DHCPSERVERS服务器。
设置了DHCP中继,需要启动中继服务:service dhcrelay start
七、在linux客户机下面,你可以手动配置你的dhcp:
观察你的网络配置文件,如果你没有设置为自动启动联网,则要修改你的网络配置文件。
# vi /etc/sysconfig/network
添加“NETWORKING=yes”(让引导的时候启动联网)
或者使用
# @echo “NETWORKING=yes”> /etc/sysconfig/network
然后再修改你的网卡配置文件
/etc/sysconfig/network-scriptes/ifcfg-eth0 文件应该包括这几行:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

❻ 如何在Debian Linux上安装配置ISC DHCP服务器

工具/原料

一台Linux主机或虚拟机(这里CentOS 6.5为例)
编译源码或软件源方式安装dhcp软件
方法/步骤

首先我们先了解下 DHCP,DHCP采用客户端/服务器的工作模式,由客户端向服务器发出获取IP地址的请求,服务器接收到请求后会把网络配置信息发送给客户端,实现IP地址的动态分配。DHCP提供三种地址分配策略:
1:手工分配 在服务器上指定为哪些主机分配固定的IP,也就是说这些主机永远获取的都是给它们设置好的IP。
2:自动分配 地址分配给客户机后,这个地址就永远给了客户机。这样客户机不在线也不会回收IP,会造成浪费,不同于手工分配。
3:动态分配 也是用的最多的策略了,它将IP地址分配出去后会有个租约,等租约时间到了,就会回收IP,如果主机还在线,在租约时间快到时,会向DHCP服务器发送续约请求,以便继续使用。
以上手工分配适合于打印机、其他提供web服务、ftp服务的主机等,因为它们需要一个固定的IP地址。动态分配能有效解决IP地址不够用的问题,租约到期后被回收的IP地址会重新给新请求的客户端使用。
DHCP的安装可以通过从软件源直接安装或自己编译安装。编译安装的话下载地址在:https://www.isc.org/downloads/
这里选择编译安装DHCP,下图为DHCP源码包的官方下载页面,我们选择最新版dhcp-4.3.1.tar.gz

首先我们先解压源码包
# tar xf dhcp-4.3.1.tar.gz
指定安装目录和配置文件目录
# cd dhcp-4.3.1
# ./configure --prefix=/usr/local/dhcp --sysconfdir=/etc
配置过程非常快,等配置完了可以echo $?确定下是否成功
接着就可以编译安装了,请耐心等待编译完成
# make && make install
如果采用软件源安装的话直接 " yum install dhcp "即可,不过版本会比较旧

接着将配置文件复制过去,在安装目录的 server 目录中
# cp server/dhcpd.conf.example /etc/dhcpd.conf
生产地址池文件,用于记录已经分配出去的IP地址
# touch /var/db/dhcpd.leases
接着修改配置文件,在最后添加提供服务的网段
subnet 10.0.0.0 netmask 255.0.0.0
{
range 10.0.0.50 10.0.0.100;
}
我这里为10.0.0.0网段提供服务,range定义了地址池,记得修改成适合你们的,然后就可以试着启动服务了。
# /usr/local/dhcp/sbin/dhcpd
如果是以软件源方式安装的dhcp软件,直接 service dhcpd start
我们可以用" killall dhcpd "来结束服务

服务启动后可以用 " ps aux | grep dhcpd "查看下启动的进程,DHCP服务监听 udp 67 端口,客户端以广播的方式请求IP地址,整个局域网内,没开启DHCP服务的主机就忽视掉了请求,DHCP服务器就会响应这个请求,如果同时有多个DHCP服务器在工作肯定看哪个响应的快喽!
接下来再启动台主机试试效果把,我又启动了一台XP,让其自动获取IP地址,看 是不是获取了地址池中第一个IP "10.0.0.50"呢

接下来看下dhcpd的配置文件 " /etc/dhcpd.conf "
dhcpd.conf中由声明、注释、参数、选项四大类语句构成
注释就是"#"开头的注释信息。声明定义网络布局,刚才的subnet就属于声明。参数是定义dhcpd服务的各种网络参数,如租约的时间、主机名等。选项是以option作为开始,为客户机指定主机名、广播地址、子网掩码等
声明:
include "filename" 将指定的文件内容添加到配置文件中
shared-network 名称 {
【参数】
【声明】
} 指定共享相同网络的子网
subnet 网段 netmask 子网掩码 {
【参数】
【声明】
} 定义哪些IP分配给客户,一般与range结合使用
range 起始地址 终止地址; 定义IP范围,终止地址可以没有
host 主机名 {
【参数】
【声明】
} 定义保留地址
group {
【参数】
【声明】
} 为一组参数提供声明
参数:
ddns-hostname 名称 指定使用的主机名,不设置默认当前主机名
ddns-domainname 名称 指定域名
ddns-update-style 参数 指定DNS的更新模式 { ad-hoc | interim | none }
default-lease-time 时间 默认租约时间(单位秒)
max-lease-time 时间 最大租约时间
server-name 名称 告诉客户端服务器的名称
hardware 接口类型 硬件地址 指定客户机硬件接口类型和mac地址
fixed-address IP地址 【,IP地址】 为客户端提供一个或多个IP地址,该参数只能出现在host声明中
选项: 前面需加option
broadcast-address 广播地址 指定客户端广播地址
domain-name 域名 指定客户端域名
domain-name-servers 地址 指定客户端的DNS服务器
host-name 主机名 指定客户端主机名
ntp-server 地址 指定时间服务器地址
routers 地址 指定默认网关IP
subnet-mask 子网掩码 指定客户端子网掩码
比如我们为10.0.0.0网段提供服务,DNS服务器为8.8.8.8,网关为10.0.0.254,子网掩码为255.0.0.0,默认租约时间6小时.
subnet 10.0.0.0 netmask 255.0.0.0
{
range 10.0.0.50 10.0.0.100;
option subnet-mask 255.0.0.0;
option routers 10.0.0.254;
option domain-name-servers 8.8.8.8;
default-lease-time 21600;
}
看看是不是网关和DNS也被自动获取了呢。注意都要以分号结束哦

现在再试试为其配置指定的IP地址,我们先把要指定主机的网卡mac地址记下来,然后给他配置10.10.10.10这个IP
subnet 10.0.0.0 netmask 255.0.0.0
{
range 10.0.0.50 10.0.0.100;
option subnet-mask 255.0.0.0;
option routers 10.0.0.254;
option domain-name-servers 8.8.8.8;
server-name mydhcp;
default-lease-time 21600;
host winXP {
hardware ethernet 00:0C:29:6E:4B:A1;
fixed-address 10.10.10.10;
}
}
这回使用了 ipconfig -all 显示的更详细了,这里连服务器的地址也列出来了,也可以使用这个参数查看网卡的mac地址

11
演示用的是Windows主机,如果是Linux主机需要修改网卡的配置文件,设置"BOOTPROTO=dhcp",然后可以通过 dhclient eth0 来给eth0这块网卡获取IP地址。

阅读全文

与linuxdhcpserver相关的资料

热点内容
kalilinux系统安装 浏览:71
绿色生活app是什么 浏览:674
枪火重生文件夹 浏览:183
程序员智商划分 浏览:332
修炼一套好算法 浏览:294
空气净化pdf 浏览:309
necc文件夹 浏览:16
linux跑火车 浏览:355
androidsdk版本兼容 浏览:1002
果加密码锁开锁记录 浏览:446
python导入模块的形式 浏览:259
shor算法 浏览:58
python交易日历 浏览:47
怎样用云服务器组网 浏览:294
cass垂直执行命令 浏览:211
安卓数据线长什么样子教学视频 浏览:794
红米安卓12系统怎么升级 浏览:917
菜鸟裹裹加密包裹啥样的 浏览:374
时差测量与无源定位算法 浏览:946
学习通app如何调二倍速 浏览:873