網路指令
網路連線、資料傳輸與遠端管理
curl
網絡請求工具
常用參數:
-O: 下載文件-o: 下載並重命名-I: 只顯示 headers-H: 設置 header-v: 顯示詳細信息-L: 跟隨重定向-X: 指定請求方法-d: POST 數據-b: 設置 cookie-N: 禁用輸出緩衝
# 基本請求
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.txtdig
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.8ip
網絡配置工具
# 檢查網絡接口
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.1mosh
移動式 Shell,支援斷線自動續連、低延遲
# 基本連接
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.comnetstat
網絡連接查看
# 列出所有使用的端口
sudo netstat -tulpnnslookup
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: 帳密檔(第一行用戶名,第二行密碼)
rsync
遠程文件同步
rsync -avz source/ destination/sftp
SSH 文件傳輸協議
sftp user@hostss
Socket 統計工具,netstat 的現代替代品
# 列出所有連接
ss
# 列出監聽中的端口
ss -l
# 顯示 TCP 連接
ss -t
# 顯示 UDP 連接
ss -u
# 顯示程序名稱
ss -p
# 常用組合:列出所有監聽的 TCP 端口與程序
ss -tlnp
# 顯示特定端口
ss -tlnp | grep :80
# 顯示連接統計
ss -s
# 顯示 socket 詳細資訊
ss -essh
Remote login
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]Local Forwarding
ssh -L p1:server:p2 remotessh-keygen
生成 SSH 密鑰對
ssh-keygen -t ed25519 -C "XXXXXXXXXXX@gmail.com"
ssh-keygen -t rsa -C "XXXXXXXXXXX@gmail.com"ssh-keyscan
主機密鑰管理
ssh-keyscan -H github.com >> ~/.ssh/known_hostswget
下載文件
wget http://www.some-site.com/some-file.txt -O some-file.txt