網上很多方法,不一而足。還是需要找到原因。
方法1:如果是Atheros的硬件:
終端輸入:lshw -C 查看版本
sudo su
echo "options ath9k nohwcrypt=1" >> /etc/modprobe.d/ath9k.conf
重啓
方法2:關閉802,11n
802支持度不好
單次:
sudo rmmod iwlwif
sudo modprobe iwlwifi 11n_disable=1
永久:
sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
Ubuntu 12.04 老的版本iwlwifi替換成iwlagn
方法 3
修復Debian的bug
sudo gedit /etc/nsswitch.conf
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
替換成
hosts: files dns
重啓,解決不了問題還原。
方法4:關閉ipv6
sudo su
echo "#disable ipv6" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf
方法5:替換網絡管理
安裝Wicd
方法6:關閉節能
sudo iwconfig
sudo iwconfig wlan0 power off
方法7:開啓bbr,Ubuntu 16.04
安裝 Hardware Enablement Stack (HWE),自動更新內核
apt install --install-recommends linux-generic-hwe-16.04
開機後 uname -r
看看是不是內核 >= 4.9。
執行 lsmod | grep bbr
,如果結果中沒有 tcp_bbr
的話就先執行
sudo modprobe tcp_bbr
echo "tcp_bbr" | sudo tee --append /etc/modules-load.d/modules.con
執行
echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf
保存生效
sudo sysctl -p
執行
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
如果結果都有 bbr
,則證明你的內核已開啓 BBR。
執行 lsmod | grep bbr
,看到有 tcp_bbr 模塊即說明 BBR 已啓動。
參考: