捣鼓了这么久,总算是实现在树莓派3b上开启支持ipv4和ipv6的热点,真是不容易,网上各种傻x桥接,根本跑不起来,看着都气人。
环境
我用的是ubuntu官方的ubuntu18 server,但是能安装dnsmasq
和hostapd
的应该都通用
方法
安装
dnsmasq
,hostapd
配置网卡
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: b8:27:eb:a6:cc:93
set-name: eth0
wlan0:
dhcp4: no
dhcp6: no
optional: true
addresses: [192.168.0.1/24, "fd00:fd:fd:fd::1/60"]
nameservers:
addresses: [1.0.0.1]这里我是ubuntu18,所以用的是
netplan
。之前的版本,请自行百度设置静态地址。如果你知道上下的地址关系,你可以随便改,不然就别改。配置
hostapd
修改/etc/hostapd/hostapd.conf
1
2
3
4
5
6
7
8interface=wlan0
channel=10
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
wpa_passphrase=12345678 #热点密码
ssid=pi #热点名称修改
/etc/default/hostapd
1
DAEMON_CONF="/etc/hostapd/hostapd.conf"
配置
dnsmasq
修改/etc/dnsmasq.conf
1
2
3
4interface=wlan0
enable-ra
dhcp-range=192.168.0.2,192.168.0.255,255.255.255.0,24h
dhcp-range=fd00:fd:fd:fd::2,fd00:fd:fd:fd::10,ra-names,24h配置
/etc/sysctl.conf
1
2net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1重启服务
1
2sudo service hostapd restart
sudo service dnsmasq restart这时应该可以连上wifi,并且获取ipv4和v6的地址了
配置v4防火墙
1
2
3sudo iptables -t nat -APOSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT这时ipv4应该就可以上网了
配置v6防火墙
1
sudo ip6tables -t nat -A POSTROUTING -s fd00:fd:fd:fd::/64 -o eth0 -j MASQUERADE
这时,ipv6也可以上网了
开机自启
按照上面的方法,你已经可以上ipv4和ipv6了,但是每次重启都要执行命令。
修改/etc/rc.local
1 | iptables -t nat -APOSTROUTING -o eth0 -j MASQUERADE |