先來說明為啥筆者會想把手機的4G網路橋接到AP上的WAN吧
動機
1. 筆者租屋處的網路gg.........QAQ
2. 筆者的網路設備(NAS Pi、AirPlay Pi、...之類的)沒辦法用無線網路去連手機的熱點.......(至於為啥設備名字後面都有個Pi呢.... 就是沒錢只好自己DIY..........)
3. 手機的熱點有連線數上限,印象中連5個裝置就極限了
租屋處原始架構圖:
目標架構圖:
刪除右邊的modem
改由Pi橋接AP和手機以3G/LTE連接上網
關鍵字說明:
Tethering: 意指通過智慧型手機或平板電腦等行動裝置,將它的上網功能分享給其他裝置使用的功能。(節錄自wikipedia: Tethering),在iPhone統一使用個人熱點控制
AP: Access Point 也就是一般家用的Wi-Fi無線基地台
建立Pi與iPhone個人熱點連線:
1. 安裝套件讓Pi可以使用USB連結iPhone的個人熱點
#以下步驟全部要使用root權限, 直接切換權限為root
pi@ShiunPi ~ $ sudo su -
#安裝以下的套件讓Pi可以使用iPhone的Tethering(網路共享功能)
root@ShiunPi ~ # apt-get install ipheth-utils
root@ShiunPi ~ # apt-get install libimobiledevice-utils
root@ShiunPi ~ # aptitude install ifuse
#ifuse是使用掛載的方式讓iPhone的Tethering能正常工作
#因此先建立等會兒要用來連線的掛載點
root@ShiunPi ~ # mkdir /media/iphone
2. 連接iPhone到Pi上並開啟iPhone的個人熱點確定Pi有偵測到iPhone,iPhone若顯示是否信任此裝置請點選信任(參考網站說不用點選信任但筆者這邊選不信任會一直出現錯誤)
#使用ifconfig -s檢查是否出現新的網路介面(通常是eth1)
root@ShiunPi ~ # ifconfig -s
3. 編輯/etc/network/interface讓NetworkManager會自動由eth1取得IP
root@ShiunPi ~ # vi /etc/network/interface
#加入以下設定
allow-hotplug eth1
iface eth1 inet dhcp
4. 重開機
5. 使用ifuse指令建立Pi與個人熱點的連線
#以下步驟全部要使用root權限, 直接切換權限為root
pi@ShiunPi ~ $ sudo su -
#使用ifuse掛載/media/iPhone目錄
root@ShiunPi ~ # ifuse /media/iPhone
6. 編輯自動建立連線的script iphoneconnect方便下次iPhone接上Pi後自動建立連線
root@ShiunPi ~ # vi /lib/udev/iphoneconnect
#!/bin/bash
#避免上一次ifuse掛載後沒有解除掛載,掛載錢先嘗試umount
umount /media/iPhone
ifuse /media/iPhone
ipheth_pair
#編輯結束後記得將script權限設定為755
root@ShiunPi ~ # chmod 755 /lib/udev/iphoneconnect
7. 設定udev偵測到iPhone個人熱點插上Pi時自動執行上一步的script
root@ShiunPi ~ # vi /lib/udev/rules.d/90-iphone-tether.rules
#修改原本的第五行的 "RUN+=" 為以下內容
ACTION=="add", SUBSYSTEM=="net", ENV{ID_USB_DRIVER}=="ipheth", SYMLINK+="iphone", RUN+="iphoneconnect"
8. 重開機驗證是否可正常執行,到這一步就已經完成iPhone與Pi的連線了
橋接Pi的eth0和iPhone的eth1
1. 安裝橋接用套件
#安裝bridge-utils即可
root@ShiunPi ~ # apt-get install bridge-utils
2. 設定eth0與eth1橋接在一起
#編輯/etc/network/interface檔案
root@ShiunPi ~ # vi /etc/network/interface
記得一定要註解掉這兩行,否則會發生同一個IP會出現在兩個interface的奇怪問題
#allow-hotplug eth1
#iface eth1 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1
3. 重開機並將筆電 or PC接到Pi的網路孔上(eth0)
到此步驟後橋接就完成了,此時即可從筆電直接透過iPhone連上internet,接著就直接從筆電上ping外網看看吧
橋接iPhone與AP
接著直接將Pi的網路孔(eth0)接上AP,iPhone開啟個人熱點並接上Pi的USB孔即完成所有工作,現在就不用再害怕租屋處網路又gg了!!!
參考資料
1. Raspberry Pi How To: Tether to iPhone 5 (之前更新網誌的時候不小心弄掉參考資料惹QQ)