論壇首頁
-> 電子電玩
用樹莓派打造無線中繼科學上網路由器 (發表於10年前)
|
|
|
|
| 閱讀上一個主題 :: 閱讀下一個主題 |
| 作者 |
正文 |
冇散纸 (只看此人)

|
時間: 2016-4-05 20:07
|
|
|
chinadigitaltimes.net
用樹莓派打造無線中繼科學上網路由器
編輯: 草牆推
為什麼要做無線中繼?因為兩個場景:第一個是在我司,WIFI上網同一賬戶只能連接兩個設備,現在兩個設備哪裡夠?第二個場景是在賓館,我希望就像在家裡一樣,所有設備都是連上路由器就可以免設置科學上網,這就需要對賓館原來的WIFI進行處理。
來源:
請各位看官注意兩個關鍵字:無線中繼 科學上網。
為什麼要做無線中繼?因為兩個場景:第一個是在我司,WIFI上網同一賬戶只能連接兩個設備,現在兩個設備哪裡夠?第二個場景是在賓館,我希望就像在家裡一樣,所有設備都是連上路由器就可以免設置科學上網,這就需要對賓館原來的WIFI進行處理
為什麼要隨時科學上網?我只能說,為了知識和真相
樹莓派使用的系統:RASPBIAN JESSIE
另外,因為手頭沒有路由器,因此,本文介紹利用電腦直連樹莓派進行相關設置。不多說,開始了。
1.設置IP
按照樹莓派官方的做法,樹莓派需要一根網線直連路由器,通過路由器的DHCP分配到IP後,就可以遠程登錄了。但是剛才已經提到,因為手頭沒有路由器,所以我們需要用電腦直連樹莓派進行遠程登錄。將制作好的樹莓派SD卡插入電腦,會彈出一個名為Boot的磁盤,其中有一個cmdline.txt文件,打開之後,在最後的位置追加一個IP如下:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ip=192.168.3.1
插回SD卡至樹莓派,通電後,將我們的電腦端IP設置為192.168.3.100,掩碼設置為255.255.255.0即可連接樹莓派了
2.更改磁盤大小和LOCALE
樹莓派默認並沒有用足所有的SD卡,具體原因未知。但是也很好調整。運行sudo raspi-config
,可以打開樹莓派設置窗口:設置窗口
第一項,就是將文件系統擴展到整個SD卡。順便把第五項中的語言項也改了吧,否則在安裝軟件時,總會提示language沒有設置,我一般會選擇生成en_US.UTF-8
以及zh_CN.UTF-8
,默認語言使用趙家語言(選擇時,使用空格鍵來切換選中/未選)。
3.更改WIFI國別
為什麼要更改WIFI國別?因為按照規范,各國的頻譜不一樣,詳見這裡
,如果不更改,樹莓派默認使用大英帝國,直接的影響就是,可能某些5G信道會搜索不到。
編輯/etc/wpa_supplicant/wpa_supplicant.conf,更改country為CN
4.安裝第一塊WIFI適配器
5.配置基於WPA-EAP的WIFI認證
我司使用了基於PEAP和MSCHAPV2的WPA-EAP的WIFI認證,但是沒有使用證書。
配置時,只需要在/etc/wpa_supplicant/wpa_supplicant.conf增加如下段落即可
network=
ssid="ssid"
key_mgmt=WPA-EAP
eap=PEAP
identity="id"
password="password"
#ca_cert="/etc/cert/ca.pem"
#phase1="peaplabel=1"
phase2="auth=MSCHAPV2"
priority=10
更改其中的ssid identity和password為你所在環境的配置。
配置文件中可以有多個network配置,系統會根據搜索到的ssid來自動匹配
6.連接WIFI
連接WIFI其實就是一個重新加載配置的過程,先執行sudo ifdown wlan0,再執行sudo ifup wlan0即可。之後,可以利用iwconfig命令查看wifi配置是否已經加載,用ifconfig來查看是否分配到IP,如果一切順利,就應該能夠上網了。
7.更改為中科大的源
deb mirrors.ustc.edu.cn/ra.../raspbian/ jessie main non-free contrib
之後運行sudo apt-get update來更新源
8.固定接口名稱
什麼叫固定接口名稱?當我們插入WIFI適配器時,尤其是我們的整個方案中,會使用兩個WIFI適配器時,系統會隨機分配哪個是wlan0,哪個是wlan1。因為兩個適配器不一樣,會導致運行在上面的配置可能沒辦法生效。因此,我們必須讓系統記住WIFI適配器使用的接口名稱。
編輯新增文件/etc/udev/rules.d/10-network.rules,其中的內容如下:
SUBSYSTEM=="net", ACTION=="add", ATTRaddress=="aa:b c:dd:ee:ff", NAME="wlan0"
注意其中的mac地址,設置為你的設備的mac地址。獲得mac地址,可以使用命令ip link
重啟系統後,再插入設備,就會綁定接口名稱
9.更改eth0的IP
前面的第一步中,我們使用了一個變相的手法分配了樹莓派的IP。但是我發現在該模式一下有一個問題:如果不插網線,樹莓派啟動時會很長一段時間都在等待插入網線。
既然已經進入了系統,我們自然還原為標准的配置。編輯文件/etc/network/interfaces,將eth0的配置改為如下
auto eth0
iface eth0 inet static
address 192.168.3.1
netmask 255.255.255.0
然後編輯/boot/cmdline.txt,去掉第一步中增加的IP配置
10.安裝dnsmasq來設置DHCP服務
先來說明一下我的網段設置,有線網絡使用192.168.3這個網段,而無線AP端,使用192.168.4這個網段。
很多博文使用udhcpd來做作DHCP服務器,但是考慮到將來要科學上網,既然dnsmasq就可以做這個事,那就只用它好了。
使用命令sudo apt-get install dnsmasq,編輯/etc/dnsmasq.conf,注意更改如下幾段:
#配置監聽地址
listen-address=127.0.0.1,192.168.3.1,192.168.4.1
#配置DHCP分配段
dhcp-range=192.168.3.50,192.168.3.150,12h
dhcp-range=192.168.4.50,192.168.4.150,12h
運行命令sudo service dnsmasq restart來啟用
11.開啟包轉發
Linux系統默認關閉了IP包轉發,因此不能做路由器。所以需要先打開包轉發
編輯/etc/sysctl.conf,去掉以下屬性前的注釋:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
運行sudo sysctl -p來啟用
之後運行
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
來啟用wlan0端口的NAT
12.安裝iptables-persistent
上一步中,我們啟用了一條防火牆規則,但是防火牆規則重啟後就丟失了,為了能夠規則開機自動加載,我們可以使用iptables-persistent。用命令sudo apt-get install iptables-persistent來安裝該組件,根據其提示進行初次設置(一路確認)。該組件默認會將防火牆規則保存到/etc/iptables/rules.v4中。你可以使用如下命令保存和讀入規則:
#保存現有規則
sudo service netfilter-persistent save
#讀取並應用先有規則
sudo service netfilter-persistent reload
為什麼服務名稱變成了netfilter-persistent,這裡面好像有故事,留待以後再digg
13.安裝第二塊WIFI適配器
第一塊WIFI適配器是為了連接現有網絡,第二塊則是為了建立WIFI熱點。為了建立WIFI熱點,適配器必須具有AP的mode。可以使用命令iw list|grep -A10 'Supported interface modes'
查看。比如,我選用的設備是widemac SL-1506N
,其參數如下:
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* WDS
* monitor
* mesh point
該設備依然是插入即可,不需要驅動。
14.設置第二塊Adapter的IP
依然是編輯/etc/network/interfaces,更改wlan1的配置如下
auto wlan1
iface wlan1 inet static
address 192.168.4.1
netmask 255.255.255.0
15.固定第二塊WIFI適配器的接口名稱
做法類似於第一塊,只不過再加入一行而已,接口名稱為wlan1,這裡就不說了,記得重啟讓其生效。
16.安裝並開啟hostapd
Linux啟用WIFI熱點,使用的是hostapd。首先,用命令sudo apt-get install hostapd安裝它,然後增加配置文件/etc/hostapd/hostapd.conf如下:
interface=wlan1
driver=nl80211
ssid=ssid
hw_mode=g
channel=13
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=passwd
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
只需要更改其中的ssid和wpa_passphrase屬性。
之後運行命令sudo hostpad -d /etc/hostapd/hostapd.conf來觀察測試,沒有錯誤可以連接,就OK了。 CTRL+C後,編輯/etc/default/hostapd,改變DAEMON_CONF的配置如下
DAEMON_CONF="/etc/hostapd/hostapd.conf"
之後就可以使用sudo service hostapd start正式啟動WIFI熱點了
至此,通常一個WIFI中繼路由器就好了,以下介紹透明科學上網部分
17.建立無污染DNS
以前都需要使用chinadns等項目,現在基本上都直接使用中科大的DNS,直接無污染。在/etc/dnsmasq.conf,加入如下規則
no-resolv
server=202.38.93.153
server=202.141.162.123
重啟dnsmasq,可以用dig t.co測試一下
18.安裝shadowsocks
這裡首先要說明一下,我找了很久,也沒有找到適合樹莓派的shadowsocks-libev,因此,我們使用了redsocks+shadowsocks的組合來替代。
樹莓派源中的shadowsocks的版本很低,連rc4-md5都不支持。因此,我們使用pip安裝,鍵入sudo pip install shadowsocks即可安裝,之後新建配置文件/etc/shadowsocks.conf如下
{
"server":"xxx.xxx.xxx.xxx",
"server_port":8964,
"local_address":"0.0.0.0",
"local_port":1080,
"password":"password",
"timeout":600,
"method":"rc4-md5"
}
然後用命令sudo sslocal -c /etc/shadowsocks.conf -d start來啟動
沒有問題,就將sslocal -c /etc/shadowsocks.conf -d start加入/etc/rc.local來讓其開機啟動
19.安裝redsocks
執行sudo apt-get install redsocks來安裝軟件,之後編輯/etc/redsocks.conf,更改其中的redsocks部分如下
redsocks
local_ip = 0.0.0.0;
local_port = 12345;
ip = 127.0.0.1;
port = 1080;
使用命令sudo service redsocks start來啟動軟件
可以使用netstat -an|grep 1080和netstat -an|grep 12345來確認一下shadowsocks和redsocks都啟動了
20.安裝ipset並導入chnroute
我們科學翻牆的規則:凡是國外的網站都用shadowsocks加速。因此,我們借助於ipset保存國內ip段。先用sudo apt-get install ipset安裝軟件
執行命令
curl 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | grep ipv4 | grep CN | awk -F| ' printf("%s/%dn", $4, 32-log($5)/log(2)) ' > chnroute.txt
來導出國內ip段
然後用如下命令導入到ipset
sudo ipset create chnroute hash:net
cat chnroute.txt | sudo xargs -I ip ipset add chnroute ip
21.備份ipset並開機載入
各位看官可能已經發現,導入ipset的過程非常緩慢,不適合每次開機都執行。我們可以將ipset的結果保存,每次開機導入。執行如下命令
sudo ipset chnroute save > /etc/chnroute.ipset
然後在/etc/rc.local中加入如下語句
ipset restore < /etc/chnroute.ipset
即可開機執行
22.導入防火牆規則
sudo iptables -t nat -N SHADOWSOCKS
sudo iptables -t nat -A SHADOWSOCKS -d $server_IP -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -m set --match-set chnroute dst -j RETURN
sudo iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports 12345
sudo iptables -t nat -A OUTPUT -p tcp -j SHADOWSOCKS
sudo iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS
其中server_IP是你的VPS的地址
然後保存規則
sudo service netfilter-persistent save
23.開機重新生效防火牆規則
既然iptables-persistent可以開機加載防火牆規則,為什麼還要談這個?因為防火牆規則中,有使用到redsocks的端口12345,但是因為啟動順序問題,很可能redsocks還沒有啟動,防火牆規則先加載了,所以會導致防火牆規則加載失敗。因此,我們需要把規則加載放入/etc/rc.local中:
iptables-restore < /etc/iptables/rules.v4
至此,整個教程就寫完了。這些步驟是我實驗了三四遍之後的經驗所得,請在轉載時,注明出處,非常感謝。
請在這裡下載最新翻牆利器螢火蟲代理。
_________________ 諸省獨立
獨不獨立
開門揖盜
濫好人
|
|
|
|
|
|
|
樓主 |
電梯直達
|
|
慎獨 (只看此人)

