溫馨提示×

Linux DHCP與NAT:如何在家庭網絡中配置

小樊
45
2025-08-07 01:58:59
欄目: 智能運維

以下是在家庭網絡中配置Linux DHCP與NAT的步驟,假設使用雙網卡(eth0連接外網,eth1連接內網):

一、配置DHCP服務(自動分配IP)

1. 安裝軟件包

  • Debian/Ubuntu
    sudo apt update && sudo apt install isc-dhcp-server
  • CentOS/RHEL
    sudo yum install dhcp

2. 配置DHCP參數

編輯配置文件 /etc/dhcp/dhcpd.conf,添加以下內容:

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;  # IP地址池
  option routers 192.168.1.1;         # 網關(Linux內網IP)
  option domain-name-servers 8.8.8.8, 8.8.4.4;  # DNS服務器
}
  • 說明range定義分配的IP范圍,routers指向Linux的LAN口IP,需與內網接口IP一致。

3. 指定監聽接口

編輯 /etc/default/isc-dhcp-server(Debian/Ubuntu)或 /etc/sysconfig/dhcpd(CentOS/RHEL),設置:

INTERFACESv4="eth1"  # 僅監聽內網接口

4. 啟動服務

sudo systemctl start isc-dhcp-server  # Debian/Ubuntu
sudo systemctl start dhcpd          # CentOS/RHEL
sudo systemctl enable isc-dhcp-server # 開機自啟

二、配置NAT(共享外網)

1. 啟用IP轉發

編輯 /etc/sysctl.conf,取消注釋或添加:

net.ipv4.ip_forward=1

生效配置:

sudo sysctl -p

2. 配置iptables規則

  • SNAT(源地址轉換,用于外網訪問)
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    (將內網IP轉換為Linux外網IP)
  • FORWARD鏈放行流量
    sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT  # 允許內網到外網
    sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT  # 允許已建立的連接返回
    

3. 保存規則(防止重啟丟失)

  • Debian/Ubuntu
    sudo iptables-save > /etc/iptables/rules.v4
  • CentOS/RHEL
    sudo service iptables saveiptables-save > /etc/sysconfig/iptables

三、驗證配置

  1. 檢查DHCP服務
    • 在客戶端設備(如手機、電腦)設置“自動獲取IP”,連接內網后,通過 ipconfig(Windows)或 ifconfig(Linux/macOS)查看是否獲取到IP(應在192.168.1.100-200范圍內),且網關為192.168.1.1。
  2. 測試外網訪問
    • 在客戶端執行 ping 8.8.8.8 或訪問網頁,確認可正常訪問互聯網。
  3. 查看NAT規則
    sudo iptables -t nat -L -n -v,確認POSTROUTING鏈中有MASQUERADE規則。

注意事項

  • 接口名稱:若使用無線網卡,需將eth0/eth1替換為實際接口名(如wlan0),可通過 ip addr 查看。
  • 防火墻:若啟用ufwfirewalld,需額外放行DHCP(UDP 67/68)和NAT規則。
  • 多網卡場景:若外網為PPPoE撥號,需在eth0配置PPPoE客戶端(如pppoeconf),并調整NAT規則的目標接口為撥號接口。

參考來源:[1,2,3,5,6,7,8,9,10,13,15]

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女