![如何在 Linux 上连接到我的学校网络](https://linux22.com/image/1519733/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%8A%E8%BF%9E%E6%8E%A5%E5%88%B0%E6%88%91%E7%9A%84%E5%AD%A6%E6%A0%A1%E7%BD%91%E7%BB%9C.png)
我想使用 Linux 连接到我的学校 wifi 网络,即带有 PEAP 的 WPA2 Enterprise。
在 Windows 上很容易,因为它已经由我的管理员配置好了。我曾尝试使用 Linux 上的网络 GUI 进行连接,但没有成功。这是我尝试过的设置(有一些变化):
当我尝试使用上述设置进行连接时,它只是显示“正在连接...”,然后提示我输入“密码或加密密钥”,然后我输入密码(我用于登录 Windows 的密码),然后它再次显示“正在连接...”,同样的事情反复发生。我不知道是我的设置有问题还是 Linux 有问题,但我认为是我的设置有问题,因为同样的事情发生在 iPhone 上。
无论如何,我认为我可以从 Windows 导出设置,所以我netsh wlan export
在 CMD 中执行此操作并得到此文件:
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
<name>Osloskolen</name>
<SSIDConfig>
<SSID>
<hex>4F736C6F736B6F6C656E</hex>
<name>Osloskolen</name>
</SSID>
<nonBroadcast>false</nonBroadcast>
</SSIDConfig>
<connectionType>ESS</connectionType>
<connectionMode>auto</connectionMode>
<autoSwitch>false</autoSwitch>
<MSM>
<security>
<authEncryption>
<authentication>WPA2</authentication>
<encryption>AES</encryption>
<useOneX>true</useOneX>
</authEncryption>
<PMKCacheMode>enabled</PMKCacheMode>
<PMKCacheTTL>720</PMKCacheTTL>
<PMKCacheSize>128</PMKCacheSize>
<preAuthMode>disabled</preAuthMode>
<OneX xmlns="http://www.microsoft.com/networking/OneX/v1">
<maxAuthFailures>1</maxAuthFailures>
<authMode>machine</authMode>
<EAPConfig>
<EapHostConfig xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
<EapMethod>
<Type xmlns="http://www.microsoft.com/provisioning/EapCommon">25</Type>
<VendorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorId>
<VendorType xmlns="http://www.microsoft.com/provisioning/EapCommon">0</VendorType>
<AuthorId xmlns="http://www.microsoft.com/provisioning/EapCommon">0</AuthorId>
</EapMethod>
<Config xmlns="http://www.microsoft.com/provisioning/EapHostConfig">
<Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
<Type>25</Type>
<EapType xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV1">
<ServerValidation>
<DisableUserPromptForServerValidation>false</DisableUserPromptForServerValidation>
<ServerNames/>
<TrustedRootCA>
<!-- Removed in case it's confidential, but the format was like d2 a1 bb ... -->
</TrustedRootCA>
<TrustedRootCA>
<!-- Removed in case it's confidential, but the format was like d2 a1 bb ... -->
</TrustedRootCA>
</ServerValidation>
<FastReconnect>true</FastReconnect>
<InnerEapOptional>false</InnerEapOptional>
<Eap xmlns="http://www.microsoft.com/provisioning/BaseEapConnectionPropertiesV1">
<Type>26</Type>
<EapType xmlns="http://www.microsoft.com/provisioning/MsChapV2ConnectionPropertiesV1">
<UseWinLogonCredentials>true</UseWinLogonCredentials>
</EapType>
</Eap>
<EnableQuarantineChecks>false</EnableQuarantineChecks>
<RequireCryptoBinding>false</RequireCryptoBinding>
<PeapExtensions>
<PerformServerValidation xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">true</PerformServerValidation>
<AcceptServerName xmlns="http://www.microsoft.com/provisioning/MsPeapConnectionPropertiesV2">false</AcceptServerName>
</PeapExtensions>
</EapType>
</Eap>
</Config>
</EapHostConfig>
</EAPConfig>
</OneX>
</security>
</MSM>
</WLANProfile>
这些信息是什么意思?如何使用它从 Linux 进行连接?是否有 Linux 等效文件netsh wlan add profile
?或者有方法将此文件转换为 Linuxsystem-connections
文件?
我确实有用户名和密码,我认为除了上述信息之外还应该使用它们。如果有人能帮助我,我会非常高兴。
编辑: 这尝试连接时收到的日志是什么?有人能帮我了解哪里出错了吗?我复制了从点击“连接”到再次提示我输入密钥时的所有内容(大约)。这次我尝试使用用户名“Osloskole\tord0505”,但除此之外,我使用了图片中的设置。
答案1
用户名和密码需要从网络管理员处获取。如果您的计算机已加入 AD 域,则它们应该与 Windows 使用的相同。
<UseWinLogonCredentials>true</UseWinLogonCredentials>
否则,如果您的学校有一个使用登录名和密码的“学生信息”网站,请尝试使用该网站。
可以从标签中获取正确的 CA 证书<TrustedRootCA>
(将十六进制转换为二进制后)。但这不是主要问题,因为 iOS 根本不会根据 CA 检查服务器证书(它只记住它看到的第一个证书)。
Linux 上的身份验证由 wpa_supplicant 处理;要启用其调试模式,请使用以下方法之一:
busctl set-property fi.w1.wpa_supplicant1 /fi/w1/wpa_supplicant1 fi.w1.wpa_supplicant1 DebugLevel s debug
gdbus call -y -d fi.w1.wpa_supplicant1 -o /fi/w1/wpa_supplicant1 -m org.freedesktop.DBus.Properties.Set fi.w1.wpa_supplicant1 DebugLevel "<'debug'>"
然后运行journalctl -f -u wpa_supplicant
并观察尝试连接时打印的内容。(要禁用日志记录,请将其重新设置为info
。)
答案2
好吧,我遇到了同样的问题,但后来我注意到我启用了网络代理,然后在很多情况下,我注意到用户名可以应用于匿名身份,对我来说它是有效的,尝试一下,这意味着你的匿名身份将是你的用户名,最后你将连接上,一切看起来都很好
答案3
登录时自动无线连接
对于您想要自动登录无线路由器的情况,请按照以下步骤操作:
- 打开
interface
文件:
sudo nano /etc/network/interfaces
- 添加以下信息(假设您的接口称为wlan0):
auto wlan0 iface wlan0 inet static address ASSIGNED_IP netmask 255.255.255.0 gateway THE_GATEWAY wireless-essid YOURSSID wireless-key WIRELESSKEY_HERE
- 保存文件并重新启动计算机。