
我想在運行 debian wheezy 的筆記型電腦與 Android Nexus 7 平板電腦之間建立臨時連接。我所做的就是hostapd
用這種配置安裝在我的筆記型電腦上。
interface=wlan0
driver=nl80211
ssid=myapppp
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=passpass
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
現在我可以看到 Android WiFi 設定中列出的接入點。我在 Nexus 7 設定中給出了靜態 IP 並給出了連接,它就連接上了。我在Nexus 7中給的設定是
IP : 192.168.1.3
Gateway: 192.168.1.1
Network prefix length: 24
DNS: 8.8.8.8
現在我如何與我的筆記型電腦通訊?我還需要提供我的筆記型電腦IP嗎?我應該使用哪些設定?
我的ifconfig
給予
**mon.wlan0 Link encap:UNSPEC HWaddr D0-DF-9A-EC-E6-09-3A-30-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)**
wlan0 Link encap:Ethernet HWaddr d0:df:9a:ec:e6:09
inet addr:10.0.3.12 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::d2df:9aff:feec:e609/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:95004 errors:0 dropped:0 overruns:0 frame:0
TX packets:78421 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:57369956 (54.7 MiB) TX bytes:10218977 (9.7 MiB)
答案1
顯然,您正在嘗試同時做兩件可能完全不相容的事情,或者只有在經過一些工作後才可能實現。
您的 wlan0 卡分配有一個專用 IP,這表示您正在使用它連接到 wifi 網路。同時,您也安裝了 hostapd,它將虛擬介面 (vif) mon-wlan0(在您的實體設備 phy0 上)置於工作站模式。這是對的嗎?
你想幹什麼?您有兩個選擇:
1)配置一切,讓你的手機可以存取電腦,而電腦和手機都無法上網:
2) 反之亦然,設定您的電腦,讓手機和電腦都可以透過同一個 wifi 卡存取網路。
第一件事很容易安排。
sudo service network-manager stop
sudo sysctl -w net.ipv4.ip_forward=1
sudo ifconfig wlan0 up 192.168.1.1
現在就可以走了。
或許可以安排第二件事(即使用相同的wifi卡,連接到現有的無線網路並同時向其他元件提供wifi存取點)。基本上,這取決於您的 wifi 卡的屬性。如果這是您希望完成的任務,則必須發佈以下輸出
sudo iw list
乾杯。
編輯:再想一想,您的 ifi 卡可能在任何情況下都不允許使用 hostapd。那麼您能發布最後一個指令的輸出嗎?
答案2
您需要位於同一網路上,但有兩個網路:10.0.3.x 和 192.168.1.x。
更改其中一項以與另一項一致。
答案3
看來您沒有正確定義 Nexus 上的 IP 位址。使用 IP 位址,如 10.0.3.14 或 10.0.3.0 範圍內的其他位址,閘道為 10.0.3.12。
理想情況下,您應該使用 dhcp 伺服器為客戶端指派 IP 位址。進行此設定的正確方法是,
- 設定 /etc/network/interfaces 來定義 wlan0 的 IP 位址設定
- 設定 dhcp 伺服器(如 udhcpd 或 isc-dhcp-server),為連接的設備分配 IP 位址。
此外,假設您希望與正在連接的裝置共用筆記型電腦的網路連接,您還應該啟用資料包轉送。若要啟用封包轉發,請取消註解 /etc/sysctl.conf 中的下列行
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
並允許通過 iptables 的流量
$ sudo iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
完整的說明可以找到這裡