在raspberry pi設定的ap

設定ap是可以讓pi變成一個無線分享器,把已接收到的網路再轉出去形成一個中繼站,同時在沒網際網路的情形下也可以先連進去做無限wifi設定

以下是設定過程:

先進網路設定檔
sudo vi /etc/network/interfaces
把內建的wifi介面 wlan0 ,註解讀取 WiFi 連線設定值
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

編輯DHCP Client設定檔
sudo vi /etc/dhcpcd.conf
在最後輸入給wlan0的固定ip
interface wlan0
static ip_address=192.168.0.1/24

開放IP轉送功能。
sudo sed -i ‘s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g’ /etc/sysctl.conf
打完後在打這段 cat /etc/sysctl.conf | grep ip_forward
就可確認有沒有成功,成功會出現  net.ipv4.ip_forward=1

調整防火牆的 IP 偽裝設定,這邊有一點很重要就是要注意分享網路的編號不能打錯,打錯就要整個重來
sudo iptables -F
sudo iptables -F -t nat
sudo iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT

儲存防火牆的設定值。
sudo bash -c ‘iptables-save >/etc/network/iptables.wlan1_to_wlan0’
sudo iptables-restore < /etc/network/iptables.wlan1_to_wlan0

編輯開機自動載入的腳本。
sudo vi /etc/rc.local
在倒數二行加入新的防火牆規則。
sudo iptables-restore < /etc/network/iptables.wlan1_to_wlan0

架設DHCP伺服器

安裝dhcp server
sudo apt -y install dnsmasq
輸入下列設定值 ,192.168.0.1 是 wlan0 的自訂 IP,192.168.0.101 到 192.168.0.110 是 dnsmasq 可以發放的 IP 位址。
bogus-priv
bind-interfaces
resolv-file=/etc/resolv.dnsmasq
min-port=49152
server=8.8.8.8
server=168.95.192.1
cache-size=10000
interface=wlan0
dhcp-range=192.168.0.101,192.168.0.110,255.255.255.0,8h
dhcp-option=1,255.255.255.0
dhcp-option=3,192.168.0.1
dhcp-option=6,192.168.0.1,8.8.8.8,168.95.192.1
dhcp-authoritative

複製原本的本機 DNS Server 設定值。
sudo cp /etc/resolv.conf /etc/resolv.dnsmasq

將裡面的 DNS Server 改成 wlan0 的自訂 IP。
sudo sed -i ‘s/127.0.0.1/192.168.0.1/g’ /etc/resolv.dnsmasq

重新啟動 dnsmasq。
sudo systemctl restart dnsmasq && sudo systemctl enable dnsmasq

 

啟用WIFI熱點

安裝hostapd
sudo apt-get -y install hostapd

新增 hostapd 的主設定檔
sudo vi /etc/hostapd/hostapd.conf
在裡面輸入:
interface=wlan0
ssid=RPi3-AP (WIFI名子)
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=RPi3-Password (密碼)
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

測試一下 hostapd 是否正常啟動。
sudo hostapd -dd /etc/hostapd/hostapd.conf

指定 hostapd 的設定檔位置。
sudo sed -i ‘s/#DAEMON_CONF=””/DAEMON_CONF=”\/etc\/hostapd\/hostapd.conf”/g’ /etc/default/hostapd

最後,重新開機讓所有的設定值都生效。
sudo systemctl enable hostapd
sudo reboot

最後的畫面: