欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将Centons服务器变成路由器

程序员文章站 2024-02-11 13:57:40
...

最近项目需要测试音视频弱网传输,使用linux 内核TC命令进行网络限制(丢包、乱序、延时、重复帧、包损)。
Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。
下面主要记录一下使用脚本进行环境搭建:
1、先给服务器配置双网卡并配置好IP地址(这一步很重要,后续步骤都需要使用配置的ip地址),并修改改网卡名称:Wan口为eth0,Lan口为eth1
将Centons服务器变成路由器
1、先安装DHCP服务,yum -y install dhcp
2、配置DHCP服务:
vi /etc/dhcp/dhcp.conf

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.2 192.168.10.253; #地址池范围
option broadcast-address 192.168.1.255; #广播地址
option routers 192.168.1.100; #默认网关(一定要配置成Lan口IP)
option domain-name-servers 114.114.114.114, 8.8.8.8; #运营商DNS服务器
option netbios-name-servers 192.168.1.1; #WINS服务器
option domain-name lan; #搜索域
default-lease-time 86400; #默认租约时间,单位为秒
max-lease-time 86400; #最长租约时间,单位为秒
}

3、其余步骤使用下面sh脚本进行自动配置

#!/bin/bash

echo "使用前需要先配置电脑Wan口和Lan口的IP,主要Lan口的IP配置,同时修改配置文件的IP地址"
#echo 停止firewalld服务
systemctl stop firewalld
#echo 禁止firewalld服务自启动
systemctl disable firewalld
#echo 安装iptables防火墙和DHCP服务器
yum -y install iptables-services
iptables -F
#echo 清空nat表
iptables -t nat -F
#echo 默认禁止所有传入连接修改为接收
iptables -P INPUT ACCEPT
#echo 默认允许所有传出连接
iptables -P OUTPUT ACCEPT
#echo 默认允许路由转发(特别注意!!!)
iptables -P FORWARD ACCEPT
#echo 4、打开系统的IP转发功能,永久性的
sed -i '$a net.ipv4.ip_forward = 1' /etc/sysctl.conf 
#echo 立即更改生效:
sysctl -p /etc/sysctl.conf
#echo 允许DHCP传入连接,指定Lan口的ip有DHCP服务自动分配
iptables -A INPUT -i eth1 -p udp --dport 67:68 -j ACCEPT
#echo 配置iptables的NAT转发(重点)意思:接收Lan口指定网段的所有数据
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
#echo 开启源NAT功能即将来自内网主机的IP转换为外网IP,将Lan口接收到数据转发到Wan口
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 192.168.2.100
echo "==========================配置完成了================================"
#echo 保存iptables配置
iptables-save > /etc/sysconfig/iptables
#echo 启动iptables
systemctl start iptables
#echo 开机自动启动iptables
systemctl enable iptables
#echo 启动dhcpd
systemctl start dhcpd
#echo 开机自动启动dhcpd
systemctl enable dhcpd

!:配置中的ip需要根据网络实际配置进行修改,否则会失败!

4、配置完成后测试,如果在服务器Lan连接任意设备可以上网说明配置成功。

相关标签: linux基础