在我的 macOS 10.15 上我必須使用Cisco AnyConnect 安全行動用戶端 4.8連接到我大學的 VPN。
連線速度比平常慢很多,可能是因為 1300 的 MTU 設定得太低。
使用命令ifconfig
,我得到有關連接的資訊:
utun2: flags=80d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1300
inet ###.###.##.## --> ###.###.##.## netmask 0xfffffe00
inet6 ###::####:###:###:###%utun2 prefixlen 64 scopeid 0x10
inet6 ###:####:#:#::### prefixlen 128
nd6 options=201<PERFORMNUD,DAD>
(IP 位址已用 # 進行匿名化)
我怎樣才能改變這個?我在 Cisco 用戶端的設定中找不到任何內容,甚至在設定檔中也沒有找到。
更改系統設定是沒有用的,透過終端機我嘗試了以下操作:
sudo ifconfig utun2 mtu 1470
然後使用該命令顯示正確的值ifconfig
,但連接本身沒有改變(速度和此處顯示的 MTU 值都沒有改變)https://www.speedguide.net/analyzer.php)。重新連線後,MTU 再次註冊為 1300。
如何有效且永久地更改 MTU?
答案1
由於 VPN 封裝會增加封包的額外開銷,因此將最大傳輸單元減少到低於標準 1500 位元組乙太網路訊框 MTU 有助於確保封裝的封包不會分段。
若要檢查資料包碎片,ping
可以使用「不分段」開關。
在我的 MacOS High Sierra 版本上ping
,我可以使用以下選項指定掃描大小:
nevin% ping -g 1200 -G 1500 -D <remote host>
這給出了結果:
1472 bytes from x.x.x.x: icmp_seq=64 ttl=48 time=108.894 ms 556 bytes from 192.168.2.1: frag needed and DF set (MTU 1492) Vr HL TOS Len ID Flg off TTL Pro cks Src Dst 4 5 00 d505 f712 0 0000 40 01 2739 192.168.2.111 x.x.x.x
我的 en0 MTU 是 1500,但上面的回應是我的路由器的 MTU 是 1492。
「路徑 MTU 發現」將嘗試將封包大小保持在兩個主機之間任何連結的碎片閾值以下,儘管當 ICMP 沿途未被封鎖時,此方法效果最佳。 (如果您剛開始丟失資料包而沒有任何錯誤訊息,則 ICMP 在某個上游點被阻止,這可能是速度慢的原因:遠端主機發送的資料包可能大於本地 MTU,但沒有收到錯誤告訴它縮減規模。
簡而言之,嘗試增加 MTU 的大小不會提高效能。