首頁 > 軟體

Raspberry Pi設定自動撥號搭建無線路由環境

2020-06-16 17:15:05

前言 

  • raspberry pi(樹莓派), 是一款針對電腦業餘愛好者、教師、小學生以及小型企業等使用者的迷你電腦,由於可以燒錄Linux作業系統,因此可以衍生出各種各樣的使用途徑,諸如控制版,爬蟲機器,個人vps,門禁系統…..本文主要介紹如何在raspberry pi上面完成pppoe撥號上網功能,以及如何利用raspberry pi完成路由轉發功能,進而將其作為一個家用無線路由器來使用。

  • 準備環境

  1. raspberry pi 三代 b+版

  2. Kali Linux 映象,點此連結下載最新映象

  3. 一款Kali Linux支援的,擁有AP模式的USB網絡卡, 可以參考此連結

燒錄Kali Linux系統到SD卡片(此處略過)在windows上面,我們可以使用 Win32DiskImager工具進行映象的燒錄;在Linux宿主系統上面,可以利用dd命令直接將img映象dump到sd卡裡面,例如: root@kali:~ dd if=kali-2.1.2-rpi.img of=/dev/sdb bs=512k安裝必要軟體 我們需要在Kali上面安裝pppoe軟體用來撥號,安裝AP軟體將Raspberry pi作為一個無線AP,安裝dhcp軟體用來給用戶端分發IP地址,DNS等資訊。 

root@kali:~# apt-get install pppoe pppoeconf hostapd udhcpd
  • 設定撥號 
    在這裡,我們使用Raspberry pi的乙太網網口接入網線進行撥號設定。在命令列輸入如下指令:

root@kali:~# pppoeconf

   在這裡,會提示相應的組態檔將發生改變,點選Yes。

  下一步會提示在撥號的偏好設定,點選Yes。

  下一步會提示輸入撥號的使用者名稱,直接輸入然後點選OK。

  下一步會提示輸入撥號密碼,直接輸入然後點選OK。

  下一步會確認是否將ISP供應商提供的DNS資訊寫入設定,選Yes。

  下一步會提示修改ppp介面的MTU大小,選擇Yes。

  下一步提示是否在開機啟動的時候就進行ppp撥號,選擇Yes。

  下一步提示是否現在進行撥號連線,選擇Yes。

  撥號成功之後,利用ip命令檢視ppp情況:

root@kali:~# ip a s ppp0
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1488 qdisc pfifo_fast state UNKNOWN group default qlen 3
   link/ppp
   inet 10.12.6.137 peer 10.12.0.1/32 scope global ppp0
      valid_lft forever preferred_lft forever

root@kali:~# ip r s t main
default dev ppp0 scope link
10.12.0.1 dev ppp0 proto kernel scope link src 10.12.6.137
20.20.20.0/24 dev wlan1 proto kernel scope link src 20.20.20.1

  可以看到,已經撥號獲取地址,ping一下 偉大的百度 試試……

root@kali:~# ping -c 3 www.baidu.com
PING www.a.shifen.com (119.75.217.109) 56(84) bytes of data.
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=1 ttl=55 time=4.33 ms
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=2 ttl=55 time=4.18 ms
64 bytes from 119.75.217.109 (119.75.217.109): icmp_seq=3 ttl=55 time=4.06 ms

--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 4.064/4.193/4.333/0.122 ms

  至此,pppoe撥號設定完畢。

  • 無線熱點(AP)設定 
    首先查一下所用的無線網絡卡是否支援AP模式,我這裡的無線網絡卡的標識為phy1, wlan1,可以看到,該網絡卡支援AP模式:

root@kali:~# iw phy1 info | grep -i ap
                * AP
                * AP/VLAN
               Capabilities: 0x172
                * start_ap
                * set_noack_map
                * set_qos_map
                * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                * AP/VLAN
                * #{ AP, mesh point } <= 8,
       HT Capability overrides:
       Device supports AP scan.

  下一步,編輯/etc/hostapd/hostapd.conf檔案:

interface=wlan1 #使用的介面名稱        
ssid=Raspberry_AP #AP的ssid名稱
hw_mode=g   #操作模式為IEEE 802.11g
channel=11      #設定頻段為11
macaddr_acl=0 #啟用mac地址白名單模式
auth_algs=1 #定義802.11鑑權演算法為Shared Key Authentication
ignore_broadcast_ssid=0 #關閉broadcast_ssid功能
wpa=2 #採用wpa2標準
wpa_passphrase=raspberrypi  #密碼
wpa_key_mgmt=WPA-PSK #使用wpa2-psk型別進行加密
wpa_pairwise=TKIP   #加密演算法
rsn_pairwise=CCMP #加密演算法

  編輯完畢之後,利用如下命令啟動hostapd:

root@kali:~# /usr/sbin/hostapd -B -P /run/hostapd.pid 
/etc/hostapd/hostapd.conf

  • 設定DHCP功能 
    編輯/etc/udhcpd.conf檔案,修改如下內容:

# Sample udhcpd configuration file (/etc/udhcpd.conf)

# The start and end of the IP lease block

start           20.20.20.2      #default: 192.168.0.20
end             20.20.20.20     #default: 192.168.0.254


# The interface that udhcpd will use

interface       wlan1           #default: eth0

  設定完畢之後,啟動udhcpd服務:

root@kali:~# udhcpd /etc/udhcpd.conf
  • 開啟NAT轉發功能 
    在Raspberry pi上面開啟NAT功能,以實現路由轉發。

root@kali:~# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
root@kali:~# iptables -t filter -A FORWARD -i ppp0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
root@kali:~# iptables -t filter -A FORWARD -i wlan1 -j ACCEPT

  • 連線測試 
    通過本地windows連線Raspberry_AP,並用本地cygwin嘗試連線 偉大的百度……測試連通成功,至此Raspberry pi已經可以作為家庭路由器進行工作了!

[linuxidc.com]  ping www.baidu.com

正在 Ping www.a.shifen.com [119.75.217.109] 具有 32 位元組的資料:
來自 119.75.217.109 的回復: 位元組=32 時間=5ms TTL=54
來自 119.75.217.109 的回復: 位元組=32 時間=6ms TTL=54
來自 119.75.217.109 的回復: 位元組=32 時間=6ms TTL=54
來自 119.75.217.109 的回復: 位元組=32 時間=11ms TTL=54

119.75.217.109 的 Ping 統計資訊:
   封包: 已傳送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
   最短 = 5ms,最長 = 11ms,平均 = 7ms

Raspberry Pi(樹莓派)上從零開始構建Linux系統(簡稱PiLFS)  http://www.linuxidc.com/Linux/2017-01/139538.htm

Raspberry Pi(樹莓派)上安裝Raspbian(無路由器,無顯示器)  http://www.linuxidc.com/Linux/2017-01/139211.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-05/143763.htm


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