在Debian系統(tǒng)中,通過(guò)合理的配置和優(yōu)化工具,可以提高網(wǎng)絡(luò)的穩(wěn)定性和傳輸速度,提升用戶體驗(yàn)。本教程將介紹一些常用的Debian網(wǎng)絡(luò)優(yōu)化工具,包括最佳MTU設(shè)置、WAN TCP優(yōu)化以及Netfilter網(wǎng)絡(luò)過(guò)濾框架等方面。
網(wǎng)絡(luò)優(yōu)化工具列表:
軟件包 | 流行度 | 大小 | 說(shuō)明 |
---|---|---|---|
iftop |
V:7, I:102 | 93 | 顯示一個(gè)網(wǎng)絡(luò)接口上的帶寬使用信息 |
iperf |
V:3, I:44 | 360 | 互聯(lián)網(wǎng)協(xié)議帶寬測(cè)量工具 |
ifstat |
V:0, I:7 | 59 | 接口統(tǒng)計(jì)監(jiān)控 |
bmon |
V:1, I:17 | 144 | 便攜式帶寬監(jiān)視器和網(wǎng)速估計(jì)工具 |
ethstatus |
V:0, I:3 | 40 | 快速測(cè)量網(wǎng)絡(luò)設(shè)備吞吐的腳本 |
bing |
V:0, I:0 | 80 | 實(shí)驗(yàn)性的隨機(jī)帶寬測(cè)試器 |
bwm-ng |
V:1, I:14 | 95 | 小巧簡(jiǎn)單的控制臺(tái)帶寬監(jiān)測(cè)器 |
ethstats |
V:0, I:0 | 23 | 基于控制臺(tái)的以太網(wǎng)統(tǒng)計(jì)監(jiān)視器 |
ipfm |
V:0, I:0 | 82 | 帶寬分析工具 |
一、 最佳MTU
在網(wǎng)絡(luò)管理中,通??梢砸蕾嚲W(wǎng)絡(luò)管理器自動(dòng)設(shè)置最佳最大傳輸單元(MTU)。然而,在某些特定場(chǎng)景下,我們可能需要手動(dòng)調(diào)整MTU。MTU是指數(shù)據(jù)包在沒(méi)有IP分片的情況下能夠攜帶的最大字節(jié)數(shù),對(duì)于IPv4來(lái)說(shuō),這個(gè)值還需要加上28字節(jié),而對(duì)于IPv6來(lái)說(shuō),需要加上48字節(jié)。
例如,通過(guò)使用ping命令并添加”-M do”選項(xiàng)來(lái)發(fā)送不同大小的ICMP數(shù)據(jù)包進(jìn)行實(shí)驗(yàn)后,你可能會(huì)發(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 | 基本原理 |
---|---|---|
撥號(hào)連接(IP: PPP) | 576 | 標(biāo)準(zhǔn)的 |
以太網(wǎng)連接 (IP: DHCP 或固定) | 1500 | 默認(rèn)標(biāo)準(zhǔn)值 |
除了這些基本的指引方法外,還具有以下方法:
使用任何隧道方式的最佳 MTU 需要進(jìn)一步減去它們上面的頭部;
MTU 值不應(yīng)當(dāng)超過(guò)通過(guò)實(shí)驗(yàn)驗(yàn)證的 PMTU 值;
當(dāng)遇到其它限制的時(shí)候,較大的 MTU 值通常比較好。
最大分片大小 (MSS) 是另外一種衡量包大小的方法。MSS 和 MTU 的關(guān)系如下.
對(duì)于 IPv4, MSS = MTU – 40
對(duì)于 IPv6,MSS = MTU – 60
二、WAN TCP優(yōu)化
通過(guò)調(diào)整 TCP 緩沖區(qū)大小參數(shù),可以最大限度地提高 TCP 吞吐量,如現(xiàn)代高帶寬和高延遲廣域網(wǎng)的 “TCP 調(diào)整”。到目前為止,Debian 目前的默認(rèn)設(shè)置即使在我的局域網(wǎng)內(nèi)使用快速的 1G bps FTTP 服務(wù)時(shí)也能很好地運(yùn)行。
三、Netfilter網(wǎng)絡(luò)過(guò)濾框架
Netfilter 使用 Linux 內(nèi)核模塊提供狀態(tài)防火墻和網(wǎng)絡(luò)地址轉(zhuǎn)換 (NAT) 框架。
防火墻工具列表:
軟件包 | 流行度 | 大小 | 說(shuō)明 |
---|---|---|---|
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?配置文件生成器 (精簡(jiǎn)版) |
shorewall6 |
V:0, I:1 | 1334 | Shoreline 防火墻,?netfilter?配置文件生成器(IPv6 版本) |
shorewall6-lite |
V:0, I:0 | 71 | Shoreline 防火墻,?netfilter?配置文件生成器 (IPv6,精簡(jiǎn)版) |
netfilter 主要的用戶層程序是 iptables(8).你能從 shell 手工交付式的配置 netfilter,使用 iptables-save(8) 保存當(dāng)前狀態(tài),當(dāng)系統(tǒng)重啟時(shí),通過(guò) init 腳本調(diào)用 iptables-restore(8) 來(lái)恢復(fù)。