- 1 動態域名-內網穿透
- 1.1 花生殼內網穿透-樹莓派
- 1.2 Docker爲樹莓派做內網穿透
- 1.3 使用樹莓派打造翻牆路由器:從開始到放棄
- 1.4 通過n2n實現內網穿透
- 1.5 內網穿透教程
使用樹莓派打造翻牆路由器:從開始到放棄
- 2017-02-21 14:11:35
- 啊超
- 24075
- 最後編輯:achao 於 2017-02-22 22:08:28
使用樹莓派打造翻牆路由器:從開始到放棄
作者:Arthur's Blog
之前買瞭一塊樹莓派一直閒置着,本著摺騰不浪費的精神,遂決定把牠改造成一箇可以科學上網的無線路由器。
準備清單:
- 樹莓派一枚
- 無線網卡一枚,型號: EP-N8508GS ,芯片是 Realtek RTL8188CUS
- micro SD 卡一枚,至少4G
- 樹莓派官方繫統 Raspbian 鏡像
- 電腦若榦
- USB電源線和網線各一條
這裡需要註意的是我使用的無線網卡,芯片因爲是 Realtek RTL8188CUS ,需要特殊處理,所以一開始花費瞭好多時間處理處理。爲什麽使用該芯片呢?首先,便宜;其次,很早以前就買好瞭。當然如果你是土豪,類似下麵這位,你可以買一箇兼容的芯片。
刷機
刷機使用的是Windows電腦,Linux電腦也是能夠刷機的,之前刷 OpenWRT 繫統的時候使用過,Mac繫統還沒試過。
從樹莓派 官方網站 下載最新版本的 Raspbian 繫統鏡像,這裡用的版本是 RASPBIAN JESSIE 完全版。
電腦上下載 Win32DiskImager ,用來把鏡像寫入SD卡中。
Raspbian繫統配置
在終端中輸入命令,會彈齣上圖的配置窗口。
sudo raspi-config
主要配置以下幾項:
- 1 Expand Filesystem
- 2 Change User Password
- 5 Internationalisation Options
- I1 Change Locale
- I2 Change Timezone
- I3 Change Keyboard Layout
- I4 Change Wi-fi Country
- 9 Advanced Options
- A3 Memory Split:如果隻是當做路由器使用,可以把GPU的內存改小點。我這裡的設置是32.
- A0 Update:這一步需要繫統聯網
重啟電腦:
sudo shutdown -r now
安裝併配置 hostapd
hostapd 可以讓無線網卡變成信號髮射器,如果你的芯片是官方支持的,可以直接從軟件源中安裝:
sudo apt-get install hostapd
我這邊使用的無線網卡的芯片是官方不支持的,所以得自己安裝。
wget https://codeload.github.com/jenssegers/RTL8188-hostapd/zip/v2.0 tar -zxvf v2.0.tar.gz cd RTL8188-hostapd-2.0/hostapd sudo make sudo make install # 啟動命令 sudo service hostapd restart
打開 hostapd 的配置文件,配置 ssid (Wi-fi名稱)、 wpa_passphrase (Wi-fi密碼)
sudo nano /etc/hostapd/hostapd.conf
以下是我的配置文件:
# Basic configuration interface=wlan0 ssid=CIL-F2E channel=1 #bridge=br0 # WPA and WPA2 configuration macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=3 wpa_passphrase=********* wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP # Hardware configuration driver=rtl871xdrv ieee80211n=1 hw_mode=g device_name=RTL8192CU manufacturer=Realtek
重啟 hostapd 服務,併設置開機啟動
sudo service hostapd restart sudo update-rc.d hostapd defaults
安裝併配置 udhcpd
udhcpd 可以讓鏈接到Wi-fi設備的客戶端通過 DHCP 穫取到IP地址。
sudo apt-get install udhcpd
修改 udhcpd 的配置文件 /etc/udhcpd.conf :
- start 和 end: DHCP 分配的 IP 段的起始和結束 IP
- interface:修改成上一步配置的interface
- opt dns: DNS
- option subnet:子網掩碼
- opt router:路由器 IP
以下是我的配置:
# Sample udhcpd configuration file (/etc/udhcpd.conf) # The start and end of the IP lease block start 192.168.37.1 #default: 192.168.0.20 end 192.168.37.254 #default: 192.168.0.254 # The interface that udhcpd will use interface wlan0 #default: eth0 #Examles opt dns 114.114.114.114 option subnet 255.255.255.0 opt router 192.168.37.1 #opt wins 192.168.37.10 option dns 8.8.8.8 # appened to above DNS servers for a total of 3 #option domain local option lease 864000 # 10 days of seconds
接著修改 /etc/default/udhcpd ,註釋掉 DHCPD_ENABLED="no" 這一行。
重啟 udhcpd 服務,併設置開機啟動
sudo service udhcpd restart sudo update-rc.d udhcpd defaults
配置 iptables 和網絡接口
打開網絡接口配置文件 /etc/network/interfaces ,設置 wlan0 爲靜態IP:
auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet static address 192.168.37.1 netmask 255.255.255.0 # wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
註意上麵的 wlan0 配置,請勿加上 gateway 192.168.x.x 的配置,否則會導緻其牠設備連接得上樹莓派,但是DNS解析不瞭的問題。
使生效:
sudo ifdown wlan0
sudo ifup wlan0
接著配置 iptables 。修改 /etc/sysctl.conf ,打開內核IP轉髮,在末尾添加:
net.ipv4.ip_forward=1
然後,添加 iptables 規則,將 wlan0 的包通過 eth0 轉髮,在命令行中輸入下列命令
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
由於 iptables 設置重啟後將消失,常用的方法是先保存下來,然後在啟動的時候加載規則
# 備份 iptables規則 sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
編輯 /etc/network/interfaces ,添加下麵這一行
# 啟動的時候加載 up iptables-restore < /etc/iptables.ipv4.nat
以上,設置Wi-fi熱點的配置就完成瞭,重啟樹莓派,用其牠設備連接應該就能夠上網瞭。
安裝shadowsocks服務
shadowsocks 是科學上網的一種非常有用的工具。以下內容的前提是需要有一箇shadowsocks賬號。
#安裝pip管理python包 sudo apt-get install python-pip python-m2crypto #安裝python版shadowsocks sudo pip install shadowsocks
創建shadowsocks的配置文件,可以在任意目録。以下以 /etc/shadowsocks/config.json 爲例。編輯如下內容
{ "server": "58.***.**.*", "server_port": 8390, "password": "********", "method": "aes-256-cfb", "local_address": "192.168.37.1", "local_port": 1080, "timeout": 60 }
設置開機啟動。編輯 /etc/rc.local。在exit前添加以下代碼:
/usr/local/bin/sslocal -c /etc/shadowsocks/config.json &
放棄
改造後的樹莓派路由器服務併不穩定,經常會齣現連接不瞭網絡,需要重新啟動纔能繼續上網。
另外本來打祘將改造後的路由器放在公司使用,但是因爲公司網絡策略陞級,不允許隨意搭建私人路由器,所以也就放棄繼續改造下去。