如何使用靜態 IP 在手機和筆記型電腦之間設定 adhoc 網絡

如何使用靜態 IP 在手機和筆記型電腦之間設定 adhoc 網絡

我想在運行 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 位址。進行此設定的正確方法是,

  1. 設定 /etc/network/interfaces 來定義 wlan0 的 IP 位址設定
  2. 設定 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

完整的說明可以找到這裡

相關內容