本篇笔记记录一些在类 Unix 系统上操作查看网络相关的内容,包括一些基本网络管理,查询,性能监测等等内容。
抓包
一般我们会使用 wireshark 来抓包,这个工具可以抓取网络中的数据包,并且可以对数据包进行分析。但是在 Linux 上我们可以通过如下的方式进行抓包:
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
tcpdump过滤HTTP的POST请求:
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
tcpdump过滤HTTP的请求和响应头信息,以及请求和响应消息体信息:
tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
tcpdump -X -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
[
命令的详细解释]:
查看端口使用情况
$ netstat -ntlp #查看当前所有tcp端口·
$ netstat -ntulp | grep 80 #查看所有80端口使用情况·
$ netstat -an | grep 3306 #查看所有3306端口使用情况·
相关参数的解释:
- n:不进行 DNS 解析,只显示 IP 地址和端口号;
- t:显示 TCP 端口
- u:显示 UDP 端口
- l: 显示监听的 socket
- p:显示标识符和进程号
删除桥接网络
$ sudo ip link delete br0 type bridge
如果该网络是由 docker 创建的,可以尝试使用
$ docker network prune
查看路由表
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.21.0.1 0.0.0.0 UG 100 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.21.0.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
在 Mac OSX 上,我们可以使用netstat
来查看具体的路由表
$ netstat -rn
redis connect
查看 redis 的服务是否正常 ping 通
$ telnet xxxx 6379
Caddy
重载配置
$ systemctl reload caddy
查看日志
$ journalctl --no-pager -u caddy
查看状态
$ systemctl status caddy
caddy 证书位置
$ cd /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/
$ ls
xxx.key xxx.crt
caddy trust
当出现如下日志时:
Jul 19 20:59:32 ubuntu-vm sudo[10043]: pam_unix(sudo:auth): conversation failed
Jul 19 20:59:32 ubuntu-vm sudo[10043]: pam_unix(sudo:auth): auth could not identify password for [caddy]
Jul 19 20:59:32 ubuntu-vm sudo[10043]: caddy : user NOT in sudoers ; TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/tee /usr/local/share/ca-certificates/Caddy_Local_Authority_-_2021_ECC_Root_158313951851744774645843564988098209363.crt
可以使用如下方式添加信任:
$ sudo HOME=~caddy caddy trust