在启动时设置 ad-hoc 网络

在启动时设置 ad-hoc 网络

我对 Linux 还很陌生;这个项目是我试图了解更多的东西。我以前做过登录脚本,但没有做过启动脚本,所以这是我的问题之一。我的另一个问题是如何让临时网络仅使用终端命令工作,以便我可以制作启动脚本来完成它。我现在在闪存驱动器上运行 Fedora 18,但当我完成配置后,我会将所有内容复制到旧笔记本电脑的硬盘上。 (这个项目的目标是不必购买更好的无线路由器)

我最幸运的是通过在无线网络设置中使用 Gnome 的“用作热点...”按钮,然后更改名称和 WEP 代码(我可以使用其他加密方法吗?) iwconfig 在终端中,但我希望这一切都通过终端命令完成,这样我就可以运行一个脚本来设置它。我想我可以弄清楚如何使用 iptables 自己设置端口转发和垃圾处理,但首先我需要让这台计算机能够无线共享其互联网连接。

答案1

博客点条目有在 ad-hoc 模式下配置无线网络的指南。在第一台机器上,运行以下命令(填写您自己的网络信息):

 ifconfig wlan0 down
 iwconfig wlan0 channel 4
 iwconfig wlan0 mode ad-hoc
 iwconfig wlan0 essid 'fermilevel'
 iwconfig wlan0 key 1234567890
 ifconfig wlan0 192.168.1.1

在第二台机器上:

 ifconfig wlan0 down
 iwconfig  wlan0 channel 4
 iwconfig  wlan0 mode ad-hoc
 iwconfig  wlan0 essid 'fermilevel'
 iwconfig  wlan0 key 1234567890
 ifconfig  wlan0 192.168.1.2

essid两台机器上的 和必须key相同。

答案2

使用 shell 命令创建用于共享有线 Internet 连接的 ad-hoc Wi-Fi 网络应该很简单。虽然我不使用 Fedora,但设置无线网络应该在所有桌面 Linux 系统上都以类似的方式工作。

首先,我们确保设置无线网络所需的所有组件均可用,如果不可用则安装它们:

$ command -v hostapd dnsmasq iptables ip
/usr/sbin/hostapd
/usr/sbin/dnsmasq
/usr/sbin/iptables
/sbin/ip

我们将把所有配置放在一个专用~/wireless-network-setup 目录中,以便我们可以轻松找到它们:

mkdir ~/wireless-network-setup && cd ~/wireless-network-setup

如上所述https://w1.fi/hostapd/:

hostapd 是用于接入点和身份验证服务器的用户空间守护程序。它实现 IEEE 802.11 接入点管理、IEEE 802.1X/WPA/WPA2/EAP 身份验证器、RADIUS 客户端、EAP 服务器和 RADIUS 身份验证服务器。当前版本支持Linux(Host AP、madwifi、基于mac80211的驱动程序)和FreeBSD(net80211)。

把这个放进去hostapd.conf

interface=wlan0

ssid=FREE-Wi-Fi
channel=1

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

FREE-Wi-Fi这将创建具有SSID、WPA2 安全性和密码的 Wi-Fi 网络password

dnsmasq是 DHCP 服务器。它将为 Wi-Fi 网络客户端分配 IP 地址。把这个放进去dnsmasq.conf

interface=wlan0
dhcp-range=10.0.0.3,10.0.0.20,12h

DHCP 服务器无法为其自身提供 IP 地址,因此我们必须 wlan0手动设置接口 IP 地址:

sudo ip addr add 10.0.0.1/16 dev wlan0
sudo ip link set wlan0 up

iptables是一个防火墙工具。我们必须告诉它将流量重定向到eth0

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -P FORWARD ACCEPT

如果您的面向 Internet 的接口未命名,eth0请相应地修改其名称。

这就是整个配置。开始hostapddnsmasq

sudo hostapd -B hostapd.conf
sudo dnsmasq -C dnsmasq.conf

现在您应该能够Free-Wi-Fi从其他设备连接到网络并访问互联网。

请注意,在 Fedora 中,dnsmasq 和 hostapd 可能都带有自定义的 init 启动脚本,您可以使用它们,而不是像那样手动启动它们。

另请注意,如果您使用某些特定硬件,例如 rtl8188eu您将必须使用 forked hostapdhttps://github.com/lwfinger/rtl8188eu

相关内容