如何创建非临时wifi热点?


13

我想使用带有有线以太网连接(eth0)的桌面来将我的“ TP-LINK TL-WN722N” USB Wifi适配器(wlan0)用作我的Android连接到的非临时(基础结构模式)访问点。

经过大量搜索之后,我终于找到了一种方法(遍布许多网站),可以满足我的大部分需求...

依存关系:

 hostapd
 bridge-utils

我修改了“ / etc / network / interfaces”

sudo gedit /etc/network/interfaces

包含装有:

# This file describes the network interfaces available on your system
# and how to activate them.

auto lo br0
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual

# Bridge setup

# for dhcp address
iface br0 inet dhcp
bridge_ports eth0 wlan0

# for static ip
# iface br0 inet static
# bridge_ports eth0 wlan0
# adapt with your network settings
# address 192.168.1.250
# netmask 255.255.255.0
# network 192.168.1.0
# broadcast 192.168.1.255
# gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
# dns-nameservers 192.168.1.1
# dns-search localdomain

### Reference ###

# Creating a Wireless Access Point with Debian Linux « Agent Oss (October 31, 2011)
# https://agentoss.wordpress.com/2011/10/31/creating-a-wireless-access-point-with-debian-linux/

我的“ /etc/hostapd/hostapd.conf”(我设法以某种方式自己整理了一下)

sudo gedit /etc/hostapd/hostapd.conf

包含:

 ### Guts ###

 interface=wlan0
 bridge=br0
 driver=nl80211

 ### General ###

 ssid=____________________
 hw_mode=g
 channel=1

 ### Security ###

 macaddr_acl=0
 auth_algs=1
 ignore_broadcast_ssid=0     ## 0 visible # 1 hidden ##
 wpa=2
 wpa_passphrase=____________________
 wpa_key_mgmt=WPA-PSK
 wpa_pairwise=TKIP
 rsn_pairwise=CCMP

 ### Reference ###

 ## Created Tuesday, February 14, 2012 ## Ubuntu 11.10/12.04 ##

 # Hostapd Linux Documentation Page
 # http://linuxwireless.org/en/users/Documentation/hostapd

 # Creating a Network Bridge on Ubuntu (January 16th, 2011)
 # http://webserver.linuxportal.nl/?p=422

(我已经删除了这篇文章的安全性位)

所有这些使我可以打开一个终端并执行:

 sudo hostapd -B /etc/hostapd/hostapd.conf

拥有可以正常运行的访问点,我的Android设备和所有其他WiFi设备都可以连接到该访问点。

除了与其他人共享此方法外,因为此设置的信息非常稀疏;有三个问题可以很好地解决:

  1. 此配置将停用网络管理器及其所有功能。单击它时,它会显示“设备不受管”消息。(不是必需的,但对我来说有点烦)
  2. 此方法可能会不时遇到IP地址问题。
  3. 我必须使用终端打开Wifi。(对我来说不错,但不适合家庭)。 我想出了如果有人需要的话,如何使用gksu和一个简单的脚本制作启动器...

在没有终端的情况下启动wifi / Hostapd

  1. (为什么网络管理员不能开箱即用?)

提前致谢!我希望所有这些都可以帮助别人。我以前从未写过教程,对网络几乎一无所知...

可能与网桥有关-不会破坏网络管理器(以及其他)。

已使用Ubuntu 11.10、12.04测试。

Answers:


5

我不确定如何在不破坏NM的情况下执行此操作,但是可以在启动时自动运行并轻松分配IP地址(至少我使用同一无线卡进行了管理)。这需要软件包hostapddnsmasq(不是dnsmasq-base

/etc/hostapd/hostapd.conf:

interface=wlan0
driver=nl80211 # This works on my TL-WN722N

ssid=______

channel=6
hw_mode=g

auth_algs=1
wpa=3
wpa_passphrase=_____
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP

/ etc / default / hostapd:

# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"

# Additional daemon options to be appended to hostapd command:-
#   -d   show more debug messages (-dd for even more)
#   -K   include key data in debug messages
#   -t   include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
#DAEMON_OPTS=""

/etc/dnsmasq.conf(与维护者版本的差异):

--- /etc/dnsmasq.conf.dpkg-dist 2011-09-20 00:28:30.000000000 +0100
+++ /etc/dnsmasq.conf   2012-02-13 21:03:03.713554612 +0000
@@ -82,7 +82,7 @@
 # specified interfaces (and the loopback) give the name of the
 # interface (eg eth0) here.
 # Repeat the line for more than one interface.
-#interface=
+interface=wlan0
 # Or you can specify which interface _not_ to listen on
 #except-interface=
 # Or which to listen on by address (remember to include 127.0.0.1 if
@@ -133,7 +133,7 @@
 # a lease time. If you have more than one network, you will need to
 # repeat this for each network on which you want to supply DHCP
 # service.
-#dhcp-range=192.168.0.50,192.168.0.150,12h
+dhcp-range=192.168.3.10,192.168.3.49,12h

 # This is an example of a DHCP range where the netmask is given. This
 # is needed for networks we reach the dnsmasq DHCP server via a relay

/ etc / network / interfaces:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
    address 192.168.3.1/24
    broadcast 192.168.3.255

/etc/sysctl.conf补丁(sudo sysctl -p /etc/sysctl.conf更改后运行):

--- sysctl.conf 2012-05-14 18:06:57.514873009 +0100
+++ /etc/sysctl.conf    2012-05-14 18:09:27.122876525 +0100
@@ -25,7 +25,7 @@
 #net.ipv4.tcp_syncookies=1

 # Uncomment the next line to enable packet forwarding for IPv4
-#net.ipv4.ip_forward=1
+net.ipv4.ip_forward=1

 # Uncomment the next line to enable packet forwarding for IPv6
 #  Enabling this option disables Stateless Address Autoconfiguration

最后,在iptables以下位置设置NAT :

sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables.sav

并添加iptables-restore < /etc/iptables.sav上述exit 0/etc/rc.local

该设置主要是通过阅读此方法手册并盯着挠我的头的手册页来实现的。


谢谢!我知道你挠头的意思。这件事肯定让我很难工作。我将尝试您的配置,并让您知道接下来几天的情况。:)
askuhn'2

最近几天,我发现该/etc/network/interfaces文件由于某种原因无法正常工作,并且手机无法正常连接。我现在回到手动为wlan0提供启动时的地址。
dutchie '02

只要我不尝试连接多个设备,我的设置就可以正常工作(当我连接时,有时它可以工作,有时却不能)。我仍在修改,因此,如果我提出更好的建议,请务必发布。:)
askuhn '02

3

大多数故障至少是由于HP笔记本电脑中的Broadcom驱动程序引起的。如果您具有Broadcom网络控制器,请检查您的卡是否与b43(链接1)兼容。如果真是太棒了,请继续阅读。默认的Broadcom sta驱动程序(wl)将不支持接入点模式。因此请采取必要的预防措施将b43安装为在线。使用modprobe打开它。现在,按照说明操作并尝试设置访问点。

我终于有了hostapd的支持,最有趣的部分是我的诺基亚手机可以检测到如此创建的wifi(它可以检测到任何东西,无论是否存在即席)。现在,我必须处理您的文件,看看是否可以检测到我的剧本。

  1. http://linuxwireless.org/en/users/Drivers/b43
  2. http://pclinuxos.com/forum/index.php?topic=91991.0

当我在设备管理器中未管理设备时,此方法也起作用。askubuntu.com/questions/71159/...
Giridaran马尼万南

很高兴这对您有所帮助!我花了很长时间才弄清楚我需要什么才能对我有用。感谢有关网络管理器的链接,我一定会尝试一下:)
askuhn 2012年

而且有效!令人惊奇的部分是eth0通过这种方法不必是静态的。获得的IP将用于所有eth0,网桥和您希望连接的设备!
Giridaran Manivannan '04年

在最后一段中,您是说要侦查剧本吗?
tshepang 2013年

0

以上是出色的答案,但是,不仅仅一个或两个芯片组不支持hostapd或AP模式。

这是查看驱动程序和硬件是否支持AP模式的方法:

sudo iw list | less

查找“支持的接口模式”部分。如果不包含“ AP”,则说明您不走运。如果确实显示“ AP”,则继续执行其他海报已经提供的许多良好说明!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.