如何设置我的 WiFi 以用作 Ubuntu Server 上的无线接入点?
我有一个本地 Ubuntu 服务器,它有一个无线网卡(802.11a/b/g/n),我真的想将它设置为 802.11n 接入点,因为我的普通接入点不支持 N。
它还需要作为交换机工作,这样我才能连接并让 DHPC 通行。
编辑:我不认为网络管理器是一个好的解决方案,因为它依赖于很多 X11 包,而且我不希望在服务器上使用它。
答案1
我发现了一个好帖子。它应该可以在 Ubuntu 10.04 中毫无问题地运行。此外,它是 CLI,因此根本不需要任何 X 库。:)
答案2
单击面板中的 NetworkManager 图标,然后选择“创建无线网络……”您应该能够将其设置为“系统”(而不是“用户”)连接。
您说这是在服务器上,所以也许您只通过 SSH 访问服务器。在这种情况下,您可以尝试一些远程 X 连接;或者尝试通过命令行配置 NetworkManager,这应该是可行的,尽管并不简单。
答案3
答案4
这是一篇相当不错的文章(虽然有点过时[如果 2006 已经过时了]),其中概述了如何从命令行执行此操作。
http://www.linux.com/archive/feed/55617
假设您的无线设备工作正常,您可能可以直接进入大约一半的桥接部分。
Wi-Fi 保护访问版本 2 (WPA2) 正在成为无线网络安全的事实上的标准,也是所有经Wi-Fi联盟。我们都知道其前身 WEP 的安全漏洞;这次他们做对了。以下是如何在 Linux 主机上实施 WPA2 协议并为您的网络创建安全的无线接入点 (WAP)。
大多数消费级商用 WAP 的运行方式都很简单:它们在有线(以太网)网络接口和无线网络接口之间建立桥梁。这正是我们要做的。WAP 部分将由hostapd守护进程,因此您必须选择它支持的无线接口。受支持的 NIC 包括 Prism 2/2.5/3、Atheros ar521x 和 Prism GT/Duette/Indigo 芯片组;hostapd 主页上提供了列表,以及每个芯片组的 Linux 驱动程序链接。我的 WAP 上安装了基于 Atheros AR5212 的 PCI 卡,该卡受 hostapd 支持。虽然任何 Pentium(或更新)系统都可以使用,但某些 PCI 无线卡需要 PCI 2.2 才能运行,因此请务必在购买前检查系统的主板规格。您还需要一个 Linux 支持的以太网接口,用于将您的 WAP 连接到 LAN;大多数板载接口都可以正常工作。
我的设置基于 Debian Testing (Etch),但任何具有最新 2.6 内核的 GNU/Linux 发行版都可以使用。内核必须支持 802.1d 以太网桥接 (CONFIG_BRIDGE) 和无线 LAN (CONFIG_NET_RADIO)。大多数默认的库存内核都启用了这些功能,但如果您更喜欢构建自己的内核,请确保包含这些选项。除了 hostapd 之外,您需要安装的其他软件包只有桥梁工具和无线工具。主要的 GNU/Linux 发行版都为所有这些程序提供了二进制包,但是如果您更喜欢从源代码构建它们,您可以在其主页上找到更多信息。
在将两个接口桥接在一起之前,我们必须将无线接口(在我的情况下是 ath0;请调整它以匹配您的设置)置于 hostap 或 Master 模式。通常这就像运行 iwconfig ath0 mode Master 一样简单,但由于 Linux 中的 wlan 支持尚未标准化,因此某些驱动程序可能需要额外的配置。如果您有基于 Atheros 的接口,您还需要在命令wlanconfig ath0 destroy; wlanconfig ath0 create wlandev wifi0 wlanmode ap
之前运行以下命令: iwconfig
。之后,运行iwconfig ath0
将返回mode:Master
,等等。
现在让我们创建网桥。我们假设以太网接口是 eth0:
ifconfig eth0 0.0.0.0 up
ifconfig ath0 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 ath0
为了停止桥梁,你应该运行:
ifconfig br0 down
ifconfig eth0 0.0.0.0 down
ifconfig ath0 0.0.0.0 down
brctl delif br0 eth0
brctl delif br0 ath0
brctl delbr br0
如果您想从网络访问 WAP 主机(例如使用 SSH),则可以选择为 br0 接口指定一个 IP 地址。每个发行版都提供自己的网络配置方式;如果您使用 Debian(或任何基于 Debian 的发行版,例如 Ubuntu),只需将以下内容添加到文件即可完成所有前面的命令/etc/network/interfaces
:
auto ath0 br0
iface ath0 inet manual
pre-up wlanconfig ath0 destroy
pre-up wlanconfig ath0 create wlandev wifi0 wlanmode ap
post-down wlanconfig ath0 destroy
wireless-mode master
iface br0 inet manual
bridge_ports eth0 ath0
请注意,它ifupdown
会自动处理 eth0,因此您不需要在 中为其添加单独的节/etc/network/interfaces
。要验证网桥是否配置正确,请运行brctl show
。您应该会得到类似这样的结果:
bridge name bridge id STP enabled interfaces
br0 8000.00032f2481f0 no ath0
eth0
在开始使用 hostapd 之前,我们需要一个 WPA2 密码。与所有密码一样,密码应该是随机的,因此很难猜到。获取随机密码的一个好方法是访问Gibson Research Corp. 的超高安全性密码生成器并使用它创建的第三个密码——由 63 个随机字母数字字符(az、AZ、0-9)组成的密码。包含非字母数字 ASCII 字符(例如 !、@ 等)的密码可能很诱人,但有些客户端(即 Windows XP)似乎不喜欢它们。
现在创建一个名为的新文本文件/etc/hostapd/wpa_psk
并粘贴您的密码:
00:00:00:00:00:00 PASSPHRASE
第一部分带有零,表示“匹配所有 MAC 地址”,它确实起到了这一作用。您还可以为每个客户端使用不同的密码,方法是将每个客户端的 MAC 地址及其密码附加到文件的新行中。通过运行 确保只有 root 才能访问该文件chmod 600 /etc/hostapd/wpa_psk
。
现在创建 hostapd 主配置文件的备份,/etc/hostapd/hostapd.conf
并通过运行将其作为参考mv /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
。创建一个新的 hostapd.conf 文件并将以下几行粘贴到其中:
interface=ath0
bridge=br0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=My_Secure_WLAN
#macaddr_acl=1
#accept_mac_file=/etc/hostapd/accept
auth_algs=3
eapol_key_index_workaround=0
eap_server=0
wpa=3
wpa_psk_file=/etc/hostapd/wpa_psk
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
stakey=0
将斜体部分替换为与您的设置相匹配的信息。如果您希望仅允许特定客户端连接,请从上面两行中删除 # 字符,并将这些客户端的 MAC 地址复制到/etc/hostapd/accept
,并使此文件仅由 root 访问(chmod 600)。有关所用选项的更多信息,请阅读您之前创建的备份文件(hostapd.conf.orig)中的注释。
启动 hostapd 守护进程 ( /etc/init.d/hostapd start
) 并检查/var/log/daemon.log
其是否正常工作。如果守护进程未启动,请将调试级别(option debug=
在 hostapd.conf 中)增加到 4 并重试。
现在,如果您从客户端扫描可用的无线网络,您应该会看到您的 ESSID。要从 Linux 客户端连接到 WAP,您需要安装wpa_supplicant并创建一个配置文件 wpa_supplicant.conf (在 Debian 中,安装在/etc/wpa_supplicant/
),如下所示:
update_config=1
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="My_Secure_WLAN"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk="PASSPHRASE"
priority=5
}
再次替换斜体部分以匹配您的设置并运行wpa_supplicant -i eth1 -D wext -c /etc/wpa_supplicant/wpa_supplicant.conf
(替换eth1
为您的 wlan 接口名称,并将 wext 替换为您的卡的适当驱动程序;运行 wpa_supplicant 而不使用任何选项以获取更多信息)。此命令在前台启动 wpa_supplicant 并尝试连接到 WAP。如果输出如下所示,则表示您已全部设置完毕:
Trying to associate with 00:11:22:33:44:55 (SSID='My_Secure_WLAN' freq=0 MHz)
Associated with 00:11:22:33:44:55
WPA: Key negotiation completed with 00:11:22:33:44:55 [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:22:33:44:55 completed (auth) [id=0 id_str=]
为您的无线接口提供一个静态 IP 地址(或运行 DHCP 客户端)并尝试 ping 您的 LAN 内的主机以验证连接是否正常。
恭喜,您刚刚为自己构建了一个高度可定制的无线接入点。虽然此设置非常适合家庭或小型办公室使用,但您需要在企业中使用更强大的功能,使用 RADIUS 服务器进行身份验证,甚至更好的是使用 VPN。