[Raspberry_Pi]使用樹莓派,做一個具有VPN功能的無線網路Repeater
一般市面上都找的到純的無線網路Repeater(延伸器或強波器),一個售價大概1000元左右,可以解決家中有些地方訊號不良的情形。後來在網路上也有找到一些用樹莓派做無線網路Repeater的文章。只是這些文章的「年齡」有些久遠,大部分都是使用Raspberry Pi Jessie的版本,然後搭配網友公認C/P值最高的Edimax EW-7822un無線網路adapter,再使用Edimax專用的無線熱點(Hotspot)驅動程式,搭建出一個具有接收wifi信號,然後再把接收的wifi資訊用Hotspot的方式傳出去。
我在使用之前的文章搭建無線網路Repeater的時候,一直卡在手機或是電腦明明就已經看到我搭建的Repeater的Hotspot,但是要連接的時候一直失敗。後來無意之間又在網路上找到一篇用Raspberry Pi Zero W搭建無線網路Repeater的文章,我才恍然大悟,原來只要使用Raspberry Pi Stretch(2017 NOV.版),Edimax的adapter就會自動被安裝,連Hotspot的驅動程式也一併裝好,使用者只要專注在指令上如何架構一個無線網路Repeater就好了,真的省了很多麻煩。
此外,用樹莓派做的無線網路Repeater,還可以自行增加VPN的功能,這是市面上幾乎所有無線網路Repeater都不可能有的功能,所以樹莓派在這方面還真的是無可挑剔的呢!
搭建樹莓派無線網路Repeater所使用的材料
Raspberry Pi 2 Model B(如果使用Raspberry Pi 3 就只需要準備一個Edimax ew-7822un)
Micro SD卡
電源供應器 5.3 V 2A
Edimax ew-7822un x 2
搭建Raspberry Pi無線網路Repeater的步驟
1.安裝Hostapd及DNSmasq套件
sudo apt-get update
sudo apt-get install hostapd dnsmasq -y
2.接著編輯/etc/dhcpcd.conf,在Wlan1設定固定IP
sudo nano /etc/dhcpcd.conf
把以下文字copy到設定文件(/etc/dhcpcd.conf)最下方,然後Ctrl+X存檔
interface wlan1
static ip_address=192.168.3.254/24
denyinterfaces wlan1
然後用sudo reboot重開機,用ifconfig檢查一下Wlan1是否已經發配到IP位置
3.用/etc/dnsmasq.conf設定DHCP伺服器
先重新命名設定文件為dnsmasq.conf.orig
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
建立新的dnsmasq.conf
sudo nano /etc/dnsmasq.conf
把以下文字copy到設定文件(/etc/dnsmasq.conf)最下方,然後Ctrl+X存檔
interface=wlan1
dhcp-range=192.168.3.1,192.168.3.20,255.255.255.0,24h
4.建立熱點
建立設定文件/etc/hostapd/hostapd.conf
sudo nano /etc/hostapd/hostapd.conf
把以下文字copy到設定文件(/etc/hostapd/hostapd.conf)最下方,把換成你的熱點名稱,例如pi2-ap,還有換成你的密碼,然後Ctrl+X存檔
interface=wlan1
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid=network_name
wpa_passphrase=password
進入/etc/default/hostapd的設定文件
sudo nano /etc/default/hostapd
把以下文字copy到設定文件(/etc/default/hostapd)最下方
DAEMON_CONF="/etc/hostapd/hostapd.conf"
5.開啟Traffic Forwarding
建立設定文件/etc/sysctl.conf
sudo nano /etc/sysctl.conf
把文件中的
#net.ipv4.ip_forward=1
改成
net.ipv4.ip_forward=1
6.轉發規則(Forwarding Rule)設定
執行以下指令
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
儲存設定
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
編輯/etc/rc.local,讓下次開機時載入這些規則
sudo nano /etc/rc.local
把以下文字copy到設定文件(/etc/rc.local)文字exit 0的上方
iptables-restore < /etc/iptables.ipv4.nat
7.設定無線網路連線
編輯/etc/wpa_supplicant/wpa_supplicant.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
把以下文字copy到設定文件(/etc/wpa_supplicant/wpa_supplicant.conf)最下方
network={
ssid="network_name"
psk="password"
key_mgmt=WPA-PSK
}
把換成家中無線網路熱點的名稱,把換成家中無線網路的密碼
8.重新開機
sudo reboot
加上PPTP VPN的功能
如果還要加上PPTP VPN的功能,只要先安裝pptp-linux套件,然後在設定文件(/etc/ppp/peers/pptpconf)中貼上以下內容
pty "pptp vpnhostname --nolaunchpppd"
name vpnusername
password vpnpassword
remotename PPTP
require-mppe-128
require-mschap-v2
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
noauth
persist
maxfail 0
defaultroute
replacedefaultroute
usepeerdns
然後再把步驟6.中的wlan0換成ppp0,再重新執行一次重開機就可以了
sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o ppp0 -j ACCEPT
不過個人在用過之後發現無線網路Repeater加上VPN的功能時,網路會變得很卡,若是把VPN的功能取消掉,網路卡卡的感覺就會消失,看來無線網路Repeater加上VPN時的工作負荷很重。若是多人要使用無線網路Repeater的話,最好還是不要開啟VPN的功能比較妥當。
熱門文章:
[Chrome OS]使用Cloudready,讓你的舊電腦起死回生
[Virtual Credit Card虛擬信用卡]使用Neteller虛擬信用卡,讓你可以通過線上刷卡的地址檢查機制
[Skype]申請具有Skypein功能的Skype帳號,讓你擁有美國(外國)電話門號
[Kindle]讓你的Kindle也可以讀樂天書城(Kobo)的電子書
[Google Home]讓Google Home播放自己上傳的特定類型音樂(新增新版Youtube Music使用心得)
延伸閱讀:
[Raspberry_Pi]使用樹莓派,製作一台具有VPN(PPTP)無線網路路由器(Router)
Creating Wireless Router using Raspberry Pi Zero W