EDUP-AC1620 开热点和软路由配置

前言

因为 NAS 搭建之旅 —— 软件篇 太长了,所以把其中 WIFI 驱动安装和软路由配置的部分拆出来,单独成一篇。

驱动安装

Linux 驱动的坑想必踩过的人都懂,NAS 的无线网卡驱动也是把我折腾得半死。先后尝试了旧笔记本的无线网卡和小度 Wifi,拼尽全力也开不了热点模式。

然后,我淘了个号称支持 Linux 的 USB 无线网卡 EDUP-AC1620,按照淘宝卖家给的驱动包,尝试了一遍又一遍,期间也在网上搜寻了很多可能的驱动,踩了无数的坑,终于在一个燥热的下午,NAS 成功识别到无线网卡 & 开启了热点模式。

驱动包我已经放在 GitHub 上,有需要的请戳 HunterXuan/rtl8812AU_8821AU_linux,可以参考以下操作进行安装。

1
2
3
4
5
6
7
8
9
# 下载安装包
git clone https://github.com/HunterXuan/rtl8812AU_8821AU_linux.git
# 进入安装包目录
cd rtl8812AU_8821AU_linux
# 给安装脚本可执行权限
chmod +x install.sh
# 运行安装脚本
# 脚本会自动编译和安装驱动
./install.sh

软路由

SoftAP 模式

要想使用软路由,首先得能够开启热点,即使无线网卡工作在 SoftAP 模式下。可以利用安装包里提供的 wpa_supplicant_hostapd 轻松实现。

  1. 进入 wpa_supplicant_hostapd 目录,根据自己情况选择安装包解压,我选择的是 wpa_supplicant_hostapd-0.8_rtw_r7475.20130812.tar.gz
  2. 进入解压目录,编译安装完成后,会得到一个名为 hostapd 的可执行程序
  3. 创建 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
##### hostapd configuration file ##############################################
# 主要修改这里的配置
# interface: 无线网卡名 通常情况下是 wlan0
# ssid: Wifi 名称
# wpa_passphrase: Wifi 密码
interface=enp0s29u1u6
ctrl_interface=/var/run/hostapd
ssid=WifiName
channel=36
wpa=2
wpa_passphrase=WifiPassword
#bridge=br0


##### Wi-Fi Protected Setup (WPS) #############################################

eap_server=1

# WPS state
# 0 = WPS disabled (default)
# 1 = WPS enabled, not configured
# 2 = WPS enabled, configured
wps_state=2

uuid=12345678-9abc-def0-1234-56789abcdef0

# Device Name
# User-friendly description of device; up to 32 octets encoded in UTF-8
device_name=RTL8192CU

# Manufacturer
# The manufacturer of the device (up to 64 ASCII characters)
manufacturer=Realtek

# Model Name
# Model of the device (up to 32 ASCII characters)
model_name=RTW_SOFTAP

# Model Number
# Additional device description (up to 32 ASCII characters)
model_number=WLAN_CU

# Serial Number
# Serial number of the device (up to 32 characters)
serial_number=12345

# Primary Device Type
# Used format: <categ>-<OUI>-<subcateg>
# categ = Category as an integer value
# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
# default WPS OUI
# subcateg = OUI-specific Sub Category as an integer value
# Examples:
# 1-0050F204-1 (Computer / PC)
# 1-0050F204-2 (Computer / Server)
# 5-0050F204-1 (Storage / NAS)
# 6-0050F204-1 (Network Infrastructure / AP)
device_type=6-0050F204-1

# OS Version
# 4-octet operating system version number (hex string)
os_version=01020300

# Config Methods
# List of the supported configuration methods
config_methods=label display push_button keypad


##### default configuration #######################################

driver=rtl871xdrv
beacon_int=100
hw_mode=a
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400
  1. 开启热点,启动方法参考以下命令行
1
2
3
4
5
6
7
8
9
10
# 停用系统自带的 Network Manager
systemctl stop NetworkManager
systemctl disable NetworkManager
# enp0s29u1u6 为网卡名,通常情况下是 wlan0,根据自身情况修改
ifconfig enp0s29u1u6 down
ifconfig enp0s29u1u6 192.168.0.1 netmask 255.255.255.0
ifconfig enp0s29u1u6 up
# 根据自己的情况修改 hostapd 的路径 & 配置文件路径(配置文件名)
# -B 参数使 hostpad 在后台运行
/path/to/hostapd /path/to/rtl_hostapd_5G.conf -B

DHCP 服务

如果上述步骤操作下来没有问题,现在用手机或者笔记本应该能扫到创建的 Wifi,但是无论怎么尝试都连不上。因为一般情况下,我们的手机或者电脑连接 Wifi 的时候,都是选用的「自动分配 IP」,而目前为止我们的热点还没有加持这一功能。

这里我使用的是 dhcpd,首先通过命令 yum install dhcpd 安装服务,然后参考我的配置修改 /etc/dhcp/dhcpd.conf, 保存后用命令 systemctl start dhcpd 启动服务。

1
2
3
4
5
6
7
8
9
10
11
12
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.1,114.114.114.114;

range 192.168.0.2 192.168.0.200;
}

Iptables 配置

如果没有意外,现在你应该可以连接上热点了,但是还不能上网。别急,离胜利只差最后一步了。Iptables 一般是新装系统的标配,如果你的系统是例外,请先安装再执行以下操作。

启用 IP 转发功能

首先使用 sysctl -a | grep 'net.ipv4.ip_forward' 查看是否开启了 IP 转发功能,如果值为 1,则说明已经打开,否则使用 echo "1" > /proc/sys/net/ipv4/ip_forward 修改。

上述操作是临时修改,重启后失效。如果需要永久生效,编辑 /etc/sysctl.conf ,找到 net.ipv4.ip_forward = 0 ,编辑为 net.ipv4.ip_forward = 1 ,然后运行 sysctl -p

设置 Iptables 转发规则

1
2
3
4
5
# 192.168.0.0/24 是指内网的 IP 段,和之前设置的热点分配的 IP 段对应
# 当前系统是动态拨号,eno1 是我连接外网的网口
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eno1 -j MASQUERADE
# 保存更改
service iptables save

一点骚操作

从头到尾操作一遍之后,应该可以顺利的连上 Wifi 打王者了。如果想要用域名访问搭建在 NAS 上的网站,可以编辑 NAS 上的 HOSTS 文件 /etc/hosts 实现,内容格式为 IP 域名