文章目录
- 安装必要软件
- hostapd
- dnsmasq
- 配置
- 解除禁用hostapd
- 配置hostapd开机启动
- 配置DHCP服务
- 配置热点信息
- 配置路由转发
- PPPOE拨号上网
这篇文章主要参考树莓派的
官方教程,之前看了其它的教程,都不能成功。看来树莓派的Ubuntu和一般的Ubuntu是有些区别的。这篇文章的目的就是记录一下,以防以后自己忘记了。
安装必要软件
装程序之前最好更新一下软件源列表
sudo apt-get update
hostapd
sudo apt install hostapd
这个是开启热点用的主要程序,用它来通过无线网卡发射信号
dnsmasq
sudo apt install dnsmasq
这个用作热点的DHCP服务和DNS服务
配置
首先启动hostapd
解除禁用hostapd
sudo systemctl unmask hostapd
配置hostapd开机启动
sudo systemctl enable hostapd
配置DHCP服务
修改配置文件/etc/dhcpcd.conf
interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant
这里把名字叫wlan0
的接口设置了静态IP地址192.168.4,.1
,同时/24
表明子网掩码是255.255.255.0
装好了dnsmasq
之后会生成一个/etc/dnsmasq.conf
配置文件,可以直接覆盖,或者把原来的保存起来,新建一个同名的文件进行配置
内容是
# 在wlan0接口上服务
interface=wlan0
# DHCP的地址池,这里2-20,也就是同时19个设备连接热点
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
# DNS的域名
domain=wlan
# 这个路由器的别名(连接热点的设备可以通过gw.wlan来访问树莓派)
address=/gw.wlan/192.168.4.1
配置热点信息
配置hostapd
,修改配置文件/etc/hostapd/hostapd.conf
country_code=CN
interface=wlan0
ssid=热点名字
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=热点密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
5Ghz
interface=wlan0
driver=nl80211
hw_mode=a
ieee80211n=1
ieee80211ac=1
ieee80211d=1
ieee80211h=1
require_ht=1
require_vht=1
wmm_enabled=1
country_code=US
vht_oper_chwidth=1
channel=149
vht_oper_centr_freq_seg0_idx=155
ht_capab=[HT40-][HT40+][SHORT-GI-40][DSSS_CCK-40]
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ssid=热点名字
wpa_passphrase=热点密码
Nintendo switch 需要 channel 44 才能连上5Ghz
interface=wlan0
driver=nl80211
hw_mode=a
channel=44
auth_algs=1
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ssid=热点名字
wpa_passphrase=热点密码
配置好以上信息,理论上树莓派就能够开启热点并让设备连接了
树莓派默认是禁用无线网卡的,所以最好确保解除禁用无线网卡
sudo rfkill unblock wlan
可以通过以下命令重启树莓派,检查热点是否正常开启
sudo systemctl reboot
配置路由转发
首先要确保系统允许路由转发
配置文件/etc/sysctl.conf
把下面的那一行取消注释,或者直接添加
net.ipv4.ip_forward=1
完成后,执行sudo sysctl -p
来让配置生效。
允许路由转发后,通过iptables
来配置路由转发
执行以下命令
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
这个命令会将从接口eth0
的出去的请求的源IP地址替换为树莓派在公网上的IP地址。将进来的响应的目标IP地址替换成原请求的原IP地址。也就是说这一条是热点能够连接互联网的关键。
iptables
规则在重启后会被清除,想要保存规则的话,可以用 iptables-persistent
sudo apt-get install iptables-persistent
注意:如果是拨号上网的话,配置好下面的再执行这个命令,其中的eth0
改成ppp0
PPPOE拨号上网
如果不需要拨号上网的话,上面的配置就可以正常使用热点了,但是拨号上网需要额外的配置
首先安装拨号上网需要的软件
sudo apt-get install pppoe pppoeconf pppstatus
然后配置上网账号
sudo pppoeconf
全选yes
,中间会要输入账号密码
配置好之后ifconfig
命令会多一个ppp0
接口
最后将ppp0
添加到系统的默认路由表中
sudo route add default ppp0
结束。