菜鸟科技网

创建wifi命令

  1. 如何使用命令行查看和管理你当前已连接的 WiFi 网络 (最常用)。
  2. 如何使用命令行连接到新的 WiFi 网络 (高级用户)。
  3. 如何创建一个批处理脚本或 Shell 脚本来一键执行 WiFi 操作 (自动化)。

使用命令行管理已连接的 WiFi (最常用)

这部分适用于大多数现代操作系统,可以快速查看连接状态、信号强度等。

创建wifi命令-图1
(图片来源网络,侵删)

在 Windows (10/11) 中

打开 命令提示符PowerShell (推荐使用 PowerShell,功能更强大)。

a. 查看当前连接的 WiFi 信息

# 获取当前所有网络配置文件
netsh wlan show profiles
# 获取特定 WiFi 的详细信息(将 "YourWiFiName" 替换为你的网络名称)
netsh wlan show profile name="YourWiFiName" key=clear
  • key=clear 会显示密码的明文,非常有用。

b. 查看当前 WiFi 的信号强度和速度

# 持续监控 WiFi 信号强度,按 Ctrl+C 停止
netsh wlan show interfaces | Select-String "信号" # 中文系统
# 或者
netsh wlan show interfaces | Select-String "Signal" # 英文系统

c. 断开/连接 WiFi

创建wifi命令-图2
(图片来源网络,侵删)
# 断开指定 WiFi 网络
netsh wlan disconnect interface="Wi-Fi"
# 连接到指定 WiFi 网络 (需要预先知道网络名称)
# 这个命令通常需要你之前已经连接过或保存过该网络
netsh wlan connect name="YourWiFiName" interface="Wi-Fi"

在 macOS 中

打开 终端

a. 查看当前连接的 WiFi 信息

# 查看当前网络服务的名称 (通常是 Wi-Fi 或 en0)
networksetup -listallnetworkservices
# 查看当前连接的 WiFi 名称 (将 "Wi-Fi" 替换为你的服务名)
networksetup -getairportnetwork Wi-Fi
# 查看当前 WiFi 的详细信息,包括 IP 地址、路由器等
ifconfig | grep "inet " # 查看IP

b. 查看当前 WiFi 的信号强度

# 每秒刷新一次,显示信号强度 (RSSI) 和噪声
while :; do /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | grep -E "agrCtlRSSI|agrExtRSSI|lastTxRate"; sleep 1; done
  • agrCtlRSSI 信号值越大(负得越少),信号越好。-30dBm 极好,-90dBm 很差。

c. 断开/连接 WiFi

创建wifi命令-图3
(图片来源网络,侵删)
# 关闭 Wi-Fi 网络接口
networksetup -setairportpower Wi-Fi off
# 打开 Wi-Fi 网络接口
networksetup -setairportpower Wi-Fi on
# 连接到指定 WiFi 网络 (需要预先知道网络名称)
# 这个命令需要管理员权限 (sudo)
sudo networksetup -setairportnetwork Wi-Fi YourWiFiName YourPassword
  • YourWiFiNameYourPassword 替换为实际的名称和密码。

在 Linux (Ubuntu/Debian 等) 中

打开 终端,Linux 通常使用 nmcli (NetworkManager Command-Line Interface) 或 iwconfig

a. 使用 nmcli (推荐)

# 查看所有已保存的网络连接
nmcli connection show
# 查看当前活动的网络连接
nmcli connection show --active
# 查看当前 WiFi 的详细信息
nmcli device wifi list
# 连接到新的 WiFi 网络 (如果网络未保存,会提示输入密码)
nmcli device wifi connect YourWiFiName password YourPassword
# 断开当前 WiFi 连接
nmcli device disconnect wlan0 # wlan0 是你的无线网卡名称,可以用 `nmcli device status` 查看

b. 使用 iwconfig (更底层)

# 查看无线接口的配置和信号强度
iwconfig
# 你会看到类似 "Link Quality=70/70  Signal level=-30 dBm" 这样的信息

使用命令行连接到新的 WiFi 网络 (高级)

直接在命令行输入密码连接到新网络,无需手动点击,这在服务器管理或自动化场景中非常有用。

Windows (PowerShell)

这比较复杂,因为 Windows 不允许直接通过命令行连接一个全新的、未保存的网络,通常需要先创建一个配置文件。

