Ubuntu 20.04LTS,无头机器,没有 Wifi 卡。
wpa_supplicant
正在运行并浪费我的资源(尽管我认为并没有太多)。
我知道我可以用systemctl stop|disable|mask
.
但是,(如何)我可以/应该将它从 Ubuntu 20.04 中完全删除吗?
删除它是否安全?我没有图形用户界面。这是一台只能远程访问的无头机器。
Ubuntu 20.04LTS,无头机器,没有 Wifi 卡。
wpa_supplicant
正在运行并浪费我的资源(尽管我认为并没有太多)。
我知道我可以用systemctl stop|disable|mask
.
但是,(如何)我可以/应该将它从 Ubuntu 20.04 中完全删除吗?
删除它是否安全?我没有图形用户界面。这是一台只能远程访问的无头机器。
wpa_supplicant.conf
通常在某些配置项周围有双引号。例如
network={
ssid="testing"
psk=7eb34d7f016909cc62114f2e32c8557ea8b9dc3e3f2715c351b496f750529177
}
如果 SSID 包含不寻常的字符,例如双引号字符、不可打印的二进制值,甚至 CR 或 LF,该怎么办?是否wpa_supplicant
有办法转义字符,例如\"
双引号或\xEF
二进制值?
一个相关的问题是,是否有任何被禁止的字符?
如果连接到企业网络,则密码可以输入为:
password="foobar"
在这种情况下,同样的问题也适用于转义密码字符。
我正在尝试调试我的 RPi 3 的 wifi 连接问题(它有时只是随机失去连接)。我注意到
ps aux | grep wpa_supplicant
给我:
root 310 0.0 0.4 10708 3636 ? Ss lut16 0:00 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
root 397 0.0 0.4 11080 3140 ? Ss lut16 0:01 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dnl80211,wext
我正在使用最小的 Raspbian Buster,我唯一做的就是配置了/etc/wpa_supplicant/wpa_supplicant.conf
:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=PL
network={
ssid="[MyExtender]"
bssid=[MyExtendersMac]
psk=""
}
正常吗?
如果是 - 那么为什么有两个 wpa_supplicant 实例?
如果没有 - 如何摆脱一个?
由于我升级到 Debian 10,我无法连接到eduroam。事实证明,我的雇主决定使用使用散列函数EAP-TLS
签名的客户端证书。MD5
从我在网上可以找到的内容来看,MD5
签名证书在 OpenSSL 1.1 版中被禁用,并且wpa_supplicant日志似乎证实了这一点:
wpa_supplicant[718]: EAP: EAP entering state RECEIVED
wpa_supplicant[718]: EAP: Received EAP-Request id=3 method=13 vendor=0 vendorMethod=0
wpa_supplicant[718]: EAP: EAP entering state GET_METHOD
wpa_supplicant[718]: wlp4s0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=13
wpa_supplicant[718]: EAP: Status notification: accept proposed method (param=TLS)
wpa_supplicant[718]: EAP: Initialize selected EAP method: vendor 0 method 13 (TLS)
wpa_supplicant[718]: TLS: using phase1 config options
wpa_supplicant[718]: TLS: Trusted root certificate(s) loaded
wpa_supplicant[718]: OpenSSL: tls_connection_client_cert - SSL_use_certificate_file failed error:140C618E:SSL routines:SSL_use_certificate:ca md too weak
wpa_supplicant[718]: TLS: Failed to set TLS connection parameters
wpa_supplicant[718]: ENGINE: engine deinit
wpa_supplicant[718]: EAP-TLS: Failed to initialize SSL.
wpa_supplicant[718]: wlp4s0: EAP: Failed to initialize EAP method: vendor 0 method 13 (TLS)
OpenSSL 1.1 中有没有办法启用MD5
,最好只用于wpa_supplicant?
我无法登录我的大学网络。
配置:
network {
scan_ssid=1
ssid="apname"
key_mgmt=WPA_EAP
eap=PEAP
ca_cert="/path/to/correct_and_verified_cert.pem"
altsubject_match="DNS:xxx"
identity="correct_identity"
password="password"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}
wpa_supplicant 的输出:
user@comp$ sudo wpa_supplicant -c /etc/wpa_supplicant/network.conf -i wlp4s0
Successfully initialized wpa_supplicant
wlp4s0: Trying to associate with SSID 'apname'
wlp4s0: Associated with xx:xx:xx:xx:xx:xx
wlp4s0: CTRL-EVENT-EAP-STARTED EAP authentication started
wlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlp4s0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25
wlp4s0: CTRL-EVENT-EAP-METHOD EAP vendor 0 method 25 (PEAP) selected
wlp4s0: CTRL-EVENT-EAP-PEER-CERT depth=2 subject='/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert Assured ID Root CA' hash=HASHHASH
wlp4s0: CTRL-EVENT-EAP-PEER-CERT depth=1 subject='/C=NL/ST=Noord-Holland/L=Amsterdam/O=TERENA/CN=TERENA SSL CA 3' hash=HASHHASH
wlp4s0: CTRL-EVENT-EAP-PEER-CERT depth=0 subject='/C=XX/L=Loc/O=UNIV_ID Loc/OU=ZID KOM/CN=odo.XXX' hash=HASHHASH
wlp4s0: CTRL-EVENT-EAP-PEER-ALT depth=0 DNS:odo.XXX
wlp4s0: CTRL-EVENT-EAP-PEER-ALT depth=0 DNS:radius.XXX
EAP-MSCHAPV2: Authentication succeeded
EAP-TLV: TLV Result - Success - EAP-TLV/Phase2 Completed
wlp4s0: CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
wlp4s0: CTRL-EVENT-CONNECTED - Connection to xx:xx:xx:xx:xx:xx completed [id=2 id_str=]
wlp4s0: CTRL-EVENT-DISCONNECTED bssid=xx:xx:xx:xx:xx:xx reason=15 locally_generated=1
wlp4s0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
已知此配置适用于其他系统。我还尝试删除配置中的 ca_cert 行,以防止验证证书。
原因 15 表示 4 次握手由于超时而失败。
有谁知道是什么导致了这个问题?
当我们执行wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf
连接AP的命令时,执行wpa_supplicant
以下步骤:
1. wpa_supplicant requests the kernel driver to scan neighboring BSSes
2. wpa_supplicant selects a BSS based on its configuration
3. wpa_supplicant requests the kernel driver to associate with the
chosen BSS
有没有办法跳过扫描部分,即第 1 步?由于扫描需要几秒钟,因为本地环境有 50+ SSID。
/etc/wpa_supplicant.conf 中有两个网络设置。它们都具有相同的 ssid,但具有不同的 id_str 和 psk。
连接 AP 后,如何查看我使用的网络配置?
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
#Disable wifi direct
p2p_disabled=1
network={
ssid="SameSSID"
psk="12345678"
id_str="CorrectPSK"
}
network={
ssid="SameSSID"
psk="00000000"
id_str="WrongPSK"
}
我正在尝试使用 bash 脚本连接到 WPA2 网络。通常的方法是这样的:
wpa_passphrase SSID PASSWORD > CONFIG_FILE
wpa_supplicant -B -iwlan0 -cCONFIG_FILE -Dwext
但是,我不希望密码保留在文件中。是否有类似的方法来配置 WPA2 网络而不使用配置文件(即使只是临时的),类似于如何使用单个命令配置开放和 WEP 网络,iwconfig wlan0 essid SSID key s:PASSWORD
?
我打电话
wpa_supplicant -c"$CONF" -i"$IFACE" -B
其中 $CONF 是一个包含许多network={}
定义的文件。wpa_supplicant
确实连接到范围内的任何一个。
如何查询我的笔记本电脑与哪个 AP 关联?
我尝试添加-dd
和解析输出。我发现的是:
Priority group 1
id=3 ssid='UP-Campus'
Priority group 0
id=0 ssid='Sauron'
id=1 ssid='futurenet'
我可以依靠这个,那个wpa_supplicant
填充肯定连接到'UP-Campus'。
还有一个问题,是否wpa_supplicant
重新连接?如果我走出配置文件中一个单元格的范围并进入另一个单元格的范围,它会重新连接吗?
之前systemd
,我可以简单地编辑/etc/wpa_supplicant.conf
文件以使用预共享密钥添加我想要的网络:
$ cat /etc/wpa_supplicant.conf
network={
ssid="TPLINK"
psk="My secret pre-shared key"
}
但是systemd
,我的/etc/wpa_supplicant.conf
呢?如何编辑我的网络和预共享密钥?