欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CentOS 7 最小化安装 自动连接 WiFi

程序员文章站 2024-02-13 09:21:58
...

前言:

CentOS 最小化安装后,不存在 iw,连接 WiFi 需要安装 iw,而 iw 又需要 libnl,使用 iw 连接 WiFi 时,会出现不能自动连接的问题。自动连接可以通过安装 NetworkManager-wifi 之后,使用 nmcli 连接 WiFi 解决。

资料:https://wiki.archlinux.org/index.php/NetworkManager

现在有两个解决办法:

  1. 先安装(U盘本地安装) iw(以及 iw 的依赖 libnl)暂时连接网络,之后使用 yum 在网络中安装 NetworkManager-wifi;
  2. 直接安装(U盘本地安装) NetworkManager-wifi(以及 NetworkManager-wifi 的依赖:NetworkManager-libnm、NetworkManager、NetworkManager-tui、NetworkManager-team)。

方式一:

  1. 查看是否安装了 iw:
    -bash: iw: command not found 说明没有安装 iw。

     

    [aaa@qq.com /]# iw
    -bash: iw: command not found
    
  1. 下载 iw 相关依赖:
    安装后无 iw,在 阿里巴巴开源镜像站 根据自己的系统搜索下载适合你的软件版本。

    libnl,iw 所需依赖:
    CentOS 7 最小化安装 自动连接 WiFi

    iw:
    CentOS 7 最小化安装 自动连接 WiFi
  2. 下载后放入U盘中,插入电脑,挂载U盘:
    1. 创建U盘挂载位置:
      mkdir -p /mut/usb_disk
    2. 挂载U盘:
      mount /dev/sdb1 /mut/usb_disk
  3. 安装 iw:
    1. 查看依赖:
      [aaa@qq.com iw]# ls
      iw-4.3-2.el7.x86_64.rpm  libnl-1.1.4-3.el7.x86_64.rpm
    2. 安装依赖:
      yum -y install libnl-1.1.4-3.el7.x86_64.rpm
      yum -y install iw-4.3-2.el7.x86_64.rpm
  4. 查看网卡名:
    [aaa@qq.com iw]# iw dev
    phy#0
    	Unnamed/non-netdev interface
    		wdev 0x2
    		addr e4:f8:9c:0b:07:62
    		type P2P-device
    	Interface wlp3s0
    		ifindex 3
    		wdev 0x1
    		addr e4:f8:9c:0b:07:61
    		type managed
    		channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz
    网卡名在 Interface 后面:wlp3s0
     
  5. 打开网卡:
    ip link set wlp3s0 up
  6. 搜索WiFi:
    [aaa@qq.com iw]# iw wlp3s0 scan | grep SSID
    	SSID: 1401
    	SSID: TP-LINK_D3EA
    	SSID: Mi 5s
    	SSID: CU_Pg8d
    	SSID: 1401_5G
    	SSID: TP-LINK_D3EA
    	SSID: \xe9\xbe\x99\xe6\xa8\xbe\xe6\xb9\xbe\xe6\x9c\x80\xe5\xbc\xba\xe7\x8e\x8b\xe8\x80\x85
    	SSID: 1502
    
  7. 连接WiFi:
     
    [aaa@qq.com iw]# wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "WiFi 名称" "密码")
    Successfully initialized wpa_supplicant
    

     

  8. 分配IP:

    dhclient wlp3s0

     

  9. 查看是否连接到 WiFi:

    [aaa@qq.com /]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: enp4s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 80:fa:5b:1a:9f:75 brd ff:ff:ff:ff:ff:ff
    3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether e4:f8:9c:0b:07:61 brd ff:ff:ff:ff:ff:ff
        inet 192.168.43.99/24 brd 192.168.43.255 scope global dynamic wlp3s0
           valid_lft 3434sec preferred_lft 3434sec
        inet6 2409:893c:f32:3f54:e6f8:9cff:fe0b:761/64 scope global mngtmpaddr dynamic 
           valid_lft 3414sec preferred_lft 3414sec
        inet6 fe80::e6f8:9cff:fe0b:761/64 scope link 
           valid_lft forever preferred_lft forever
    

    wlp3s0 中有 inet 192.168.43.99 说明已连接到 WiFi。
     

  10. 查看是否能联网:

    [aaa@qq.com /]# ping baidu.com
    PING baidu.com (220.181.38.148) 56(84) bytes of data.
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=46 time=101 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=46 time=227 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=46 time=99.2 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=46 time=75.1 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=5 ttl=46 time=192 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=6 ttl=46 time=72.0 ms
    64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=7 ttl=46 time=93.1 ms
    

     

  11. 安装 NetworkManager-wifi:

    yum -y install NetworkManager-wifi

    安装完成后,默认开启和开机自启。
    但是使用之前需要重启 NetworkManager-wifi 才能生效。
     

  12. 搜索 WiFi:

    nmcli device wifi list

    或者使用:

    nmcli dev wifi list

     

  13. 连接 WiFi:

    nmcli device wifi connect "WiFi 名称" password "WiFi 密码"

    或者使用:

    nmcli dev wifi connect "WiFi 名称" password "WiFi 密码"

     

