5

Orange Pi Zero创建无线热点

 2 years ago
source link: https://xuranus.github.io/2022/05/22/Orange-Pi-Zero%E5%88%9B%E5%BB%BA%E6%97%A0%E7%BA%BF%E7%83%AD%E7%82%B9/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

想从已有的一个WiFi热点搭建另一个NAT WiFi热点,首先想到的解决方案就是用树莓派hostapd搭建个低功耗的路由器。但是我树莓派丢在了老家当机顶盒,打开淘宝想买个新的被最近飞涨的价格吓到了,于是打算尝试国产山寨开发板Orange Pi

  • 型号:Orange Pi Zero
1.jpg

用Orange Pi Zero内置WiFi网卡,以及额外的一个USB WiFi网卡来实现创建NAT WiFi子网。

安装Armbian

和树莓派烧录系统的流程一样,这里从Orange Pi官方网站上选择要安装的系统镜像下载,然后烧录到SD卡中。有Android,Ubuntu,Debian以及Armbian可选,据说Armbian比较稳定,于是选择下载Armbian

完成后插入SD卡启动。Armbian提供的镜像默认开启了sshd服务,直接接上以太网SSH登录过去,初始用户root、密码1234。初次登录会有脚本引导修改密码、创建用户、设置shell和时区。

国内Armbian可以使用USTC的debian源:

deb http://mirrors.ustc.edu.cn/debian buster main contrib non-free
deb http://mirrors.ustc.edu.cn/debian buster-updates main contrib non-free
deb http://mirrors.ustc.edu.cn/debian buster-backports main contrib non-free
deb http://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free

ip link可以看到现在有四个网卡:

  • lo:本地loopback
  • eth0:以太网
  • wlan0:内置WiFi网卡
  • wlx38a28c92017a:USB WiFi网卡
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000
    link/ether 02:81:14:8c:e3:dc brd ff:ff:ff:ff:ff:ff
    3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 3e:bb:30:9a:52:52 brd ff:ff:ff:ff:ff:ff
    4: wlx38a28c92017a: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 38:a2:8c:92:01:7a brd ff:ff:ff:ff:ff:ff

使用armbian-config可以进行系统配置(常用第三方包,配置host,配置网络)

  1. 安装hostapdisc-dhcp-server
    apt install hostapd isc-dhcp-server
    systemctl disable isc-dhcp-server
    systemctl stop isc-dhcp-server
    systemctl disable hostapd
    systemctl stop hostapd
    hostapd用于创建热点,isc-dhcp-server用于提供DHCP服务。

编辑/etc/hostapd.conf

#
# armbian hostapd configuration example
#
# nl80211 mode
#

ssid=Orange
interface=wlan0
hw_mode=g
channel=5
#bridge=br0
driver=nl80211

logger_syslog=0
logger_syslog_level=0
wmm_enabled=1
wpa=2
preamble=1

wpa_passphrase=123456
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0

# controlling enabled
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0


注释掉bridge=br0,修改ssidwpa_passphrase为SSID和密码。

编辑/etc/default/hostapd,将DAEMON_CONF=""取消注释,改为:DAEMON_CONF="/etc/hostapd/hostapd.conf"

修改/etc/dhcp/dhcpd.conf,末尾加上:

subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.2 192.168.100.254; # DHCP range
option domain-name-servers 223.5.5.5, 223.6.6.6; # Primary/Secondary DNS
option routers 192.168.100.1; # Router Addr
}


配置子网192.168.100.0/24,DHCP范围192.168/100.2 ~ 192.168/100.254,配置主/备DNS为阿里DNS,配置路由192.168.100.1

  1. 关闭wlan0网卡。Orange Pi内置的网卡默认是wlan0,网卡不能同时用作WiFi接入网卡和AP网卡,在开启AP前需要先关闭wlan0,Armbian提供了网络管理工具nmcli,关闭网卡:nmcli dev disconnect wlan0

  2. 启动DHCP服务isc-dhcp-server前需要将wlan0的IP绑定先前的路由地址192.168.100.1ifconfig wlan0 192.168.100.1 netmask 255.255.255.0,然后启动DHCP:systemctl start isc-dhcp-server

  3. 启动hostapd:systemctl start hostapd。此时已经可以连上名称为Orange的热点了,只是要上网还需要开启IP转发。

  4. 开启IP转发:

    echo 1 > /proc/sys/net/ipv4/ip_forward 
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o wlx38a28c92017a -j MASQUERADE

    其中eth0是以太网卡,wlx38a28c92017a改成外置的USB网卡名。Orange Pi此时可以通过以太网接入互联网,也可以通过额外的USB WiFi网卡接入。用nmtui命令可以在TUI中配置WiFi连接。

  5. 开机启动:

创建脚本/root/ap.sh

nmcli dev disconnect wlan0

ifconfig wlan0 192.168.100.1 netmask 255.255.255.0

rm -rf /var/run/dhcpd.pid
systemctl start isc-dhcp-server

systemctl start hostapd

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o wlx38a28c92017a -j MASQUERADE


/etc/rc.local中添加启动执行:

# enable AP
sh /root/ap.sh

实际使用略有延迟,速度达到直连的80%。使用一小时候感觉到Orange Pi的发热明显比树莓派高出不少,建议配合风扇和散热片使用。

2.jpg

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK