2026/09/29

Linux ネットワーク/Wi-Fi コマンド チートシート

## 0. コマンドの役割

| コマンド | 主な用途 | 備考 |
|---|---|---|
| `ip` | インターフェース、IPアドレス、ルート、MACアドレスの確認・一時操作 | `iproute2`に含まれる |
| `nmcli` | NetworkManagerの接続・プロファイル管理 | 設定を永続化できる |
| `iw` | Wi-Fiデバイス、接続先、周波数、電波情報の確認 | 無線LANの低レベル情報 |
| `rfkill` | Wi-Fiなどの無線機能のブロック状態確認 | ハード/ソフトブロックを確認 |
| `lsusb` | USBデバイスの認識確認 | USB Wi-Fiドングルの確認 |
| `ethtool` | NICのドライバーやリンク情報の確認 | 無線では主にドライバー確認に使用 |

> 対象: Debian/Ubuntu系およびRHEL/Rocky/AlmaLinux系。`nmcli`はNetworkManager使用環境が前提です。

## 1. インターフェース一覧

```bash
ip link
ip -br link
nmcli device status
iw dev
```

## 2. USB Wi-Fiドングルの認識確認

```bash
lsusb
sudo dmesg | grep -iE 'usb|wifi|wlan|wireless|firmware'
sudo journalctl -k | grep -iE 'usb|wifi|wlan|wireless|firmware'
sudo ethtool -i wlan1
readlink -f /sys/class/net/wlan1/device/driver
```

## 3. MACアドレスの確認

```bash
ip link show wlan1
cat /sys/class/net/wlan1/address
nmcli -g GENERAL.HWADDR device show wlan1
ip -br link
```

## 4. IPアドレスの確認

```bash
ip address
ip addr show dev wlan1
ip -br addr
nmcli device show wlan1
nmcli -g IP4.ADDRESS,IP4.GATEWAY,IP4.DNS device show wlan1
```

## 5. Wi-Fiアクセスポイントの検索

```bash
nmcli device wifi rescan
nmcli device wifi list
nmcli device wifi list ifname wlan1
nmcli -f IN-USE,SSID,BSSID,CHAN,FREQ,SIGNAL,SECURITY device wifi list ifname wlan1
sudo iw dev wlan1 scan
sudo iw dev wlan1 scan | grep -E 'BSS |SSID:|freq:|signal:'
```

## 6. Wi-Fiへ接続

### SSIDを指定

```bash
nmcli device wifi connect "SSID" password "PASSWORD" ifname wlan1
```

パスワードをコマンド履歴へ残したくない場合:

```bash
nmcli --ask device wifi connect "SSID" ifname wlan1
```

### BSSIDを指定

```bash
nmcli device wifi connect "AA:BB:CC:DD:EE:FF" password "PASSWORD" ifname wlan1
```

SSIDとBSSIDを両方指定:

```bash
nmcli device wifi connect "SSID" bssid "AA:BB:CC:DD:EE:FF" password "PASSWORD" ifname wlan1
```

### 既存プロファイルを有効化

```bash
nmcli connection up "接続名" ifname wlan1
```

## 7. 接続中のWi-Fi情報

```bash
iw dev wlan1 link
nmcli device show wlan1
nmcli -f IN-USE,SSID,BSSID,CHAN,FREQ,SIGNAL device wifi list ifname wlan1
```

`iw dev wlan1 link`の主な項目:

- `Connected to`: 接続中のBSSID
- `SSID`: 接続中のSSID
- `freq`: 中心周波数
- `signal`: 受信信号強度
- `tx bitrate`: 送信リンク速度

## 8. チャネル/周波数の確認

```bash
iw dev wlan1 link
iw dev wlan1 info
nmcli -f IN-USE,SSID,BSSID,CHAN,FREQ device wifi list ifname wlan1
```

### 代表的な周波数とチャネル

| 周波数 | チャネル |
|---:|---:|
| 2412 MHz | 1 |
| 2437 MHz | 6 |
| 2462 MHz | 11 |
| 5180 MHz | 36 |
| 5200 MHz | 40 |
| 5220 MHz | 44 |
| 5240 MHz | 48 |
| 5500 MHz | 100 |
| 5520 MHz | 104 |
| 5540 MHz | 108 |
| 5560 MHz | 112 |

## 9. 内蔵Wi-FiからUSB Wi-Fiへ切り替える

例:

- 内蔵Wi-Fi: `wlan0`
- USB Wi-Fi: `wlan1`

```bash
nmcli device disconnect wlan0
nmcli device wifi connect "SSID" password "PASSWORD" ifname wlan1
nmcli device status
iw dev wlan1 link
ip route
```

内蔵Wi-Fiを一時停止:

```bash
sudo ip link set wlan0 down
```

元に戻す:

```bash
sudo ip link set wlan0 up
```

NetworkManagerの管理対象外にする:

```bash
sudo nmcli device set wlan0 managed no
sudo nmcli device set wlan0 managed yes
```

## 10. 接続プロファイルの管理

```bash
nmcli connection show
nmcli connection show --active
nmcli connection show "接続名"
```

プロファイルを特定インターフェースへ固定:

```bash
nmcli connection modify "接続名" connection.interface-name wlan1
```

BSSIDを固定/解除:

```bash
nmcli connection modify "接続名" 802-11-wireless.bssid "AA:BB:CC:DD:EE:FF"
nmcli connection modify "接続名" 802-11-wireless.bssid ""
```

自動接続と優先度:

```bash
nmcli connection modify "接続名" connection.autoconnect yes
nmcli connection modify "接続名" connection.autoconnect-priority 100
```

設定反映:

```bash
nmcli connection down "接続名"
nmcli connection up "接続名"
```

## 11. Wi-Fi無線機能の有効/無効

```bash
nmcli radio wifi
nmcli radio wifi on
nmcli radio wifi off
rfkill list
sudo rfkill unblock wifi
sudo rfkill unblock all
```

## 12. インターフェースの有効/無効

```bash
sudo ip link set wlan1 down
sudo ip link set wlan1 up
nmcli device disconnect wlan1
nmcli connection up "接続名" ifname wlan1
```

## 13. デフォルトルートの確認

```bash
ip route
ip route get 8.8.8.8
ip -6 route
```

例:

```text
default via 192.168.1.1 dev wlan1 proto dhcp metric 600
```

この場合、デフォルト通信は`wlan1`を使用します。

## 14. インターフェースの優先順位

Linuxは通常、デフォルトルートの`metric`が小さい経路を優先します。

```bash
ip route
nmcli connection modify "USB-WiFi" ipv4.route-metric 100
nmcli connection modify "Internal-WiFi" ipv4.route-metric 600
nmcli connection modify "USB-WiFi" ipv6.route-metric 100
nmcli connection modify "Internal-WiFi" ipv6.route-metric 600
nmcli connection down "USB-WiFi"
nmcli connection up "USB-WiFi"
```

## 15. Wi-Fiの対応周波数・チャネル確認

```bash
iw phy
iw phy phy0 info
iw list
```

確認できる主な項目:

- 対応周波数・使用可能チャネル
- 無効化されたチャネル
- 対応インターフェースモード
- HT/VHT/HE/EHT対応状況
- 対応チャネル幅

## 16. リージョン/規制ドメイン

```bash
iw reg get
sudo iw reg set JP
iw reg get
iw list
```

> 恒久設定方法はディストリビューションと無線ドライバーによって異なります。

## 17. 通信状態の確認

```bash
ip -s link show wlan1
ip route
ping -c 4 192.168.1.1
ping -c 4 8.8.8.8
ping -c 4 example.com
nmcli general status
```

## 18. NetworkManagerログの確認

```bash
systemctl status NetworkManager
sudo journalctl -u NetworkManager -b
sudo journalctl -u NetworkManager -f
sudo journalctl -u NetworkManager -b | grep -iE 'wifi|wlan|802-11|supplicant'
systemctl status wpa_supplicant
```

## 19. 変更前後の確認セット

### 変更前

```bash
ip -br link
ip -br addr
ip route
nmcli device status
nmcli connection show --active
iw dev
iw dev wlan1 link
```

### 変更後

```bash
nmcli device status
nmcli connection show --active
iw dev wlan1 link
ip addr show dev wlan1
ip route
ip route get 8.8.8.8
```

## 20. トラブルシューティング基本フロー

### 1. USBデバイスとして認識されているか

```bash
lsusb
```

### 2. インターフェースが作成されているか

```bash
ip -br link
iw dev
```

### 3. ドライバー/ファームウェアエラーがないか

```bash
sudo journalctl -k -b | grep -iE 'firmware|wifi|wlan|wireless|usb|error|failed'
```

### 4. 無線機能がブロックされていないか

```bash
rfkill list
nmcli radio
```

### 5. NetworkManagerが管理しているか

```bash
nmcli device status
```

### 6. アクセスポイントを検出できるか

```bash
nmcli device wifi rescan ifname wlan1
nmcli device wifi list ifname wlan1
```

### 7. 接続できているか

```bash
iw dev wlan1 link
```

### 8. IPアドレスが割り当てられているか

```bash
ip addr show dev wlan1
```

### 9. デフォルトルートがあるか

```bash
ip route
```

### 10. 経路、外部疎通、DNSを切り分ける

```bash
ip route get 8.8.8.8
ping -c 4 8.8.8.8
ping -c 4 example.com
```

## 21. よく使うワンライナー

Wi-Fiインターフェース名:

```bash
iw dev | awk '$1=="Interface"{print $2}'
```

MACアドレス:

```bash
cat /sys/class/net/wlan1/address
```

接続中のBSSID:

```bash
iw dev wlan1 link | awk '/Connected to/{print $3}'
```

接続中のSSID:

```bash
iw dev wlan1 link | sed -n 's/^[[:space:]]*SSID: //p'
```

現在の周波数:

```bash
iw dev wlan1 link | awk '/freq:/{print $2 " MHz"}'
```

デフォルトルートで使用中のインターフェース:

```bash
ip route show default | awk '/default/{print $5}'
```

Wi-Fi接続情報をまとめて確認:

```bash
printf '%s\n' '=== Device ===' &&
nmcli device status &&
printf '%s\n' '=== Link ===' &&
iw dev wlan1 link &&
printf '%s\n' '=== Address ===' &&
ip -br addr show wlan1 &&
printf '%s\n' '=== Route ===' &&
ip route
```

## 注意事項

- `ip link set ... down`による変更は一時的です。
- `nmcli connection modify`は保存された接続プロファイルを変更します。
- `device`はインターフェースの現在状態、`connection`はNetworkManagerの設定プロファイルです。
- SSH接続中に使用中のインターフェースを停止すると、接続が切断されます。
- インターフェース名は`wlan0`、`wlp2s0`、`wlx...`など環境によって異なります。
- BSSID固定中は別のアクセスポイントへのローミングが制限されます。
- 実行前に対象インターフェース名と接続プロファイル名を確認してください。

0 件のコメント:

コメントを投稿

人気の投稿