Debian系統_主板四個網口1個配置為WAN,3個配置為LAN
一、重新配置網口
1、查看當前網口的狀態
ifconfig
或者
ip link show
或者
ls /sys/class/net
2、修改網絡配置文件
sudo vi /etc/network/interfaces
注意WAN口的網關地址如果是192.168.3.1的話,LAN口的eth2就不要設置為192.168.3.1
# WAN口
auto eth3
iface eth3 inet dhcp# LAN口
auto eth0
iface eth0 inet staticaddress 192.168.2.1netmask 255.255.255.0auto eth1
iface eth1 inet staticaddress 192.168.1.1netmask 255.255.255.0auto eth2
iface eth2 inet staticaddress 192.168.3.1netmask 255.255.255.0
3、重啟網絡服務
sudo systemctl restart networking
或單獨重啟接口
sudo ifdown eth1 && sudo ifup eth1
二、配置DHCP服務
1、安裝DHCP服務器
sudo apt update
sudo apt install isc-dhcp-server
2、編輯主配置文件
sudo vi /etc/dhcp/dhcpd.conf
# 關鍵配置:聲明此服務器為權威DHCP服務器(必須!)
authoritative;# 全局配置
option domain-name "example.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;subnet 192.168.1.0 netmask 255.255.255.0 {range 192.168.1.100 192.168.1.200; # DHCP分配的IP范圍option routers 192.168.1.1; # 網關地址(通常是路由器或本機IP)option broadcast-address 192.168.1.255; # 廣播地址
}
subnet 192.168.2.0 netmask 255.255.255.0 {range 192.168.2.100 192.168.2.200; # DHCP分配的IP范圍option routers 192.168.2.1; # 網關地址(通常是路由器或本機IP)option broadcast-address 192.168.2.255; # 廣播地址
}
subnet 192.168.3.0 netmask 255.255.255.0 {range 192.168.3.100 192.168.3.200; # DHCP分配的IP范圍option routers 192.168.3.1; # 網關地址(通常是路由器或本機IP)option broadcast-address 192.168.3.255; # 廣播地址
}
3、檢查配置文件語法
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
4、指定監聽的接口
sudo vi /etc/default/isc-dhcp-server
INTERFACESv4="eth1 eth0 eth2"
cat /etc/default/isc-dhcp-server
5、重啟DHCP服務
//重啟DHCP服務
sudo systemctl restart isc-dhcp-server
//開機自啟
sudo systemctl enable isc-dhcp-server
// 檢查服務是否運行
sudo systemctl status isc-dhcp-server
//查看日志(排查錯誤)
journalctl -u isc-dhcp-server
//強制重新加載配置
sudo systemctl daemon-reload
//手動啟動 DHCP 服務
sudo dhcpd -4 -d -cf /etc/dhcp/dhcpd.conf eth1
6、 允許防火墻通過DHCP流量
sudo iptables -A INPUT -i eth0 -p udp --dport 67 -j ACCEPT
sudo iptables -A INPUT -i eth0 -p udp --dport 68 -j ACCEPT
sudo iptables -A INPUT -i eth1 -p udp --dport 67 -j ACCEPT
sudo iptables -A INPUT -i eth1 -p udp --dport 68 -j ACCEPT
sudo iptables -A INPUT -i eth2 -p udp --dport 67 -j ACCEPT
sudo iptables -A INPUT -i eth2 -p udp --dport 68 -j ACCEPT
7、排查端口沖突
sudo netstat -tulnp | grep :67
8、直接查看具體錯誤原因(上述完成后不行)
sudo journalctl -u isc-dhcp-server.service -b --no-pager | grep -i error
三、配置NAT
1、啟用IP轉發
sudo vi /etc/sysctl.conf
//取消注釋或添加以下行
net.ipv4.ip_forward=1
//立即生效
sudo sysctl -p
2、配置NAT(網絡地址轉換)將LAN流量通過WAN口轉發
//清空現有規則
sudo iptables -F
sudo iptables -t nat -F
sudo iptables -X
//添加NAT規則
//WAN口:eth3
//LAN口:eth0 eth1 eth2
sudo iptables -t nat -A POSTROUTING -o eth3 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth3 -j ACCEPT
sudo iptables -A FORWARD -i eth3 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth3 -j ACCEPT
sudo iptables -A FORWARD -i eth3 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth2 -o eth3 -j ACCEPT
sudo iptables -A FORWARD -i eth3 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
//保存規則(避免重啟失效)
sudo apt install iptables-persistent -y
//保存規則:
sudo iptables-save > /etc/iptables/rules.v4
3、檢查NAT規則
sudo iptables -t nat -L -n -v
4、檢查 NAT 流量計數
watch -n 1 sudo iptables -t nat -L -n -v
5、在開發板上監聽 eth1 接口的流量
sudo tcpdump -i eth1 icmp
四、驗證網絡通路
1、開發板自身訪問外網
//替換 eth3 為WAN口
ping -I eth3 8.8.8.8
2、設備接入LAN可以自動獲取IP地址(192.168.1.101)
ifconfig
或者
ipconfig
3、設備去ping網關地址
//驗證客戶端訪問網關(開發板LAN口)
ping 192.168.1.1
3、設備去ping 8.8.8.8
//驗證客戶端訪問外網IP
ping 8.8.8.8
4、設備去ping www.baidu.com
//驗證客戶端訪問域名
ping www.baidu.com