|
本帖最后由 luozs08 于 2019-12-7 12:03 编辑
平台:armbian 5.98,理论上适用于所有的Linux系统
之前发帖求助,没人回应,我只好自己来办了。
首先说一下需求:有线联网(这个可有可无),无线发射信号(2.4G或者5G)。
共享网络一般需要两个网卡,有线、无线均可,其中一个做网关(设置静态地址,如192.168.1.1),并通过桥接或NAT转换到另一个网卡上。
桥接:需要联网,且外部有分配网址的设备,如路由器。(要求较高)
NAT:不需要联网。(要求较低)
回到N1在Armbian环境下开热点这个问题,需要hostapd和dhcp服务器(udhcpd、isc-dhcp-server、dnsmasq都行),其中hostapd默认已经安装好了。
Armbian自带开热点的选项,从armbian-config里就能找到,但采取桥接的办法适用范围较小,且需要有线联网,故不采用。
1.定义hostapd配置文件
nano /etc/default/hostapd
找到DAEMON_CONF="/etc/hostapd/hostapd.conf",把前面的#号删除
2.修改hostapd配置文件
nano /etc/hostapd/hostapd.conf
在bridge=br0前加#号,ssid=这里写wifi名,wpa_passphrase=这里写密码。
如果使用2G热点,其余不改。如果用5G热点,把"hw_mode=g"改为"#hw_mode=a",把”channel=6”改为“channel=149”
3.修改hostapd主程序
nano /etc/init.d/hostapd
对hostapd服务脚本进行编辑,修改内容如下:
并在start)下一行添加如下内容:
sed -i '/\[keyfile\]/a unmanaged-devices=interface-name:wlan0' /etc/NetworkManager/NetworkManager.conf
ip addr add 192.168.1.1/24 dev wlan0
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sleep 2
注:第一行命令为,在/etc/NetworkManager/NetworkManager.conf文件中的[keyfile]字段之后添加内容: unmanaged-devices=interface-name:wlan0,这样该网卡就已经不再受NetworkManager管理了;
第二行为wlan0设置ip地址;
第三行设置ip转发;
第四行设置NAT转换规则。
在stop)下一行添加如下内容:
sed -i '/^unmanaged-devices=interface-name:wlan0/d' /etc/NetworkManager/NetworkManager.conf
echo "0" >/proc/sys/net/ipv4/ip_forward
ip addr del 192.168.1.1/24 dev wlan0
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
sleep 2
在reload)下一行添加如下内容:
sed -i '/^unmanaged-devices=interface-name:wlan0/d' /etc/NetworkManager/NetworkManager.conf
echo "0" >/proc/sys/net/ipv4/ip_forward
ip addr del 192.168.1.1/24 dev wlan0
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
sed -i '/\[keyfile\]/a unmanaged-devices=mac:c8:3a:35:cb:18:e0' /etc/NetworkManager/NetworkManager.conf
ip addr add 192.168.1.1/24 dev wlan0
echo "1" >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sleep 2
使用命令systemctl daemon-reload对脚本文件进行重新配置。
4. 启动hostapd,并设置开机启动
systemctl start hostapd.service
(启动hostapd)
这一步就可以看到搜索到wifi热点了,也可以通过设置静态ip的方式连接。
systemctl enable hostapd.service
(设置开机启动)
5.安装dhcp服务程序(以udhcpd为例)
apt install udhcpd
6.修改dhcp配置文件
nano /etc/udhcpd.conf
删除所有,并填入以下内容
start 192.168.1.2
end 192.168.1.254
opt dns 223.5.5.5
option subnet 255.255.255.0
opt router 192.168.1.1
option dns 233.6.6.6
7.启动udhcpd,并设置开机启动
systemctl start udhcpd.service
systemctl enable udhcpd.service
参考材料:
1. 通过 Hostapd 进行 WIFI 热点共享上网,https://yq.aliyun.com/articles/535546
2.https://wiki.archlinux.org/index.php/Software_access_point
3.https://wiki.archlinux.org/index.php/Internet_sharing
4.https://blog.csdn.net/openswc/article/details/51678946
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|