用過電信閃訊的同窗都知道,閃訊沒有開發Linux的客戶端程序,因此這讓不少玩Linux操做系統同時又是閃訊用戶的同窗很頭疼,今天我就來介紹一下如何在Linux下鏈接閃訊網絡,而且支持有線鏈接和無線鏈接。node
本教材基於這個Github
倉庫shanxun_pppoe_linux_desktoplinux
shanxun_pppoe_linux_desktopgit
sudo apt-get install ppp
makefile中的TODO項都有相關的註釋,不一樣的系統可能有不一樣的配置,應先確認。github
在倉庫目錄下執行:shell
sudo chmod a+x INSTALL sudo ./INSTALL zhejiang_xiaoyuan_sxplugin #(其餘地區請更換,地區列表在makefile內)
因爲閃訊網絡有兩種方式鏈接,有線和無線,方法略有不一樣。bash
首先在命令行執行ifconfig
命令,記錄下有線網卡和無線網卡名稱,有線網卡名稱是e
開頭的,無線網卡名稱是w
開頭的,不一樣設備的名稱不同。網絡
5.1 有線鏈接操作系統
直接使用如下命令鏈接有線:命令行
sudo connect_sx <username> <password>
參數分別是閃訊用戶名和密碼code
# 其後直接使用這個命令就能夠了 sudo connect_sx # 更改密碼 sudo connect_sx <password> # 斷開鏈接 sudo connect_sx stop
若鏈接不上,則嘗試如下命令後再次嘗試鏈接。
sudo del default route sudo add default route <有線網卡名稱> sudo connect_sx <username> <password>
5.2 無線鏈接
使用如下命令鏈接
pppd noauth nodetach defaultroute usepeerdns maxfail 1 user <your username> password <your password> mtu 1492 mru 1492 plugin rp-pppoe.so nic-<網卡名> plugin zhejiang_xiaoyuan_sxplugin.so
須要配置的參數有用戶名和密碼,以及你的無線網卡名,此方法也能夠用來鏈接有線,在網卡名填入對應的有線網卡名便可。
針對以上鍊接方式,爲了便於鏈接,我寫了如下腳本,僅供參考。
#!/bin/bash # 是否鏈接有線 ETH_STATE=`cat /sys/class/net/enp4s0/operstate` # 是否鏈接無線 WLAN_STATE=`cat /sys/class/net/wlp1s0/operstate` # 鏈接的無線網絡名稱 其中wlp1s0是無線網卡名 WLAN_NAME=`iwconfig wlp1s0 | grep ESSID | awk -F\" '{print $2}'` # 帳號密碼 username=12345678911@DZKD.XY password=123456 # 有線鏈接 if [ "up" == $ETH_STATE ] then connect_sx fi # 無線鏈接 if [ "up" == $WLAN_STATE ] then # 我所在環境能連閃訊的有三個無線WIFI if [ "ChinaNet-shanxun" == $WLAN_NAME ]||[ "ChinaNet-tRmt" == $WLAN_NAME ]||[ "ChinaNet-tRmt-5G" == $WLAN_NAME ] then pppd noauth nodetach defaultroute usepeerdns maxfail 1 user $username password $password mtu 1492 mru 1492 plugin rp-pppoe.so nic-wlp1s0 plugin zhejiang_xiaoyuan_sxplugin.so else echo "is not shanxun" fi fi
在後臺運行腳本:
sudo nohup ./shanxun.sh &