前言
最近入手了一个树莓派 4b,准备当低成本家用服务器,第一个折腾的就是把它做成一个路由器
Raspbian
在树莓派官方系统下,可以直接无脑安装RaspAP来提供 AP 功能
请插上网线,因为无线网卡需要用于 AP
执行一键安装脚本
1
curl -sL https://install.raspap.com | bash
直接在树莓派中的浏览器上访问
http://127.0.0.1
,账号:admin
,密码:secret
简单配置下 AP 设置即可
- 由于一些你懂得的原因,你可能无法直接访问此域名,可能需要配置前置代理,这里就不展开了
Ubuntu
由于 Raspbian 暂时没支持 64 位,很多软件不能用,性能也无法 100% 发挥,这实在不能忍,所以换 Ubuntu 了
而 Ubuntu 下的 RaspAP 在写这篇文章时还没有稳定版,尝试安装了下报了一堆错,还顺便把系统网络整炸了
于是决定自己动手做了😂
安装必要的软件
1
apt-get install dnsmasq hostapd haveged ifupdown2
为无线网卡设置静态 IP
编辑
/etc/network/interfaces
,在最后追加如下内容:1
2
3
4auto wlan0
iface wlan0 inet static
address 192.168.3.1
netmask 24同时,观察此文件如果没有类似下面的内容的话,追加一下:
1
2
3auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp执行下面的命令来让设置生效:
1
2ifdown wlan0
ifup wlan0hostapd 配置(AP)
编辑
/etc/default/hostapd
,修改下面的配置:1
DAEMON_CONF="/etc/hostapd/hostapd.conf"
创建
/etc/hostapd/hostapd.conf
,内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38# base
driver=nl80211
interface=wlan0
country_code=CN
# SSID
ssid=Cat73
hw_mode=a
channel=149
# secret
auth_algs=2
wpa=2
wpa_passphrase=ChangeMe
wpa_pairwise=TKIP CCMP
wpa_key_mgmt=WPA-PSK
# misc
wmm_enabled=1
ieee80211d=0
ieee80211h=0
beacon_int=100
fragm_threshold=2346
rts_threshold=2347
ignore_broadcast_ssid=0
max_num_sta=50
# N
ieee80211n=1
require_ht=1
ht_capab=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
# AC
ieee80211ac=1
require_vht=1
vht_capab=[MAX-AMSDU-3839][SHORT-GI-80]
vht_oper_chwidth=0
vht_oper_centr_freq_seg0_idx=151执行下面的命令启用
hostapd
:1
2
3systemctl unmask hostapd.service
systemctl enable hostapd.service
service hostapd start这时你应该已经可以搜到热点
Cat73
了,密码ChangeMe
,但连接后不会分配 IPdnsmasq 配置(DHCP)
编辑
/etc/dnsmasq.conf
,修改下面的配置项:1
2
3
4
5
6
7# DNS 服务器
server=1.2.4.8
interface=wlan0
# DHCP 池范围、子网掩码、有效期
dhcp-range=192.168.3.100,192.168.3.199,255.255.255.0,12h
# DHCP 下发的 DNS 设置
dhcp-option=6,192.168.3.1执行下面的命令重启
dnsmasq
:1
service dnsmasq restart
这时你再连接会发现,可以正常分配 IP 了
sysctl 开启 IP 包转发
编辑
/etc/sysctl.conf
,在最后追加如下内容:1
2net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1然后执行
sysctl -p
生效设置无线管制区域:
1
iw reg set CN
配置防火墙:
1
2
3iptables -F
iptables -X
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE这时,你应该已经能正常的用这个热点联网了
然后把这个配置保存一下,不然重启之后又不能用了:
1
2
3
4iptables-save > /etc/iptables.up.rules
echo '#!/bin/bash' > /etc/network/if-up.d/iptables
echo '/sbin/iptables-restore < /etc/iptables.up.rules' >> /etc/network/if-up.d/iptables
chmod +x /etc/iptables.up.rules