在linux下建立无线AP的方法有多种,不同的发行版也会在系统内置一些基本的功能来方便的建立无线AP。下面介绍两种方法来在系统中建立无线AP。
一、ubuntu下使用系统自带的工具建立无线热点的方法。
具体步骤如下:
1. 点击有上角网络标志,点开编辑链接。
2. 选择 WiFi ,添加一个网络。
3.设置这个网络 做如下编辑:
- 编辑wifi的名字:SSID,
- 选择 Hotspot (热点)模式.
- 在 Wifi Security(wifi安全性) 页, 选择 WPA & WPA2 Personal(WPA & WPA2 个人)选项并输入你要创建的wifi密码,8位以上.
- 在 IPv4 设置页面, 选择 “Share to other computers”(与其他计算机共享)
4. 点击 save ,然后再点击右上角网络选项中的 Connect to Hidden Wi-Fi network (连接到隐藏的WIFI网络),在连接选择框里,选择你刚刚创建的网络。
5.完成,你可以用手机等连接了
最后,如果出现“Connection ‘xxx’ is not available on the device wlp3s0 at this time”问题
主要因为你使用了Broadcom Corporation网卡驱动,换过来就好了。 解决方案:系统设置–>软件和更新–>附加驱动–>将Broadcom Corporation….那一项选择“不使用设备”–>应用更改–>重新启动。
此教程出处:ubuntu 16.04 设置位wifi热点 方法(手机可链接)亲测可用
如果不能连接或者出现问题请参考:ubunt14.04无线AP设置方法
其它系统下如何用系统自带工具建立AP,请自行百度。
二、这种方法比较烦琐一些,但是它能让你透析很多的网络知识,并且在调试各个网络配置方面进入到细微处。
原理上一共分三步:
第一步、使用hostapd建独立的无线AP热点。
第二步、建立dhcp服务器,使连接到AP热点的设备能自动获得IP地址。
第三步、开启NAT功能让AP能借助本地网络连接外网。
1、使用hostapd建立热点。
没有hostapd就安装一下:(ubuntu等debian类系统命令,其它系统命令自查)
sudo apt install hostapd
使用如下命令编辑配置文件
gedit /etc/hostapd/hostapd.conf
输入如下内容:
driver=nl80211
ssid=37lab #这里是你建立ap的名称,自己起一个。不要用汉字最好。
channel=10
interface=wlan0 #这个地方不一定是wlan0,你要看你一下你系统里你的无线网卡叫什么名wpa=3
wpa_passphrase=12345678 #这里输入你要建立的无线网的连接密码。8位及以上。
wpa_key_mgmt=WPA-PSK #区分大小写
wpa_pairwise=TKIP #区分大小写
保存并退出编辑。
使用如下命令来启动建立的热点。
sudo hostapd /etc/hostapd/hostapd.conf -B(-B用于后台运行,可不加)
如果启动失败大部分原因是因为此时无线网卡被NetworkManager接管了。 编辑一下/etc/netword/interfaces文件,在其中加入无线网卡的配置来取消NetworkManager的管理即可。
在/etc/NetworkManager/NetworkManager.conf
中使用下述配置,你可以快速轻松地按照MAC或者接口名忽略设备。
[keyfile]
unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1E:65:30:D1:C4;interface-name:eth0
填入上述内容后,使用命令sudo systemctl restart NetworkManager来重启NetworkManager服务。
2、建立dhcp服务器,来为连接到AP的设备来自动分配IP地址。
使用如下命令安装dhcp服务程序
sudo apt install isc-dhcp-server
建立如下配置文件:dhcpd_my.conf
authoritative;
subnet 10.5.5.0 netmask 255.255.255.0 {
range 10.5.5.3 10.5.5.37; //这个范围表示你可以连接的终端数
option domain-name-servers 8.8.8.8; //这里填DNS服务器地址,可以是你家路由器的IP。
option domain-name "internal.example.org";
option routers 10.5.5.1; //设置无线网卡的IP地址
option broadcast-address 10.5.5.255;
default-lease-time 600;
max-lease-time 7200;
}
保存退出。
用如下命令为无线网卡添加地址。
sudo ip addr add 10.5.5.1/24 dev wlan0 (不一定wlan0,看你的无线网卡名称)
用如下命令启动DHCP服务
sudo dhcpd -cf ./dhcpd_my.conf -d
如果有错误一般是多了一个/var/run/dhcpd.pid文件,把这个文件用rm命令删除即可。
3、开启NAT功能和路由转发(eth0是你能连外网的网卡,wlan0是你建立AP的网卡,根据自己情况调整)
使用如下五条命令开启路由转发和NAT
sudo sysctl -w net.ipv4.ip_forward=1
加上如下几条规则:
sudo iptables -P FORWARD DROP
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state STABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
也可直接只使用一条:
sudo iptables -t nat -A POSTROUTING -s 10.5.5.1/24 -o eth0 -j MASQUERADE
补充一点:
1、我们可以使用dnsmasq来做dhcp服务器,安装dnsmasq然后使用如下命令开启dhcp服务:
sudo dnsmasq -i wlan0 --dhcp-range=10.5.5.100,10.5.5.200,2h #--dhcp-range选项除了指定ip分配范围,更是一个打开dhcp功能的开关!2h表示ip租期为2小时
执行后显示(必须加上-d选项才能看到)
2、使用nftables的同学可以这样设置:
建立规则文件nftable_nat文件内容如下:
table ip nat {
chain prerouting {
type nat hook prerouting priority 0;
}
chain postrouting {
type nat hook postrouting priority 0;
oifname "eth0" masquerade
}
}
然后使用nft -f nftable_nat命令导入即实现的源路由nat。如果使用命令建立的话命令如下;
nft add table nat
nft add chain nat prerouting { type nat hook prerouting priority 0 \; }
nft add chain nat postrouting { type nat hook postrouting priority 0 \; }
nft add rule nat postrouting oifname "eth0" masquerade
注意刚安装的nftables程序要重启才能加载nat链。
本站原创文章,作者:小 编,如若转载,请注明出处:https://www.mzbky.com/1000.html