CentOS 7 网络连接优先由与无线问题解决
该解决方法不具有一般性:
由于我安装CentOS 7系统时选择的是服务器模式而不是家用个人计算机之类的模式,网络配置阶段,有线禁用了dhcp协议,也没有无线相关的内容,于是在gnome下根本没有无线网络的配置选项。有线网络也难以连接。
1. 解决有线网络连接问题:打开/etc/sysconfig/network-scripts,其中有前缀为ipcfg-的配置文件名为 ifcfg-p8p1 , 修改后内容如下:(只是将BOOTPROTO=no改为 dhcp,网上有些帖子说要把ONBOOT=no改为yes,但我不存在这个问题)
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=p8p1
UUID=645a02e2-2178-46b4-8377-7047e1d87838
DEVICE=p8p1
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
然后重起网络服务:service network restart,就ok了;
2. 解决无线网络问题:
在解决有线网络连接之前无线网络按此方法是不行的:
相关命令:
dmesg | grep firmware(查看有没有来自无线网卡的固件请求)
iw:
iw dev(查找无线网卡口)
iw wls1 link(查看wls1网口无线网络连接情况)
iw wls1 scan | grep SSID(查看wls1网口可连接的wifi)
ip:
ip link set wls1 up(将无线网口wls1开启)
ip link show wls1(显示无线网口wls1连接情况)
ip addr show wls1(显示分配的ip地址,特别适用于查看是否成功地通过dhcp自动获取了ip地址)
wpa_supplican:
wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk") (连接无线网ssid,密码psk)
dhclient:
dhclient wls1(为wls1分配ip地址)
如需使用上述命令,只需将wls1直接更换成自己网口就行了
二.具体过程:
查看是否需要安装固件
大多无线网卡还需要固件。内核一般会自动探测并加载两者,如果您得到类似 SIOCSIFFLAGS: No such file or directory 的输出,意味着您得手动加载固件。若不确定,用 dmesg 查询内核日志,看看有没有来自无线网卡的固件请求。比如您有 Intel 芯片组,输出大概是这样:
# dmesg | grep firmware
firmware: requesting iwlwifi-5000-1.ucode
若无输出,表明系统的无线芯片不需要固件。
查看无线网口:
#iw dev(interface后面即为无线网口号)
phy#0
Interface wlp2s0
ifindex 3
wdev 0x1
addr ac:7b:a1:07:ef:04
ssid M3A60X
type managed
channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz
激活无线网络接口:
# ip link set wlp2s0 up
为了检验接口是否激活成功,您可以查看以下命令的输出:
# ip link show wls1
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
link/ether ac:7b:a1:07:ef:04 brd ff:ff:ff:ff:ff:ff
查看无线网络连接情况:#iw wls1 link
刚开始应该会显示无连接
扫描可连接的wifi
#iw wls1 scan | grep SSID
连接指定的SSID
# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "ssid" "psk")
将ssid 替换为实际的网络名称,psk 替换为无线密码,请保留引号。
用dhcp 获得 IP 分配:
# dhclient wlp3s0
测试是否成功地从路由器获取了ip(重要)
#ip addr show wls1如果分配有ip,即可上网,也可以有ping直接测试