|
時間: 2016-4-05 20:09
|
|
|
|
暈死,買一個超小型的路由器,才幾十塊,跟名片差不多大小
|
|
|
|
|
|
|
沙發 |
返回頂端
|
|
冇散纸 (只看此人)

|
|
|
板凳 |
返回頂端
|
|
happyy2k (只看此人)

|
時間: 2016-4-05 21:23
|
|
|
|
誰寫的啊,太TM的難懂了
|
|
|
|
|
地板 |
返回頂端
|
|
|
|
 |
論壇首頁
-> 電子電玩 |
所有的時間均為 美國太平洋時間
|
| 第1頁,共1頁 |
|
|
注: 以上論壇所有發言僅代表發帖者個人觀點, 並不代表本站觀點或立場, 加西網對此不負任何責任。 投資理財及買房賣房版面的帖子不構成投資建議。投資有風險,責任請自負對二手買賣中的虛假信息,買賣中的糾紛等均與本站無關。 |
|
您不能在本論壇發表新主題 您不能在本論壇回復主題 您不能在本論壇編輯自己的文章 您不能在本論壇刪除自己的文章 您不能在本論壇發表投票 您不能在這個論壇添加附件 您可以在這個論壇下載文件
| 論壇轉跳:
|
|
冇散纸, 慎獨, 冇散纸, happyy2k
| 最新新聞 |
熱門新聞 |
熱評新聞 |
意外早退 溫村大姐活出頂級松弛感
太嚇人!車裡一瓶水竟可能點燃座椅
逃離北上廣!中國年輕人擠爆尼泊爾
華裔探員Costco遭警當眾辱華施暴
特朗普仍考慮與賴清德通話 北京警告或損關系改善
溫村法院強拍"斷頭房"3天就被秒了
蔡奇出任中央黨校校長 黨內影響力進一步提升
美台在AI與無人機尖端科技領域打造安全供應鏈
美軍:伊朗向兩國發射了7枚導彈 其中6枚被攔截
擊穿幻想:科技股為何在"好消息"中蒸發萬億美元
從最美郭芙到豪門棄婦 她如今盡情享受單身生活
普京長女罕見亮相,眉眼氣場神似父親
黃仁勳在韓國被網站「追蹤」,5天狂攬10萬圍觀
河南中專生成北大博士:這不是逆襲 只是回到正常
美國企業重新給DeepSeek打錢!登頂新增采購榜 |
科技股,就這樣走到了危險時刻?(圖
67歲麥當娜粉色緊身衣造型亮相,動感熱舞
一個社會學博士,為何選擇在縣級養老院當"護理員"
黎巴嫩領導人警告伊朗不要幹涉黎巴嫩內政
獲央視點贊的6部高分好劇,全都是值得反復刷的寶藏
真實事件改編的5部神劇,每部都夠敢拍,你還記得幾部?
劉翔沒工作卻坐擁十億?這筆賬算完你更難受
倪妮井柏然分手8年,為何仍是內娛意難平
戚薇李承鉉甜上熱搜,安以軒傾盡所有被辜負
湯道生姚順雨對談:騰訊AI的下半場
一天熱死3400人,印度也要限制中國空調
宗馥莉名下多家"娃哈哈"公司更名,"宏勝系"版圖擴張
川普直言 伊朗濃縮鈾僅美國與中國有能力取出
美媒:特朗普特使為美伊談判密會核專家
劉歡:父母想要個孫子,這個任務由我弟弟完成了 |
國務卿大溫官宣 這筆福利今起發放
老外組團加國犯罪太可怕 46人被捕
特朗普真人秀"爛尾"?美伊可能永遠不會達成協議
PNE全新露天劇場昨晚首秀容納萬人
新條件盛氣凌人!美伊談判傳出大消息
溫哥華多輛汽車遭劃傷和割破輪胎
一天熱死3400人,印度也要限制中國空調
中國人不願消費 已成全球經濟的大問題
被問關鍵問題,盧比奧把北京的臉打得啪啪響
大溫男青帶藥入境這國家 恐判20年
省府續簽4年 BC醫生狂攬1億新補貼
加國男子因殺害兔子被判入獄八年
豪賭世界杯 溫村短租房東砸手裡了
美軍稱伊朗7枚導彈射向科威特、巴林....
一個社會學博士,為何選擇在縣級養老院當"護理員" |
|
|
|