Skip to content

Linuxコマンド(ネットワーク)のチートシート

inoue.h edited this page May 1, 2024 · 19 revisions

Home > Software > ソフトウエア開発・PC管理のメモ帳 > this page (このページ)


Linuxのネットワーク情報を得たり、設定を変更したりするコマンドを個人的にメモしたものです



Table of Contents

一般的なネットワーク操作

ネットワーク ハードウエア一覧
 lshw -C network
ネットワーク インターフェースの情報表示
 ethtool [IF_NAME]
帯域の表示
 bwm-ng
ネットワーク転送速度計測
-s はサーバ側、-cは計測側
 iperf [--server|-s]
 iperf [[--client|-c] [相手先IPアドレス]] [[--bandwidth|-b] 1G]] [--enhanced|-e]
ローカルネットワーク内で稼働しているマシンのIPアドレス一覧
 nmap -sP [192.168.1.0/24]
 arp-scan -I [adapter] -l [192.168.1.0/24]
 netdiscover -r [192.168.1.0/24]
 arp -a

arp-scanでは -I eth0 スイッチを指定してネットワークアダプタを限定することもできる。arp -a は到達済み(キャッシュされた)マシンのみ表示

IPアドレス正引き(ドメイン名 -> IPアドレス)
 dig www.example.com [@DNS]
 nslookup www.example.com
digは、ANSWER SECTIONに結果が表示される。nslookup は将来的に非推奨。digで問い合わせるDNSを指定する例として、Google DNSを使う場合は @8.8.8.8 を設定する
IPアドレス逆引き(IPアドレス -> ドメイン名)
 dig -x 123.456.789.012
 nslookup 123.456.789.012

net-tools系とip系

net-tools系は、ip系に置き換えられているので、最新のLinuxではip系のコマンドを使う

net-tools系とip系のコマンド例
機能 net-tools ip
アドレス表示 ifconfig -a ip addr
ポート一覧 netstat ss
統計 netstat -i ip -s link

net-tools系

開いているポート一覧
 netstat
-t : TCPを表示、 -u : UDPを表示
-l : LISTENのみ表示、 -a : LISTENとnon-LISTENの双方を表示
-p : プロセスを表示
-n : ポート番号等を名称ではなく数値で表示
IPアドレスよりMACアドレスを調べる
 arp [-i IF_NAME] [対象マシンのIPアドレス]
RX/TX統計を表示する
 netstat -i
アドレスを表示
 ifconfig
ルーティングを表示
 netstat -r

ip系

手元に置く印刷用の「ip コマンド チートシート for Red Hat Enterprise Linux」が便利

開いているソケット一覧
 ss [-t|-u] [-p] [-a|-l] [-o state established|connected]
-t : TCPを表示、 -u : UDPを表示
-l : LISTENのみ表示、 -a : LISTENとnon-LISTENの双方を表示
-p : プロセスを表示
-n : ポート番号等を名称ではなく数値で表示
IPアドレスよりMACアドレスを調べる
 arping [-I IF_NAME] [対象マシンのIPアドレス]
複数の機器に同一のIPアドレスが割り振られている場合、このコマンドで返ってくるMACアドレスが複数種類となる
ネットワークインターフェースの情報表示
 ip link [show dev IF_NAME]
RX/TX統計を表示する
 ip -s link [show dev IF_NAME]
アドレスを表示
 ip addr [show dev IF_NAME]
ルーティングを表示
 ip route [show dev IF_NAME]

nmap

対象マシンのOS判定
 nmap -A [対象マシンのIPアドレス]
対象マシンで開いているポート一覧
 nmap -sV -F [対象マシンのIPアドレス]

-sV スイッチで詳細表示, -F スイッチで代表的なポート限定

Samba

ローカルマシンの状態表示
 smbstatus

-d|--debuglevel=[LEVEL : 1〜10] : 表示のデバッグレベル設定, -S|--shares : 共有中ドライブ一覧, -L|--locks : 共有中ファイル一覧, -p|--processes : プロセス一覧, -v|--verbose : 詳細表示

