首頁 > 軟體

基於樹莓派的無線路由器改造

2020-06-16 17:30:04

家裡的渣渣路由罷工了,只能連結卻無法上網。本來打算上網淘一個回來,結果昨晚收拾東西的時候發現大學買來做臉部辨識的樹莓派在牆角吃灰很久,於是打算對其進行改造。

太久沒動樹莓派,上電沒有正常跑起來,乾脆直接從第一步刷系統開始操作。

一、系統設定

1、刷系統的操作前人已經介紹了很多,這裡參考@王登科: http://www.linuxidc.com/Linux/2016-10/136258.htm 實現Putty遠端連線樹莓派

2、開啟網路設定

sudo nano /etc/network/interfacse

將wlan0修改為如下

#自動IP
auto lo
iface lo inet loopback
iface eth0 inet dhcp
iface eth0 inet manual

#網絡卡設定為固定IP
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0

二、hostapd

1、安裝hostapd 

sudo apt-get install hostapd

2、使用下面的語句開啟hostapd

sudo nano /etc/default/hostapd

3、找到#DAEMON_CONF= ""這一行,首先取消註釋(去掉前面的#號),然後將其修改為:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

4、開啟hostapd.conf

sudo nano /etc/hostapd/hostapd.conf

5、新增設定資訊(PS:由於沒查到我買的裝置的具體型號,這裡採用後面的方式進行設定)

# 把無線網絡卡wlan0 作為接入點 
interface=wlan0 
# 使用對應的驅動 
driver=XXXX 
#共用網路的SSID是RaspberryPi 
ssid=RaspberryPi 
# 網絡卡工作在802.11G模式 
hw_mode=g 
#無線網絡卡選用11通道 
channel=11 
# WPA2 設定 
wpa=2 
#wpa密碼是raspberry 
wpa_passphrase=raspberry 
#認證方式為WPA-PSK 加密方式為CCMP 
wpa_key_mgmt=WPA-PSK 
wpa_pairwise=CCMP 
rsn_pairwise=CCMP 
beacon_int=100 
auth_algs=3 
wmm_enabled=1

6、安裝 autoremove hostapd

sudo apt-get autoremove hostapd

7、下載安裝第三方驅動:

wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz 
tar -zxvf v1.1.tar.gz 
cd RTL8188-hostapd-1.1/hostapd 
sudo make 
sudo make install

8、啟動hostapd服務:

sudo service hostapd restart 

之後提示下面的文字表示啟動成功

[ ok ] Stopping advanced IEEE 802.11 management: hostapd. 

[ ok ] Starting advanced IEEE 802.11 management: hostapd.

開啟hostapd.conf查詢到我的設定如下

# Basic configuration

interface=wlan0
ssid=Wifi
channel=6
#bridge=br0

# WPA and WPA2 configuration

macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=YourPassword
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

三、DHCP

1、安裝DHCP服務,用於對每個接入的裝置分配IP

sudo apt-get install isc-dhcp-server

2、編輯組態檔

sudo nano /etc/dhcp/dhcpd.conf

3、設定閘道器等資訊,這裡使用的是192.168.1.1

#預設租期(S)
default-lease-time 84600; 
#最大租期(S)
max-lease-time 84600; 
log-facility local7; 

subnet 192.168.1.0 netmask 255.255.255.0 { 
range 192.168.1.10 192.168.1.100; 
option routers 192.168.1.1; 
option broadcast-address 192.168.1.127; 
//設定DNS伺服器地址 option domain
-name-servers 192.168.31.1,192.168.1.1; default-lease-time 84600; max-lease-time 84600; }

4、啟動DHCP服務

sudo service isc-dhcp-server restart

四、轉發設定

1、設定路由轉發

sudo iptables -F 
sudo iptables -X 
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
sudo bash 
iptables-save > /etc/iptables.up.rules 
exit

2、開啟iptables檔案

sudo nano /etc/network/if-pre-up.d/iptables

新增以下程式碼

#!/bin/bash 
/sbin/iptables-restore < /etc/iptables.up.rules

3、修改iptables許可權

sudo chmod 755 /etc/network/if-pre-up.d/iptables

4、設定核心轉發,開啟sysctl.conf檔案

sudo nano /etc/sysctl.conf

將檔案內的下列兩行

# Uncomment the next line to enable packet forwarding for IPv4 
#net.ipv4.ip_forward=1

修改為(即去掉net.ipv4.ip_forward=1的註釋)

# Uncomment the next line to enable packet forwarding for IPv4 
net.ipv4.ip_forward=1

5、修改核心之後使其生效

sudo sysctl -p

至此,已經完成無線路由器的設定功能。

五、自啟設定

1、安裝chkconfig

sudo apt-get install chkconfig

2、設定hostapd、dhcp自啟動

sudo chkconfig --add hostapd 
sudo chkconfig --add isc-dhcp-server

PS: 手機有時候會出現連線上wifi後無法聯網的情況,需要手動設定IP,暫時未解決~~

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-10/136260.htm


IT145.com E-mail:sddin#qq.com