最近工作電腦換成 Mac Air 花了一個禮拜的適應期,真是好用!
但還是有遇到一些問題,在公司網路環境上使用的 VPN 是用 PPTP 架設的,在 Windows 端都是正常可用的,但在 Mac 上連線後約 10 分鐘就會開始掉封包,但在 VPN 連線依然建立著。
端午假期最後一天花了一些時間測試這個問題,在一次的 VPN 連線中,從 ifconfig 看到問題在於 Mac WiFi 的 MTU 僅有 1396,而 VPN 的 MTU 也是 1396
由於是連線 WiFi 由 pppoe 撥接在跳 PPTP,一般預設乙太網路的 MTU 都是 1500,不了解為什麼預設 Mac 的自動抓取會只採用 1396
所謂的 MTU 就是 “最大傳輸單元” 在正常我們所認知的項目就是 “最大的封包大小”,通常一個封包會被層層封裝,而 MTU 就是限制每個封包的最大限制,避免不正常的封包經過打包後而滲透。
以 OSX Yosemite 10.10.3 為例
在 Mac 內修改 MTU 可以在『系統偏好設定』→『網路』→『WiFi』→『進階』→『硬體』
將『設定』改為 “手動”
將『MTU』改為 “標準(1500)”
並確認後套用,重新測試 VPN 連線是否正常
用 ifconfig 查看 MTU
$ ifconfig | grep mtu en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
若是還有掉封包的現象,盡可能的去調整 PPTP 介面的 MTU。
詳細的 MTU 可以參考維基百科