centos安装hostapd centos7安装源
大家好,今天给各位分享centos安装hostapd的一些知识,其中也会对centos7安装源进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
怎么在centos上安装usb无线网卡驱动
因为无线网络使用比较方便,使用无线网络我们不必使用那些乱糟糟的网线就能实现上网,现在无线网络比较普及,尤其在那些不方便布线的地方(山区、河流、机场、横跨马路、机场、工厂车间等)更是盛行。
我呢,最近为了玩linux将我的电脑装成了linux操作系统,由于先前没有做好功课,装上系统后,我要哭了,发现我的电脑没有办法使用我们宿舍的无线上网,在网上找了好久发现我的电脑集成的无线网卡并没有支持linux的驱动程序。可是我又不想换回原来的系统啊,于是我就,买了个usb无线网卡(附带有linux驱动我才买的哦)。然后我就迫不及待的去尝试着去安装驱动喽,试了好几次终于成功了,这里就给大家分享一下下哦。
我的无线网卡的型号是:Realtek 8176
支持linux的驱动程序包是:RTL8192xC_USB_linux_v3.4.4_4749.20121105
当然,如果你的usb无线网卡你不知道是什么型号的话,你可以插入你的linux主机,待系统识别后通过lsusb查看你的无线网卡型号,可以根据型号去网上找相应的驱动,这个命令是不是很有用处哦!
下面就是详细的安装过程,大家伙可要看仔细哦!
要想安装驱动,你得把驱动程序包弄到电脑里吧,不用说大家伙也知道不是:
1.png
接着,使用unzip将驱动包解压到当前目录,解压完成后进入解压的目录:
2.png
那我们首先安装驱动动程序,进入driver目录:
3.png
我们发现这些都是源代码,我们需将它拆解到/usr/local/src目录:
tar-zxvf rtl8188C_8192C_usb_linux_v3.4.4_4749.20121105.tar.gz-C/usr/local/src/
然后进入解压后的目录:
4.png
进行make和make install来生成linux模块(注意在linux下所有的驱动都是以模块的形式存在的)
5.png
6.png
一般linux内核会自动加载新安装的模块,此处发现并没有加载,那是什么原因呢?原因是这样的,当系统重新安装了驱动模块后,系统一般会在重新启动后加载,如果不能加载,我们可以使用指令:insmod+具体路径和模块或者直接使用modprobe不需指明路径。
下面我们重启后,看看系统能否自动加载模块:
7.png
但是为了完成网卡和模块的对应关系,我们必须修改/etc/modprobe.conf文件,否则网卡无法获取到ip地址哦:
8.png
一旦模块加载完成,网卡就被驱动起来了,我们可以使用ifconfig查看是否显示出来wlan0:
9.png
而使用ifconfig–a查看呢:
10.png
这是为什么呢?原来是ifconfig查看的是已激活的网卡,ifconfig–a查看的所有的,此时我们只需要将wlan 0激活即可:
11.png
但是,此时wlan 0仍然不能获取到ip地址,因为它还需要扫描无线网络和连接无线网络的工具,我们进入RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105目录下的wireless_tools目录:
12.png
我们再次将包拆解到/usr/local/src目录下
tar-zxvf wireless_tools.30.rtl.tar.gz-C/usr/local/src/进入到拆解的目录:
13.png
然后执行make和make install:
14.png
我们进入/usr/local/sbin目录下:
15.png
接着我们使用iwlist列出周围的无线网络:
16.png
当然光搜素到无线网络是没有用处的,因为这些无线网络都是加密的,我们必须要验证工具来进行密钥验证,下面我们进入到RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105的wpa_supplicant_hostapd的目录:
17.png
我们使用unzip将wpa_supplicant-0.6.9_wps_patch_20100201_1.zip解压到当前目录:
18.png
我们进入到wpa_supplicant-0.6.9/wpa_supplicant目录下:
19.png
执行make和make install
我们进入/usr/local/sbin目录:
20.png
此时,我们可以去连接我们的无线网络了:
21.png
为了安全起见,我们需要将明文密码删除
现在,我们的驱动模块和密钥文件都形成了,现在进行无线网络的连接:
wpa_supplicant-i wlan0-c/etc/wpa_supplicant/wpa_supplicant.conf-D wext–B
各参数的含义:-i指明连接的网卡
-c指明密钥文件的存放位置
-D指明驱动类型为通用型
-B放到后台运行
我们使用iwconfig查看无线网卡的连接转状态:
22.png
为了使wlan0能够动态获得ip我们需进到/etc/sysconfig/network-scripts/网卡文件存放的位置,产生wlan0网卡的文件(ifcfg-wlan0):
23.png
接着重新启动网络服务
24.png
下面看看我们的wlan0能否成功获取Ip地址吧:
25.png
但是,只做到这一步还不行,因为只要我们的机器重新启动,我们就不得不重新执行
wpa_supplicant-i wlan0-c/etc/wpa_supplicant/wpa_supplicant.conf-D wext–B
和service network restart这两条指令了,很是麻烦啊!但是有什么办法呢?上次我在系统内核故障排除时也告诉大家了系统的引导过程了,系统启动时,要进行系统的初始化操作,执行初始化脚本,初始化脚本就是/etc/rc.d/rc.local。为了满足我们的要求,我们可以在系统初始化的时候就执行上面的两条指令:
26.png
接着我们看看我们的环境变量是否加入/usr/local/sbin这个目录,否则系统不能够识别我们的wpa_supplicant这个指令。echo"$PATH":
CentOS7使用hostapd实现无AP模式的详解
这篇是 linux下使用hostapd实现无线接入点 AP模式的另一种实现方式:hostapd路由模式配置。
对于软硬件的基本配置及 hostapd安装在《CentOS 7之 hostapd AP模式配置》的前半部分内容中有说明,可以先看看那篇,再看本文。
hostapd的AP模式配置需要的有线网卡和无线网卡进行桥接,那路由模式配置主要就是将无线网卡的数据通过有线网卡进行伪装、转发两个方面,也就不再需要将有线和无线网卡进行桥接。
配置这种路由模式就类似一台普通的无线路由器,有线网口就相当于普通无线路由器的 WAN接口,无线网卡就负责发送广播无线信号供手机、笔记本的无线设备接入实现网络访问。
但也有区别的地方就是跟普通无线路由器相比,这种实现方式没有四个普通的 LAN接口,不能供其它台式机等进行有线连接。
实际上 linux作为网络功能为主的操作系统也是可以连接的,只是需要交换机等设备等,会复杂些。我这里的配置就当作是没有四个 LAN接口的普通无线路由器。
hostapd.conf配置
这里只是一个最小化的配置:
#/etc/hostapd/hostapd.conf最小化配置
interface=wlp2s0
#bridge=br0#不再需要桥接,将这行注释就可以
driver=nl80211
ssid=test
hw_mode=g
channel=1
auth_algs=3
ignore_broadcast_ssid=0#是否广播,0广播
wpa=3
wpa_passphrase=12345678#无线连接密码
配置跟AP模式配置文件类似,只要注释掉 bridge=br0选项就可以。
有线接口配置
首先我们需要正确配置有线接口并且可以正常上网。最简单的是方式就是从路由器那自动获取IP地址、网关、DNS。如果没有路由器的话那就需要手动设置有线接口的上网方式,例如常用的PPPOE方式、静态IP地址方式、动态获取IP地址方式等。反正动态获取IP地址的最简单。
无线接口设置使用 ip addr add命令
使用 ip addr add命令设置无线网卡的IP地址,重启后就会失效。例如172.16.0.1/24或其他私有地址,还有就是不要与有线网卡处在同一个网段。一般有线网卡从路由器获取的IP地址是 192.168.1.0/24网段地址。
ipaddradd172.16.0.1/24devwlp2s0
坑提示:目前 CentOS 7默认使用的是 NetworkManager套件作为网络配置工具。这里遇到一个问题就是,NetworkManager套件其提供的 nmcli命令并不支持给无线网卡设置静态的 IP地址,这就需要使用 ip addr add命令手动设定无线网卡的 IP地址或者在/etc/sysconfig/network-scripts/文件夹下面新建配置文件,这是比较老且经典的一种接口配置方式。
使用网络配置文件
如要想想保存设置,可以新建一个文件/etc/sysconfig/network-scripts/ifcfg-static-wlp2s0,文件名以 ifcfg前缀。
vi/etc/sysconfig/network-scripts/ifcfg-static-wlp2s0
[root@server~]#vi/etc/sysconfig/network-scripts/ifcfg-static-wlp2s0
#TYPE=Ethernet
#BOOTPROTO=none
#DEFROUTE=yes
#IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_FAILURE_FATAL=no
#NAME=static-wlp2s0
#UUID=a036678e-8fdf-48f3-8693-961bb6326i744
DEVICE=wlp2s0#指定无线网卡的接口
ONBOOT=yes#开机就进行设置
IPADDR=172.16.0.1#指定IP地址
PREFIX=24#指定掩码长度
#GATEWAY=192.168.10.254#其他用不着注释掉
#DNS1=127.0.0.1
#DNS2=192.168.10.254
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
保存后需要先停止 NetworkManager.service服务,最好禁止开机启动,不然还是会有问题。主要表现为开机时 network.service无法启动。
禁止NetworkManager.service服务开机启动
systemctldisableNetworkManager.service
停止NetworkManager.service服务
systemctlstopNetworkManager.service
想看看有没有生效可以重启 network.service服务或直接重启系统。
systemctlrestartnetwork.service
启用转发和配置接口伪装启用转发
使用 sysctl-w重启后会失效
sysctl-wnet.ipv4.ip_forward=1
[root@server~]#sysctl-wnet.ipv4.ip_forward=1
net.ipv4.ip_forward=1
启用IP转发重启后不会失效使用下面方法,系统重启后会自动加载/etc/sysctl.d/文件夹下的设置。
vi/etc/sysctl.d/ip_forward.conf
[root@server~]#vi/etc/sysctl.d/ip_forward.conf
net.ipv4.ip_forward=1
配置接口伪装
CentOS 7中使用 firewalld和 iptables都能做到接口伪装。CentOS 7中默认启用的是 firewalld.service服务。iptables服务和 firewalld服务冲突,两者只能启用其中一个。
使用 firewalld配置接口伪装
如果能使用图形界面配置的话更加简单明了,这里仅使用 firewalld-cmd命令方式配置。
如果没有启动 firewalld.service服务,需要先启动 firewalld.service服务。
systemctlstartfirewalld.service
将无线接口加入到 trust区域,并保存配置。默认情况下所有接口属于 public区域,连接限制比较严格,会导致无法连接。
firewall-cmd--zone=trusted--add-interface=wlp2s0--permanent
[root@server~]#firewall-cmd--zone=trusted--add-interface=wlp2s0--permanent
success
对有线接口所在的区域启用伪装,并保存配置,默认情况下有线接口属于 public区域。
firewall-cmd--zone=public--add-masquerade--permanent
[root@server~]#firewall-cmd--zone=public--add-masquerade--permanent
success
重启 firewalld服务
systemctlrestartfirewalld.service
使用 iptables配置接口伪装
如果习惯使用 iptables,需要安装 iptables-services这个包,里面包含 iptables.service和 ip6tables.service这两个服务,分别用于 ipv4和 ipv6。
要使用 iptables需要先停止并禁用 firewalld.service服务
systemctlstopfirewalld.service
systemctldisablefirewalld.service
再启用 iptables.service服务,因为目前还是主要使用 ipv4所以只启用 iptables.service就可以。如果使用 iptables同样需要设置开机启动 iptables.service服务。
systemctlenableiptables.service
启动 iptables.service服务
systemctlstartiptables.service
接口伪装
iptables-tnat-APOSTROUTING-op2p1-jMASQUERADE
一般来说配置上面的命令就可以了,如果防火墙设置比较严格需要添加允许转发无线网卡接口wlp2s0。
iptables-tfilter-AFORWARD-iwlp2s0-jACCEPT
dnsmasq配置 dnsmasq软件安装
dnsmasq主要负责分配客户端IP地址及DNS解析服务。
没有安装的话先安装 dnsmasq软件
yuminstalldnsmasq
设置开机自动启动 dnsmasq服务
systemctlenablednsmasq.service
dnsmasq.conf配置
vi/etc/dmsmasq.conf
[root@server~]#vi/etc/dnsmasq.conf
#指定接口,指定后同时附加lo接口,可以使用'*'通配符
interface=wlp2s0
#绑定接口
bind-interfaces
#DHCP地址池从172.16.0.100到172.16.0.200
dhcp-range=172.16.0.100,172.16.0.200,255.255.255.0,1h
启动 dnsmansq服务需要无线网卡已经正确设置了 ip地址。dnsmasq会自动将当前的无线网卡地址 172.16.0.1设置为客户端的网关地址和DNS地址。
systemctlstartdnsmasq.service
最后重新启动 hostapd服务
systemctlrestarthostapd.service