SMBブラウザ
 smbtree

-d|--debuglevel=[LEVEL : 1〜10] : 表示のデバッグレベル設定, -D|--domains : ドメインの一覧だけを表示, -S|--servers : ドメインとサーバーの一覧だけを表示, -U|--user=USERNAME : 検索時に利用するユーザ名を指定

NetBIOS名の検索
 nmblookup [NETBIOS_NAME|WORKGROUP|WORKGROUP#RESOURCE_TYPE]

-M|--master-browser [- --] : マスターブラウザ(MSBROWSE)の検索, -f|--flags [NetBIOS名] : 指定したSMBサーバのフラグを表示, -S|--status [NetBIOS名] : 指定したSMBサーバのステータスを表示, -A|--lookup-by-ip [IP ADDR] : NetBIOS名ではなくIPアドレスを指定する。 [NETBIOS_NAME|WORKGROUP#RESOURCE_TYPE] : 検索対象はNetBIOS名またはワークグループ名とリソースタイプを指定。RESOURCE_TYPE : 00=Workstation 1b=master browser 20=file server。マスターブラウザの検索は nmblookup WORKGROUP#1b で可能。また、サーバ一覧は nmblookup WORKGROUP#00

次の例は、WORKGROUP内のすべてのSMBサーバのIPアドレスを検索し、その中で192.168.1.10の情報を表示する。表示されたリソースタイプで1bがあればマスターブラウザ、20があればファイルサーバの機能がある。

 nmblookup WORKGROUP
 nmblookup -A 192.168.1.10
設定ファイル解析
 testparm

ssh接続

公開鍵認証で接続
 ssh -C -i /path/to/id_rsa user@example.com

id_rsaは秘密鍵ファイル。 -C : 通信を圧縮処理する

tcpdump

指定したインターフェースをダンプする
 tcpdump -i eth1
sshでリモートコンピュータに接続しtcpdumを起動、ローカルのWiresharkで表示
 ssh -x root@example.com tcpdump -i eth0 -s 0 -U -w - | wireshark -k -i -

ssl

証明書の確認(https=443,smtp ssl=465,imap ssl=993,pop ssl=995)
 openssl s_client -connect example.com:[443|465|993|995] [-showcerts] [-CAfile /etc/ssl/certs/ca-certificates.crt]
 openssl s_client -connect example.com:443 [-showcerts] | openssl x509 -text
ローカルの証明書ファイルの内容確認
 openssl x509 -text -noout -in ~/path/to/localcert.pem

rsync

オプションスイッチの概要:

 -a : -r (--recursive) -l (--links) -p (--perms)  -t (--times) -g (--group) -o (--owner) -D の同時設定と同じ
 -v : 詳細表示(転送中のファイル名をリアルタイムに表示)
 -n : プレビューのみ (--dry-run)
 -z : 通信を圧縮する
 --delete : コピー元で削除済みのファイルは、コピー先でも削除する
 --existing : コピー先に存在しないファイルは対象外(新規にファイル作成しない)
 --link-dest=[dir] : dirに同一ファイルが存在すれば、コピーせずにハードリンクを作成
 --exclude='[pattern]' : patternを除外(複数指定の例 --exclude='.Trash*/' --exclude='*.bak')
 --modify-window=[second] : second秒以内は同じタイムスタンプとする(FATの場合1とすれば1秒以内は同一時刻と強制認識させられる)
 --stats : 完了後に転送したファイル集計を表示する

コピー元のディレクトリ末端に / を付けないと、そのディレクトリ自身もコピーされる。

プレビュー
 rsync -avn /path/from/ /path/to/
バックアップ実行
 rsync -av /path/from/ /path/to/
内容を圧縮して転送(ネットワーク経由時に威力発揮する場合も)
 rsync -avz /path/from/ /path/to/
リモートサーバよりバックアップ
 rsync -av user@example.com:/path/from/ /path/to/
sshトンネルで接続(公開鍵認証)
 rsync -av -e "ssh -i /path/to/id_rsa" user@example.com:/path/from/ /path/to/
インクリメンタル バックアップ
 rsync -av --link-dest=/path/to_previous/ /path/from/ /path/to/

wifi

nmcli

詳細なコマンド利用例は「RedHat Enterprise Linux 7 : nmcli を使用する IP ネットワークの設定」などを参照。複雑な設定を行うときなどは、対話形UIのmntuiやnm-connection-editorを使ったほうが安全

表示形式の選択
 nmcli [-t|-p|-f フィールド1,フィールド2,...]
-t:スクリプトで使用するための短い形式(コロン区切り), -p:読みやすい形式, -f:表示フィールドをカスタマイズ
概要
 device (wlp2s0, ...)
   +- radio (wifi)               <- 機内モード、wifi有効/無効の切り替えはここで (nmcli radio wifi on|off)
        +- connection (AP_SSID)  <- AP_SSIDへの接続切り替えはここで (nmcli connection up|down PROFILE_ID)
ネットワークデバイスの状態表示
 nmcli device status
 nmcli device
デバイスとはwifi,ethernet,loなどのこと。かつてはeth0, wlan0などと名称固定に近かったが、最近はeno1, wlp2s0などと接続バスやスロット番号を組み合わせた名前になっている。詳細はUbuntu systemd.net-naming-scheme - Network device naming schemesなどを参照
指定したネットワークデバイスの詳細表示
 nmcli device show IF_NAME
IF_NAMEはstatus表示したときのDEVICEフィールド名を指定する。一例としてはeno1やwlp2s0などのデバイス名のこと
指定したネットワークデバイスのアクティブ化/非アクティブ化
 nmcli device connect|disconnect IF_NAME
 nmcli device up|down IF_NAME
up|downは最新のコマンドでは非推奨。connect|disconnectを利用する
wifi, 携帯データ通信(wwan)の有効/無効
 nmcli radio wifi|wwan on|off
wifi APの一覧
 nmcli device wifi list
wifi APに接続する
 nmcli device wifi connect SSID password PASSWORD [ifname IF_NAME]
wifi APから切断する
 nmcli device disconnect IF_NAME
接続中のwifi APのパスワードを表示する
 nmcli device wifi show-password [ifname IF_NAME]
接続状態の表示
 nmcli connection show [--active]
プロファイルを新規作成
 nmcli connection add con-name PROFILE_ID [ifname IF_NAME] type wifi SSID [AP_SSID]

/etc/NetworkManager/system-connections/ ディレクトリに[プロファイル名.nmconnection]というキーファイルが作成される

作成したプロファイルにWPA-PSKパスワードを追加する
 nmcli connection modify PROFILE_ID wifi-sec.key-mgmt wpa-psk
 nmcli connection modify PROFILE_ID wifi-sec.psk MY_PASSWORD
プロファイルの一覧表示
 nmcli connection show
指定した接続プロファイルの詳細情報を表示
 nmcli -p [--show-secrets] connection show PROFILE_ID
PROFILE_IDはshowコマンドで一覧表示したときのNAMEフィールド名を指定する。デフォルト命名の場合は、NAMEフィールドはSSID名に一致している。--show-secretsスイッチをつけると、パスワードを表示する
指定した接続プロファイルをアクティブ化/非アクティブ化
 nmcli connection up|down PROFILE_ID
非アクティブ化すると、(再度アクティブ化するまで)そのプロファイルでは自動接続できなくなる
指定した接続プロファイル削除
 nmcli connection delete PROFILE_ID

iw系

利用可能なチャンネル・周波数の一覧
 iwlist frequency|channel
サポートしている認証方式 (WPA, WPA2, TKIP ...)
 iwlist IF_NAME auth
サポートしている機能
 iwlist IF_NAME event
APスキャン
 iwlist IF_NAME scan
wifi接続中は、当該APの情報のみ表示。全てのAPスキャン結果を得るには、APとの接続を切断(nmcli connection down PROFILE_ID)しておく必要がある
接続状態の表示
 iwconfig [IF_NAME]
NetworkManagerがネットワーク管理しているため、iw系のコマンドで個別に設定をすることはおそらく無い