我对 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
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
请相应地修改其名称。
这就是整个配置。开始hostapd
并dnsmasq
:
sudo hostapd -B hostapd.conf
sudo dnsmasq -C dnsmasq.conf
现在您应该能够Free-Wi-Fi
从其他设备连接到网络并访问互联网。
请注意,在 Fedora 中,dnsmasq 和 hostapd 可能都带有自定义的 init 启动脚本,您可以使用它们,而不是像那样手动启动它们。
另请注意,如果您使用某些特定硬件,例如
rtl8188eu
您将必须使用 forked hostapd
:
https://github.com/lwfinger/rtl8188eu。