2024年3月29日 星期五

iptables hashlimit

把 Linux 充當 NAT 的情況下,可以用 iptables hashlimit module 來達到簡單的限速

iptables -A FORWARD -d 192.168.0.0/16 -m hashlimit --hashlimit-name download --hashlimit-mode dstip --hashlimit-above 2048kb/s -j DROP
iptables -A FORWARD -s 192.168.0.0/16 -m hashlimit --hashlimit-name upload --hashlimit-mode srcip --hashlimit-above 1024kb/s -j DROP

第1行,下載規則,當目的是內網時, 以 dstip 分類,限速 2048kbytes/s = 16Mbps
第2行,上傳規則,當來源是內網時, 以 srcip 分類,限速 1048kbytes/s = 8Mbps

效果: 內網每個 IP 都享有 16Mbps/8Mbps 頻寬。測速會超過一些,誤差在 10% 內,還算滿準的。

ref. man iptables-extensions

沒有留言:

0xC2A0 Non-breaking space

0xC2A0 是不換行空格(Non-breaking space, NBSP) 在 UTF-8 編碼下的十六進制表示形式。 字元作用:它的外觀與一般的空格(ASCII 0x20)完全相同,但其功能是告訴瀏覽器或排版軟體「不要在此處斷行」。 這個字元在維運是個雷 這兩行中間的空白看...