树莓派(Raspberry Pi 3) - 树莓派打造无线路由器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012313335/article/details/73992102

      使用树莓派来做无线路由器,首先需要确认的是USB无线网卡已经安装了正确的驱动并能工作,其次所使用的无线网卡需要支持AP功能,否则即使正确配置了无线路由器,有软件也无法正常工作。配置无线路由器需要安装 hostapd 与 isc-dhcp-server ,其中 hostapd 是一个用于访问点以及认证服务器的服务程序。(配置时建议以管理员身份配置

一、配置无线网卡固定 IP 以及子网地址

  • 编辑网络配置文件:  vi /etc/network/interfaces 文件,找到和wlan0相关的几行注释掉。
# allow-hotplug wlan0
# iface wlan0 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  • 在文件最后添加几行网卡的配置(192.168.2.1是给raspberry pi 做的路由器分配的网关 ip,这个不能跟局域网里其他路由网关ip重复。)

iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0
          
二、安装Hostapd
  • 输入命令:apt-get install hostapd 完成软件安装。修改 hostapd 的默认配置文件: vi /etc/default/hostapd,取消“#DAEMON_CONF = ""”最前面得注释号“#”,并增加一个 hostapd 的配置文件。
DAEMON_CONF="/etc/hostapd/hostapd.conf"
          
  • 配置hostapd服务器,建立配置文件: vi /etc/hostapd/hostapd.conf,并输入以下内容。
# 设置默认的接入点为无线网卡 wlan0
interface = wlan0

# 设置驱动程序为 nl80211
driver = nl80211

# 设置网卡工作模式为 802.11G
hw_mode = g

# 设置无线网络 SSID 为 RaspberryPi
ssid = RaspberryPi

# 设置无线通道为5,如果发现连接速度慢或有干扰,也可以设置为其他数值
channel = 6

# 设置加密模式为 WPA2
wpa = 2

# 设置密码为123456789
wpa_passphrase = 123456789

# 设置加密方式为CCMP
wpa_key_mgmt = WPA-PSK
wpa_pairwise = CCMP
rsn_pairwise = CCMP
beacon_int = 100
auth_algs = 3
wmm_enabled = 1
wmm_enabled=1
  • 修改完成后保存退出,并重新启动 hostapd 服务器: /etc/init.d/hostapd restart(如有重启错误,先确保hostapd已启动:restart -> start),提示配置成功。
          
三、安装DHCP服务

  • 输入命令:apt-get install isc-dhcp-server 完成服务安装。修改DHCP服务的配置文件: vi /etc/dhcp/dhcpd.conf,注释掉以 option domain - name 为开头的两行,以取消对域名的设置。

          

  • 随后在文档的最后增加以下内容,修改完成后重新启动dhcp服务: /etc/init.d/isc-dhcp-server restart(如有重启错误,先确保hostapd已启动:restart -> start),提示配置成功。

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.2.10 192.168.2.100;
  option routers 192.168.2.1;
  option broadcast-address 192.168.2.127;
  option domain-name-servers 8.8.8.8,8.8.4.4;
  default-lease-time 600;
  max-lease-time 7200;
}

          
  • 重新启动服务后,就可以通过客户端来连接无线路由了,这时可以通过无线连接到树莓派上,但是不能上网。

          

四、配置路由转发

  • 不能上网原因是还没有设置数据的转发功能,而在 Linux 系统中我们通常使用防火墙来实现这一功能。输入命令:

iptables -F
iptables -X

# 设置转发规则
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# 将转发规则保存到防火墙配置中
iptables-save > /etc/iptables.up.rules

# 开启防火墙
/etc/init.d/iptables start

# 开启内核转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward


猜你喜欢

转载自blog.csdn.net/u012313335/article/details/73992102