2018年4月更新:
我自己的手機在openwrt上網速很慢,在電腦上又很快。應該不是被限速了,但是沒找到原因。
三大運營商在學校爭客戶,手機卡開出了校內無限流量的條件。很開心,之前准備到東北大學的時候還擔心校園網25G/月不夠用,這就不用擔心了。因為是手機卡上網,所以需要一個上網卡或者一個手機來上網絡再共享網絡給電腦/路由器。
方案一:使用上網卡共享。
這是我最開始認為穩妥的方法,便宜,方便。去閑魚收了一個上網卡,50塊。
到手后測試可以連電腦,也通過找資料,使得上網卡可以直接插在路由器上使用。
但是上網卡發熱太高,導致網速變慢,延遲增高。這個辦法就被否定了。
方案二:使用手機共享網絡
用手機開熱點是生活中經常辦的事情。而且之前在學校也試過用iPhone連接數據線給電腦共享網絡。
這里設備選擇手頭閑置的iPhone5s。
一、使用iPhone有線共享網絡給電腦
講解最簡單的直接使用電腦共享iPhone的網絡。
Windows平台需要安裝iTunes,安裝完之后,手機端將iPhone通過數據線連接到電腦,並在設置->個人熱點->打開。電腦端在網絡連接中就可以看到iPhone的網絡,如果電腦網口還連接有網線,則禁用電腦網口。
Fedora直接插上手機就有了。(沒太仔細研究)
二、使用OpenWrt路由器
Fedora都能使用iPhone共享的網絡,我覺得OpenWrt肯定也可以,所以我就去搜索資料。發現可以,並且自己也嘗試成功。下面將查到的資料總結一下。(其實一篇文章就講清楚了,但是之前查了很多)
(一)安裝OpenWrt依賴包
opkg update opkg install kmod-usb-net-ipheth kmod-usb-net kmod-usb-ohci kmod-usb-uhci kmod-usb2 libimobiledevice-utils libplist-utils libusbmuxd-utils usbmuxd
kmod-usb-net-ipheth //這個是啥,查查
具體依賴包的作用見下面
Kernel modules ---> USB Support ---> <*> kmod-usb-net............... Kernel modules for USB-to-Ethernet convertors <*> kmod-usb-ohci............................... Support for OHCI controllers <*> kmod-usb-uhci............................... Support for UHCI controllers <*> kmod-usb2................................... Support for USB2 controllers Utilities ---> <*> libimobiledevice-utils............ A library that talks to Apple devices. <*> libplist-utils............................. Apple property list converter <*> libusbmuxd-utils......................... USB multiplexing daemon utilies <*> usbmuxd.......................................... USB multiplexing daemon
(二)配置usbmuxd
iPhone的USB tethering需要usbmuxd進程的運行。usbmuxd並不會自動運行,因此可以在OpenWrt終端手動啟動,或制作以下開機自啟動腳本,並通過命令使其自啟動。[1]
使用命令新建/etc/init.d/usbmuxd腳本,並給腳本添加可執行權限。
touch /etc/init.d/usbmuxd
vi /etc/init.d/usbmuxd chmod +x /etc/init.d/usbmuxd
下面是自啟動腳本內容。
#!/bin/sh /etc/rc.common # Copyright (c) 2011-2012 OpenWrt.org START=99 stop() { killall usbmuxd } start() { if [ ! -d "/var/lib/lockdown" ];then mkdir -p /var/lib/lockdown fi ./usr/sbin/usbmuxd & }
腳本添加完成后,運行命令啟動usbmuxd,並且添加自啟動。
/etc/init.d/usbmuxd enable
/etc/init.d/usbmuxd start
(三)添加網絡
在usbmuxd進程啟動的前提下,使iPhone通過usb線連接路由器,並開啟iPhone個人熱點。
此時,手機端會彈出如圖顯示的是否允許電腦連接多媒體。這個可以看出路由器已經可以識別iPhone。
通過下面代碼查看新增加的網絡設備。原始設備一般為eth0,新增設備可能是eth1或eht2。
cat /proc/net/dev
這里,在我的路由器看到的新增設備是eth1,以此為例子,添加網絡。
添加方式一:使用uci設置。
uci set network.iPhone=interface uci set network.iPhone.proto=dhcp uci set network.iPhone.ifname=eth1 uci commit network
添加方式二:編輯/etc/config/network文件,在文件中加入
config interface 'eth1' option ifname 'iPhone' option proto 'dhcp'
添加方式三:在luci界面手動添加
Network->Interface->Add new interface
添加網絡,設備選擇eth1,協議選dhcp
添加網絡后,修改接口防火牆,與wan口在一起。(這個還沒搞懂)
(四)上網吧!
這里將上面的思路整理了一下,寫了一個自動配置腳本。
#!/bin/sh #script to make the OpenWrt Router use net from iPhone #install packages opkg update opkg install kmod-usb-net-ipheth kmod-usb-net kmod-usb-ohci libimobiledevice-utils libplist-utils libusbmuxd-utils usbmuxd #usbmuxd auto-start cp usbmuxd /etc/init.d/usbmuxd chmod +x /etc/init.d/usbmuxd /etc/init.d/usbmuxd enable /etc/init.d/usbmuxd start #set network uci delete network.wan uci set network.iPhone=interface uci set network.iPhone.proto=dhcp uci set network.iPhone.ifname=eth1 uci commit network uci set firewall.@zone[1].network='wan6 iPhone' uci commit firewall /etc/init.d/firewall restart /etc/init.d/network reload /etc/init.d/network restart
也可以去我的GitHub查看
https://github.com/huipengly/OpenWrtUseiPhoneNet
參考