CONFIG_NET=y:啟用網路子系統。CONFIG_INET=y:啟用 IPv4 (TCP/IP) 協議族。| 選項 | 功能 | 建議 |
|---|---|---|
| CONFIG_IP_MULTICAST | IP 多播支援 | Y (路由器/串流需求) |
| CONFIG_IP_ADVANCED_ROUTER | 進階路由 (策略路由、多表) | Y (閘道/防火牆) |
| CONFIG_IP_FIREWALL | IP 防火牆 (ipchains/iptables 基礎) | Y |
| CONFIG_IP_FIREWALL_VERBOSE | 防火牆日誌記錄 | Y |
| CONFIG_IP_MASQUERADE | NAT/IP 偽裝 (網際網路共享) | Y (閘道) |
| CONFIG_IP_TRANSPARENT_PROXY | 透明代理支援 | M (Squid 等) |
| CONFIG_IP_ALWAYS_DEFRAG | 封包重組 (防火牆/IDS 前置) | Y (防火牆) |
CONFIG_SYN_COOKIES:防禦 SYN Flood,**強烈建議 Y**。CONFIG_RARP:逆向位址解析 (無盤啟動用)。CONFIG_IP_PNP:DHCP/BOOTP/RARP 核心層自動配置 (嵌入式/無盤)。CONFIG_NET_SB1000:偽裝裝置驅動 (單機/ SLIP 用戶端保持 IP 用)。現代核心 (2.6+) 幾乎所有驅動均可編譯為模組 (=M),透過 modprobe 動態載入,/etc/modules-load.d/ 設定開機自動載入。
| 介面名 | 裝置類型 | 說明 |
|---|---|---|
| lo | Loopback | 本地回環,127.0.0.1,永遠存在 |
| eth0, eth1… | 乙太網 | PCI/USB 乙太網卡,依探測順序編號 |
| wlan0, wlp3s0 | 無線網卡 | 新核心採用可預測命名 (系統拓撲) |
| ppp0, ppp1… | PPP 撥號 | 撥號/ADSL/VPN 連線動態建立 |
| sl0, sl1… | SLIP | 串列線路 IP,已罕用 |
| plip0, plip1… | PLIP | 並行埠 IP,對應 lp0, lp1 |
| dummy0 | 虛擬介面 | 測試/保持 IP 用 |
8139too/r8169e100/e1000e/igb/ixgbetg3usbnet 子系統 + 晶片驅動查看驅動: ethtool -i eth0、lspci -k、dmesg | grep -i eth。
核心啟動自動探測 (autoprobe) 僅偵測**第一張** 同類網卡。多網卡需透過核心參數或模組參數指定:
# GRUB_CMDLINE_LINUX 追加 (舊式 ISA/PCI 無即插即用卡)
ether=0,0x300,eth1 # IRQ=自動, I/O=0x300, 命名 eth1
reserve=0x300,32 # 保留 I/O 區域防誤探測
# 模組參數 (modprobe.conf / modprobe.d/*.conf)
options e1000e InterruptThrottleRate=3,3 # 多張 Intel 卡調整中斷節流
現代系統使用 systemd-networkd / NetworkManager 透過 MAC 地址 (MACAddress=) 或裝置路徑 (Path=) 穩定命名,無需核心參數。
CONFIG_PLIP=y/m。plip0 對應 lp0,plip1 對應 lp1 (最多 3 個)。drivers/net/plip.c 重編核心。# 主機 A
ifconfig plip0 192.168.10.1 pointopoint 192.168.10.2 up
route add default gw 192.168.10.2 # 若作為閘道
# 主機 B
ifconfig plip0 192.168.10.2 pointopoint 192.168.10.1 up
route add default gw 192.168.10.1
現代系統使用 ip link set plip0 up、ip addr add ...、ip route add ...。
CONFIG_SLIP=y/m, CONFIG_SLIP_COMPRESSED=y (CSLIP/VJ 壓縮)。slattach -p slip -s 38400 /dev/ttyS0 & → 建立 sl0。ifconfig sl0 192.168.1.1 pointopoint 192.168.1.2 up。CONFIG_PPP=y/m, CONFIG_PPP_ASYNC=y (序列埠), CONFIG_PPP_SYNC_TTY=y (ISDN), CONFIG_PPP_DEFLATE/BSDCOMP/MPPE (壓縮/加密)。pppd 守護程式 + chat 撥號腳本,或 pppoeconf (PPPoE)。/etc/ppp/options, /etc/ppp/peers/provider, /etc/ppp/chap-secrets (PAP/CHAP 認證)。ppp0 介面,取得 IP、DNS、預設路由。tail -f /var/log/syslog 觀察 pppd/chat 日誌。LCP ConfReq timeout → 序列埠/調制解調器/纜線/速率問題。PAP/CHAP authentication failed → 帳號密碼錯誤或 chap-secrets 格式錯誤。mtu 1492 (PPPoE) 或啟用 mru 協商。| 傳統指令 | 現代 iproute2 指令 | 說明 |
|---|---|---|
| ifconfig eth0 192.168.1.5/24 up | ip addr add 192.168.1.5/24 dev eth0; ip link set eth0 up | 設定 IP/啟用 |
| route add default gw 192.168.1.1 | ip route add default via 192.168.1.1 | 預設路由 |
| netstat -an | ss -an | Socket 狀態 |
| arp -n | ip neigh show | ARP 快取 |
# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0
[Network]
DHCP=yes
# 或靜態
# Address=192.168.1.5/24
# Gateway=192.168.1.1
# DNS=192.168.1.1
# /etc/systemd/network/25-ppp0.network
[Match]
Name=ppp0
[Network]
DHCP=no
# pppd 會自動協商 IP,通常無需額外設定
啟用:systemctl enable --now systemd-networkd。
Linux 網路硬體配置已從手工核心參數、ifconfig/route 時代,演進為模組化驅動、可預測介面命名、聲明式網路管理 (systemd-networkd/NetworkManager/netplan) 的現代化流程。理解核心選項、驅動綁定、介面邏輯與協議協商細節,仍是排除疑難雜症與調校效能的基石。