network command
network related command
net-tools
https://github.com/ecki/net-tools
$ sudo apt-get install net-tools
ifconfig
ifconfig # 查看up的interface
ifconfig -a # 查看所有的interface
ifconfig <bridge>/<interface> up/down
netstat
netstat
-a, --all, --listening # 显示所有socket, 默认只显示connected
-l, --listening # 显示listening
-n, --numeric
-p, --programs # 显示pid或程序名称
# socket选项:
-t, --tcp
-u, --udp
-w, --raw
-x, --unix
--ax25
--ipx
--netrom
# 常用
netstat -anp # 查看哪些端口是打开的.
sudo netstat -anp | grep port # 查看端口是否被使用
sudo netstat -tulnp # 查看tcp&udp端口是否被监听
arp
arp # 用于确定IP地址的网卡物理地址
rarp
hostname
domainname
dnsdomainname
route
Flags:
- U: route is up
- H: target is a host
- G: use gateway
- !: reject route
Genmask: netmask for destination net.
Metric: 到target距离, hops.
Ref: 该路由引用次数
Use: 查找路由的次数
route -n
iputils
https://github.com/iputils/iputils
$ sudo apt-get install iputils-ping
ping
ping # 用于确定网络的连通性
arping
tracepath
clockdiff
traceroute
sudo apt install traceroute
tcpdump
sudo apt-get install tcpdump
tcpdump
tcpdump udp port <port> 抓udp 在port端口的包
tcpdump -i <interface> host <ip>
nc/netcat
// 有的系统默认安装netcat-traditional
$ sudo apt-get install netcat-traditional
// 安装netcat-openbsd
$ sudo apt-get install netcat-openbsd
// 设置默认值
$ sudo update-alternatives --config nc
$ sudo update-alternatives --set nc /bin/nc.openbsd
nc -z IP PORT # 查看指定tcp://ip:port是否监听
nc -zu IP PORT # 查看udp://ip:port是否监听
// 通过nc监听端口
nc -l PORT
// 通过nc发送请求.
echo -e '{"method":"test","params":["test"],"id":1}' | nc IP PORT
brctl
$ sudo apt-get install bridge-utils
brctl show
brctl addbr <bridge> # 添加bridge
brctl delbr <bridge> # 删除bridge
brctl addif <bridge> <interface> # 绑定interface到bridge
brctl delif <bridge> <interface> # 删除bridge上的interface
iproute2
https://github.com/shemminger/iproute2
$ sudo apt-get install iproute2
ip
ip link show
# 创建vlan
ip link add link eth1 name eth1.10 type vlan id 10
# 添加ip
ip addr add 192.168.100.1/24 brd 192.168.100.255 dev eth1.10
# 启动vlan
ip link set dev eth1.10 up
# 关闭vlan
ip link set dev eth1.10 down
# 删除vlan
ip link delete eth1.10
addr/address
ip addr show
route
ip route show
rule
ip rule show
devlink
ifstat
bridge
dnsutils
sudo apt-get install dnsutils
nslookup
nslookup # 查询IP地址和对应的域名
dig
nsupdate
delv
ethtool
sudo apt-get install ethtool
ethtool # 查询网络设备信息
iftop
http://www.ex-parrot.com/~pdw/iftop/
$ sudo apt-get install iftop
sudo iftop
wget
wget [option] [URL]
-a, --append-output=FILE 输出重定向到日志
-o, --output-file=FILE
-q, --quiet 不输出
-b, --background
-nv, --no-verbose
--header "authorization:c2FuZGJveDpTMG5pY3dhbGwK"
-t, --tries=NUMBER 超时重连次数, 0表示不限制, 默认20
-nc, --no-clobber 不覆盖原有文件
-N, --timestamping 只下载比本地新的文件
-c, --continue 断点续传,会覆盖-N
-T, --timeout=SECONDS 超时时间, 默认900s
-w, --wait=SECONDS 重连之间的等待时间
-O, --output-document=FILE, 重命名下载文件
-nH, --no-host-directories 不创建站点的根目录
-x, --force-directories 创建和服务器一样的结构下载
-P, --directory-prefix=PREFIX 指定下载的目录
-R, --reject=LIST 排除下载的文件
-r, --recursive 迭代下载
-np, --no-parent 不下载父目录的内容
# 同步目录
wget -Nc -r -np -nH --cut-dirs=3 -R "index.*, *.js, *.css, *.html, *.jpg, *.png, *.gif" -P /path/to/source/ http://host/path/to/dest/
# ssl + basic auth
wget --no-check-certificate --user <user> --password <pw> -nv -N -P <dest-folder> <src-url>
$ wget -q -N -P /folder url
$ wget -q -c -O /path/to/file.ext url
curl
curl
-X/--request post/patch/delte/get/...
-H/--header 'content-type: application/json'
-d/--data '{"key": "value"}'
--data-raw DATA HTTP POST data, '@' allowed (H)
--data-ascii DATA HTTP POST ASCII data (H)
--data-binary DATA HTTP POST binary data (H)
--data-urlencode DATA HTTP POST data url encoded (H)
-G, --get Send the -d data with a HTTP GET (H)
-k/--insecure ignore ssl check.
-u/--user <user:password>
-s/--silent Silent mode