將Centons伺服器變成路由器

Sun@Python發表於2020-12-03

最近專案需要測試音視訊弱網傳輸,使用linux 核心TC命令進行網路限制(丟包、亂序、延時、重複幀、包損)。
Linux作業系統中的流量控制器TC(Traffic Control)用於Linux核心的流量控制,主要是通過在輸出埠處建立一個佇列來實現流量控制。
下面主要記錄一下使用指令碼進行環境搭建:
1、先給伺服器配置雙網路卡並配置好IP地址(這一步很重要,後續步驟都需要使用配置的ip地址),並修改改網路卡名稱:Wan口為eth0,Lan口為eth1
網路示意圖
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連線任意裝置可以上網說明配置成功。

相關文章