# 1. 创建一个临时的 XML 配置文件
$xmlContent @"
<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
    <name>YourNewWiFiName</name>
    <SSIDConfig>
        <SSID>
            <name>YourNewWiFiName</name>
        </SSID>
    </SSIDConfig>
    <connectionType>ESS</connectionType>
    <connectionMode>auto</connectionMode>
    <MSM>
        <security>
            <authEncryption>
                <authentication>WPA2PSK</authentication>
                <encryption>AES</encryption>
                <useOneX>false</useOneX>
            </authEncryption>
            <sharedKey>
                <keyType>passPhrase</keyType>
                <protected>false</protected>
                <keyMaterial>YourNewWiFiPassword</keyMaterial>
            </sharedKey>
        </security>
    </MSM>
</WLANProfile>
"@ | Out-File -FilePath "$env:TEMP\newwifi.xml"
# 2. 使用该配置文件连接网络
netsh wlan add profile filename="$env:TEMP\newwifi.xml"
# 3. 连接到该网络
netsh wlan connect name="YourNewWiFiName"
# 4. (可选) 连接成功后删除配置文件
netsh wlan delete profile name="YourNewWiFiName"

macOS

# 直接连接 (需要管理员权限)
# 将 "YourNewWiFiName" 和 "YourNewWiFiPassword" 替换为实际值
sudo networksetup -setairportnetwork Wi-Fi "YourNewWiFiName" "YourNewWiFiPassword"

Linux (nmcli)

这是最简单的之一。

# 直接连接,并记住密码(可选)
# --ask 表示如果需要会提示输入密码
nmcli device wifi connect YourNewWiFiName password YourNewWiFiName
# 如果不想记住密码,临时连接
nmcli device wifi connect YourNewWiFiName --ask

创建一键执行的 WiFi 脚本

这是将命令“创建”为可执行程序的最佳方式,下面是不同平台的示例。

Windows: 创建一个批处理文件 (.bat)

  1. 打开记事本。
  2. 粘贴以下代码,这个脚本会列出所有可用的 WiFi,然后让你选择连接。
@echo off
echo 正在扫描附近的 WiFi 网络...
echo.
REM 获取所有 WiFi 配置文件
for /f "tokens=2 delims=:" %%a in ('netsh wlan show profiles ^| findstr "所有用户配置文件"') do (
    set "ssid=%%a"
    set "ssid=!ssid: =!"
    echo !ssid!
)
echo.
set /p choice=请输入你要连接的 WiFi 名称:
echo.
REM 检查输入的 SSID 是否存在
netsh wlan show profile name="%choice%" >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: 未找到名为 "%choice%" 的网络配置文件。
    echo 请先手动连接一次该网络以保存配置。
    pause
    exit /b
)
echo 正在连接到 %choice%...
netsh wlan connect name="%choice%"
if %errorlevel% equ 0 (
    echo.
    echo 连接成功!
) else (
    echo.
    echo 连接失败!请检查网络名称或密码。
)
pause
  1. 点击“文件” -> “另存为”,将“保存类型”选为“所有文件”,文件名命名为 ConnectWiFi.bat,然后保存。
  2. 双击运行这个 .bat 文件即可。

macOS: 创建一个 Shell 脚本 (.sh)

  1. 打开终端。
  2. 创建一个新文件,connect_wifi.sh
    nano connect_wifi.sh
  3. 粘贴以下代码:
#!/bin/bash
# 获取所有已保存的 WiFi 网络
echo "已保存的 WiFi 网络:"
networksetup -listpreferredwirelessnetworks Wi-Fi
# 提示用户输入要连接的网络
read -p "请输入你要连接的 WiFi 名称: " ssid
# 检查网络是否存在
if networksetup -getairportnetwork Wi-Fi | grep -q "$ssid"; then
    echo "正在连接到 $ssid..."
    networksetup -setairportnetwork Wi-Fi "$ssid"
    if [ $? -eq 0 ]; then
        echo "连接成功!"
    else
        echo "连接失败!可能需要密码。"
    fi
else
    echo "错误: 未找到名为 '$ssid' 的网络。"
    echo "请先在系统偏好设置中手动连接一次。"
fi
  1. Ctrl + X,然后按 Y,最后按 Enter 保存并退出。
  2. 给脚本添加执行权限:
    chmod +x connect_wifi.sh
  3. 运行脚本:
    ./connect_wifi.sh
任务 Windows (PowerShell) macOS (Terminal) Linux (Terminal)
查看已连WiFi netsh wlan show profiles networksetup -getairportnetwork Wi-Fi nmcli connection show --active
查看信号强度 netsh wlan show interfaces airport -I iwconfig
连接新WiFi (复杂,需创建XML) sudo networksetup -setairportnetwork ... nmcli device wifi connect ...
一键脚本 创建 .bat 文件 创建 .sh 文件 创建 .sh 文件

希望这个全面的指南能帮助你“创建”并熟练使用 WiFi 命令!

分享:
扫描分享到社交APP
上一篇
下一篇