我終於設法使用 hostapd 和 dnsmasq 在我的 WiFi 卡上設定了一個接入點。我是按照這個順序做的:
1)設定hostapd和dnsmasq:
nano /etc/hostapd/hostapd.conf
nano /etc/dnsmasq.conf
hostapd.conf 的內容:
介面=wlan1mon 驅動程式=nl80211 ssid=o2wlan69 hw_模式=g 通道=6 macaddr_acl=0 ignore_broadcast_ssid=0
dnsmasq.conf 的內容:
介面=wlan1mon dhcp-範圍=192.168.1.2,192.168.1.30,255.255.255.0,12h dhcp-選項=3,192.168.1.1 dhcp-選項=6,192.168.1.1 伺服器=8.8.8.8 日誌查詢 記錄 dhcp 監聽位址=127.0.0.1
2)這是四行中的兩行,我不知道它們到底是做什麼的:
ifconfig wlan1mon up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
3)啟動服務:
dnsmasq -C /etc/dnsmasq.conf -d
hostapd /etc/hostapd/hostapd.conf
4)這是第3行和第4行,我不知道它們到底是做什麼的:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE iptables --append FORWARD --in-interface wlan1mon -j ACCEPT
我知道 iptables 用於更改阻止或重新路由進出設備的流量,我知道您可以使用 ifconfig 為網路設備分配網路遮罩和 IP 位址。我還知道網路遮罩如何影響本地 IP 範圍,但我不清楚這些命令如何幫助我的存取點在 wlan1mon 和 eth0 介面之間共用網路連線。另外,為什麼我必須執行ifconfig和route命令?
答案1
ifconfig wlan1mon up 192.168.1.1 netmask 255.255.255.0
此命令告訴您的電腦啟用網路設備 wlan1mon(您的 WiFi 介面)並為其指派 IP 位址 192.168.1.1(子網路為 192.168.1.0/24),以便它可以傳送/接收網路封包。
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
此命令告訴計算機發送在 192.168.1.1/24 到 192.168.1.1 子網中具有收件人的每個包(我不確定此命令是否應該在轉發的計算機上運行,因為僅需要路由就我而言,連接客戶端,並且由於您已經設定了DHCP 伺服器,因此應該在這些客戶端上自動新增此路由。
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
此指令指示電腦正確「偽裝」傳入/傳出包的 IP(氮網路A地址時間翻譯) 在 eth0 上的 POSTROUTING 鏈中。基本上,它將電腦的 IP 位址分配給每個傳出資料包(以便外部電腦能夠發送回應),並為網路內的相應主機重新定址傳入資料包。
iptables --append FORWARD --in-interface wlan1mon -j ACCEPT
此命令允許首先轉發來自 wlan1mon 的傳入資料包。這意味著,即使收件者是其他人,轉發電腦也可以處理和轉發這些網路包。