ネットワークコマンド

ネットワーク接続(せつぞく) 、データ転送(てんそう) 、リモート管理(かんり)

curl

ネットワークリクエスト(リクエスト) ツール

常用(じょうよう) パラメータ:

  • -O : ファイルをダウンロード
  • -o : ダウンロードして名前(なまえ)変更(へんこう)
  • -I : ヘッダーのみを表示(ひょうじ)
  • -H : ヘッダーを設定(せってい)
  • -v : 詳細(しょうさい) 情報(じょうほう)表示(ひょうじ)
  • -L : リダイレクトに(したが)
  • -X : リクエストメソッドを指定(してい)
  • -d : POST データ
# 基本リクエスト
curl https://reqbin.com/echo/get/json -H "Accept: application/json" -H "Authorization: Bearer {token}"

# POST リクエスト
curl -X POST https://testapi.net/prod/user/remove -H "Accept: application/json" -H "Authorization: Bearer ..."

# Body 付きリクエスト
curl -X POST -d '{"sql": "SELECT * FROM customers","db": "demo_data"}' -H "Content-Type: application/json" http://localhost:3000/sql-query

# ファイルをダウンロード
curl -O http://www.some-site.com/some-file.txt

dig

DNS 照会(しょうかい) ツール。nslookup より強力(きょうりょく)

# 基本照会
dig example.com

# 特定のレコードタイプを照会
dig example.com A
dig example.com MX
dig example.com TXT
dig example.com NS

# 簡潔な出力
dig +short example.com

# DNS 解決プロセスを追跡
dig +trace example.com

# DNS サーバーを指定
dig @8.8.8.8 example.com

# 逆引き照会
dig -x 8.8.8.8

ip

ネットワーク設定(せってい) ツール

# ネットワークインターフェースを確認
ip link

# ゲートウェイを追加
ip route add 192.168.2.0/24 via 192.168.1.1

# IP アドレスを確認
ip addr

# IP アドレスを設定
ip addr add 192.168.1.10/24 dev eth0

# ルーティングテーブルを確認
ip route

# ルートを削除
sudo ip route del 192.168.0.0/24 via 192.168.1.1

mosh

モバイルシェル。切断(せつだん) 自動(じどう) 再接続(さいせつぞく)(てい) レイテンシをサポート

# 基本接続
mosh user@host

# SSH ポートを指定
mosh --ssh="ssh -p 2222" user@host

# mosh サーバーポートを指定
mosh -p 60001 user@host

# tmux と組み合わせて使用
mosh user@host -- tmux attach

特徴(とくちょう)

  • ネットワーク切替(きりかえ) (WiFi ↔ 4G)でも切断(せつだん) しない
  • (こう) レイテンシ環境(かんきょう) でもリアルタイム応答(おうとう)
  • 自動(じどう) 再接続(さいせつぞく)

mtr

ネットワーク診断(しんだん) ツール。traceroute と ping を統合(とうごう)

# 基本診断
mtr example.com

# レポートモード(非インタラクティブ)
mtr -r example.com

# レポート回数を指定
mtr -r -c 10 example.com

# IP を表示(ホスト名を解決しない)
mtr -n example.com

# TCP モード
mtr --tcp example.com

# ポートを指定
mtr --tcp --port 443 example.com

netstat

ネットワーク接続(せつぞく) 確認(かくにん)

# 使用中のすべてのポートを一覧表示
sudo netstat -tulpn

nslookup

DNS 照会(しょうかい)

nslookup [domain]

openvpn

VPN クライアント。暗号化(あんごうか) された VPN 接続(せつぞく)確立(かくりつ)

# 設定ファイルで接続
sudo openvpn --config client.ovpn

# バックグラウンドで実行
sudo openvpn --config client.ovpn --daemon

# 認証ファイルを指定
sudo openvpn --config client.ovpn --auth-user-pass auth.txt

# 接続状態を確認
sudo systemctl status openvpn@client

常用(じょうよう) 設定(せってい)

  • .ovpn : OpenVPN 設定(せってい) ファイル
  • auth.txt : 認証(にんしょう) ファイル(1行目(ぎょうめ) ユーザー(めい) 、2行目(ぎょうめ) パスワード)

ss

ソケット統計(とうけい) ツール。netstat の現代(げんだい) (てき)代替(だいたい)

# すべての接続を一覧表示
ss

# リスニング中のポートを一覧表示
ss -l

# TCP 接続を表示
ss -t

# UDP 接続を表示
ss -u

# プログラム名を表示
ss -p

# 常用コンボ:すべてのリスニング TCP ポートとプログラムを一覧表示
ss -tlnp

# 特定のポートを表示
ss -tlnp | grep :80

# 接続統計を表示
ss -s

# ソケット詳細情報を表示
ss -e

ssh

リモートログイン

ssh <username>@<server> -p <port>
# 鍵をテスト
ssh -T git@github.com

# 古いホスト鍵を削除
ssh-keygen -R bitbucket.org

# 鍵でログイン
ssh -i [key] -v [username]@[ip]
ssh -i [Key.pem] ec2-user@[IP]

ssh-keygen

SSH (かぎ) ペアを生成(せいせい)

ssh-keygen -t ed25519 -C "XXXXXXXXXXX@gmail.com"
ssh-keygen -t rsa -C "XXXXXXXXXXX@gmail.com"

wget

ファイルをダウンロード

wget http://www.some-site.com/some-file.txt -O some-file.txt