方式二:

  1. 在 阿里巴巴开源镜像站 下载  NetworkManager-wifi、NetworkManager-libnm、NetworkManager、NetworkManager-tui、NetworkManager-team。
    注意:
    版本号应保持一致,以 CentOS 7 为例:截止发稿,存在 1.12.0-6.el7、1.12.0-7.el7、1.12.0-8.el7、1.12.0-10.el7,请注意区分,以免出现异常。
    最好使用最新版本(版本号最大),如推荐使用1.12.0-10.el7。
    笔者本次使用的是:
    NetworkManager-1.12.0-10.el7_6.x86_64.rpm
    NetworkManager-libnm-1.12.0-10.el7_6.x86_64.rpm
    NetworkManager-team-1.12.0-10.el7_6.x86_64.rpm
    NetworkManager-tui-1.12.0-10.el7_6.x86_64.rpm
    NetworkManager-wifi-1.12.0-10.el7_6.x86_64.rpm

    安装时只能使用此命令:

    yum -y install NetworkManager*

    注意:
    由于已上文件相互依赖,使用 yum -y install NetworkManager-1.12.0-10.el7_6.x86_64.rpm 时,无论怎么调顺序,总是需要连接网络才行。

  2. 重启NetworkManager:

    systemctl restart NetworkManager

     

  3. 搜索 WiFi:

    nmcli device wifi list

    或者使用:

    nmcli dev wifi list

     

  4. 连接 WiFi:

    nmcli device wifi connect "WiFi 名称" password "WiFi 密码"

    或者使用:

    nmcli dev wifi connect "WiFi 名称" password "WiFi 密码"


     

说明:

  1. WiFi 配置:
    [aaa@qq.com network-scripts]# ls
    ifcfg-"WiFi 名称"   ifdown-ippp    ifdown-sit       ifup-bnep  ifup-plusb   ifup-TeamPort      network-functions-ipv6
    ifcfg-enp4s0f1  ifdown-ipv6    ifdown-Team      ifup-eth   ifup-post    ifup-tunnel
    ifcfg-lo        ifdown-isdn    ifdown-TeamPort  ifup-ippp  ifup-ppp     ifup-wireless
    ifdown          ifdown-post    ifdown-tunnel    ifup-ipv6  ifup-routes  init.ipv6-global
    ifdown-bnep     ifdown-ppp     ifup             ifup-isdn  ifup-sit     keys-"WiFi 密码"
    ifdown-eth      ifdown-routes  ifup-aliases     ifup-plip  ifup-Team    network-functions
    

    其中 ifcfg-"WiFi 名称" 是 WiFi 配置,keys-"WiFi 名称" 是 WiFi 密码,明文储存。
     


总结:

已上两种方法最终效果相同。

方式一:
需要手动下载的包较少,挑选容易;命令多且复杂。

方式二:
需要手动下载的包较多,挑选复杂,可能会出现包选择不一致,出现异常的情况;命令简单,直接。