Linux命令行连接wifi
系统环境:CentOS 7 core Version 1810 硬件:RTL8188EU Wireless USB -> 使用的是lwfinger的驱动,需要自己编译
系统有自带的多种工具可以配置,包括nmtui
, iw
和wpa
系列等。
其中不知为啥nmtui
和iw
检测不到无线设备?
wpa
系列的工具包括wpa_supplicant
和wpa_cli
,其中前者为命令行工具,后者为交互式命令行界面。
wpa_supplicant
的用法:
su -c 'wpa_passphrase wifi-name wifi-password >> /etc/wpa_supplicant/wpa_supplicant.conf'
su -c 'wpa_supplicant -B -i your-wifi-interface -c /etc/wpa_supplicant/wpa_supplicant.conf'
wpa_cli
的用法:
> scan
> scan_result
> add_network
> set_network <network_id> ssid "<wifi_ssid>"
> set_network <network_id> psk "<wifi_password>"
> select_network <network_id>
> enable_network <network_id>
> save_config
依次是扫描wifi、输出扫描结果、创建新连接配置、设置wifi的ssid和密码、选择和连接指定的wifi,以及保存配置。
然而不知为啥,我保存配置这里也失败了= =
但是这并不影响后续的使用。
对了,在配置wifi之前记得先把无线网卡up一下:
sudo ip link set <wifi_interface> up
启动wifi客户端工具wpa_supplicant
:
wpa_supplicant -D wext -B -i your-wifi-interface -c /etc/wpa_supplicant/wpa_supplicant.conf
使用的是wext驱动
由于需要以及自己并不会配DHCP,所以手动给网卡分配ip:
sudo ip addr set xxx.xxx.xxx.xxx/<netmask> dev <wifi_interface>
然后起码内网就能用了。 再配置网关:
sudo ip route add <router-ip> dev <wifi-interface>
sudo ip route add default via <router-ip> dev <wifi-interface>
DNS服务器:
su -c 'echo "nameserver nameserver-ip" >> /etc/resolv.conf'
然后ping一下自己喜欢的网站,大功告成?
最后以简洁明了的命令总结一下:
sudo ip link set <wifi_interface> up
wpa_supplicant -D wext -B -i your-wifi-interface -c /etc/wpa_supplicant/wpa_supplicant.conf
wpa_cli
> scan
> scan_result
> add_network
> set_network <network_id> ssid "<wifi_ssid>"
> set_network <network_id> psk "<wifi_password>"
> select_network <network_id>
> enable_network <network_id>
sudo ip addr set xxx.xxx.xxx.xxx/<netmask> dev <wifi_interface>
sudo ip route add <router-ip> dev <wifi-interface>
sudo ip route add default via <router-ip> dev <wifi-interface>
su -c 'echo "nameserver nameserver-ip" >> /etc/resolv.conf'