在Debian系統(tǒng)中,通過合理的配置和優(yōu)化工具,可以提高網(wǎng)絡(luò)的穩(wěn)定性和傳輸速度,提升用戶體驗。本教程將介紹一些常用的Debian網(wǎng)絡(luò)優(yōu)化工具,包括最佳MTU設(shè)置、WAN TCP優(yōu)化以及Netfilter網(wǎng)絡(luò)過濾框架等方面。
網(wǎng)絡(luò)優(yōu)化工具列表:
軟件包 | 流行度 | 大小 | 說明 |
---|---|---|---|
iftop |
V:7, I:102 | 93 | 顯示一個網(wǎng)絡(luò)接口上的帶寬使用信息 |
iperf |
V:3, I:44 | 360 | 互聯(lián)網(wǎng)協(xié)議帶寬測量工具 |
ifstat |
V:0, I:7 | 59 | 接口統(tǒng)計監(jiān)控 |
bmon |
V:1, I:17 | 144 | 便攜式帶寬監(jiān)視器和網(wǎng)速估計工具 |
ethstatus |
V:0, I:3 | 40 | 快速測量網(wǎng)絡(luò)設(shè)備吞吐的腳本 |
bing |
V:0, I:0 | 80 | 實驗性的隨機帶寬測試器 |
bwm-ng |
V:1, I:14 | 95 | 小巧簡單的控制臺帶寬監(jiān)測器 |
ethstats |
V:0, I:0 | 23 | 基于控制臺的以太網(wǎng)統(tǒng)計監(jiān)視器 |
ipfm |
V:0, I:0 | 82 | 帶寬分析工具 |
一、 最佳MTU
在網(wǎng)絡(luò)管理中,通常可以依賴網(wǎng)絡(luò)管理器自動設(shè)置最佳最大傳輸單元(MTU)。然而,在某些特定場景下,我們可能需要手動調(diào)整MTU。MTU是指數(shù)據(jù)包在沒有IP分片的情況下能夠攜帶的最大字節(jié)數(shù),對于IPv4來說,這個值還需要加上28字節(jié),而對于IPv6來說,需要加上48字節(jié)。
例如,通過使用ping命令并添加”-M do”選項來發(fā)送不同大小的ICMP數(shù)據(jù)包進行實驗后,你可能會發(fā)現(xiàn)IPv4連接的MTU為1460字節(jié),而IPv6連接的MTU為1500字節(jié)。
$?ping?-4?-c?1?-s?$((1500-28))?-M?do?www.debian.org PING??(149.20.4.15)?1472(1500)?bytes?of?data. ping:?local?error:?message?too?long,?mtu=1460 ---??ping?statistics?--- 1?packets?transmitted,?0?received,?+1?errors,?100%?packet?loss,?time?0ms $?ping?-4?-c?1?-s?$((1460-28))?-M?do?www.debian.org PING??(130.89.148.77)?1432(1460)?bytes?of?data. 1440?bytes?from?klecker-misc.debian.org?(130.89.148.77):?icmp_seq=1?ttl=50?time=325?ms ---??ping?statistics?--- 1?packets?transmitted,?1?received,?0%?packet?loss,?time?0ms rtt?min/avg/max/mdev?=?325.318/325.318/325.318/0.000?ms $?ping?-6?-c?1?-s?$((1500-48))?-M?do?www.debian.org PING?www.debian.org(mirror-csail.debian.org?(2603:400a:ffff:bb8::801f:3e))?1452?data?bytes 1460?bytes?from?mirror-csail.debian.org?(2603:400a:ffff:bb8::801f:3e):?icmp_seq=1?ttl=47?time=191?ms ---?www.debian.org?ping?statistics?--- 1?packets?transmitted,?1?received,?0%?packet?loss,?time?0ms
最佳 MTU 值的基本指引方法:
網(wǎng)絡(luò)環(huán)境 | MTU | 基本原理 |
---|---|---|
撥號連接(IP: PPP) | 576 | 標準的 |
以太網(wǎng)連接 (IP: DHCP 或固定) | 1500 | 默認標準值 |
除了這些基本的指引方法外,還具有以下方法:
使用任何隧道方式的最佳 MTU 需要進一步減去它們上面的頭部;
MTU 值不應(yīng)當超過通過實驗驗證的 PMTU 值;
當遇到其它限制的時候,較大的 MTU 值通常比較好。
最大分片大小 (MSS) 是另外一種衡量包大小的方法。MSS 和 MTU 的關(guān)系如下.
對于 IPv4, MSS = MTU – 40
對于 IPv6,MSS = MTU – 60
二、WAN TCP優(yōu)化
通過調(diào)整 TCP 緩沖區(qū)大小參數(shù),可以最大限度地提高 TCP 吞吐量,如現(xiàn)代高帶寬和高延遲廣域網(wǎng)的 “TCP 調(diào)整”。到目前為止,Debian 目前的默認設(shè)置即使在我的局域網(wǎng)內(nèi)使用快速的 1G bps FTTP 服務(wù)時也能很好地運行。
三、Netfilter網(wǎng)絡(luò)過濾框架
Netfilter 使用 Linux 內(nèi)核模塊提供狀態(tài)防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 框架。
防火墻工具列表:
軟件包 | 流行度 | 大小 | 說明 |
---|---|---|---|
iptables |
V:315, I:740 | 2414 | netfilter?管理工具(iptables (8) 用于 IPv4,?ip6tables (8) 用于 IPv6) |
arptables |
V:0, I:1 | 100 | netfilter?管理工具(arptables (8) 用于 ARP) |
ebtables |
V:14, I:29 | 264 | netfilter?管理工具 (ebtables (8) 用于以太網(wǎng)橋) |
iptstate |
V:0, I:2 | 119 | 持續(xù)性監(jiān)控?netfilter?狀態(tài) (和?top (1) 相似) |
ufw |
V:53, I:75 | 857 | Uncomplicated Firewall (UFW)?is a program for managing a netfilter firewall |
gufw |
V:5, I:10 | 3660 | graphical user interface for?Uncomplicated Firewall (UFW) |
firewalld |
V:9, I:14 | 2496 | firewalld?is a dynamically managed firewall program with support for network zones |
firewall-config |
V:0, I:2 | 1164 | graphical user interface for?firewalld |
shorewall-init |
V:0, I:0 | 88 | Shoreline 防火墻?初始化 |
shorewall |
V:3, I:8 | 3090 | Shoreline 防火墻,?netfilter?配置文件生成器 |
shorewall-lite |
V:0, I:0 | 71 | Shoreline 防火墻,?netfilter?配置文件生成器 (精簡版) |
shorewall6 |
V:0, I:1 | 1334 | Shoreline 防火墻,?netfilter?配置文件生成器(IPv6 版本) |
shorewall6-lite |
V:0, I:0 | 71 | Shoreline 防火墻,?netfilter?配置文件生成器 (IPv6,精簡版) |
netfilter 主要的用戶層程序是 iptables(8).你能從 shell 手工交付式的配置 netfilter,使用 iptables-save(8) 保存當前狀態(tài),當系統(tǒng)重啟時,通過 init 腳本調(diào)用 iptables-restore(8) 來恢復(fù)。