本文最后更新于:2023年12月5日 晚上
nc
netcat,命令 nc 或 ncat,功能强大的网络工具,网络界的瑞士军刀
示例:
ss
ss 命令用于显示网络状态,利用 ss 可以让你得知整个 Linux 的网络情况
ss 来自于 iproute 包,代替 netstat,netstat 通过遍历 /proc
来获取 socket 信息,主要是/proc/net/tcp
和 /proc/net/tcp6
,ss 使用 netlink 与内核 tcp_diag 模块通信获取 socket 信息,更加高效
一般来说,网络套接字是由 IP 地址,传输协议和端口来定义的。不过需要说明的是套接字不是连接本身,而是连接的端点之一
默认情况下,如果我们运行ss
命令而没有指定其他选项,它将显示所有已建立连接的打开的非侦听套接字的列表
OPTIONS:
-l 示例:查看已经被使用的端口,使用 nc -l 尝试监听 9501 端口,报错提示已经被占用了
FILTER
FILTER : [ state TCP-STATE ] [ EXPRESSION ]
state TCP-STATE:
EXPRESSION :
常用组合:-nt
-ntl
-nta
-ntal
-ntalp
-ntlp
-nua
-ntu
-ntul
示例:
ifconfig
interface config 接口配置,ifconfig 命令用于显示或设置网络设备。 来自于 net-tools 包,建议使用 ip 代替
示例:
示例:
NetworkManager
chkconfig
维护/etc/rc[0-6].d 目录,可以看到目录下都链接文件,有 K 开头和 S 开头,K 开头需要传入 stop 参数,S 开头需要传入 start 参数。init 进程有 0-6 种等级,init 会执行对应 rc 目录下的所有脚本,例如:init0 关机,会执行 rc0.d 目录下的所有脚本,所以可以看到 rc0.d 目录下全都是 K 开头的文件。
init1-5 开机自启,init0、6 关机自动运行。所以可以把管理脚本放到/etc/rc.d/init.d 目录下,然后在 rc[0-6].d 目录下按照一定的命名规范创建软连接即可。chkconfig 命令可以帮我们实现创建、修改、删除等管理软连接的操作,从而实现开机自启、关机自动关闭等功能。
- –add:在 rc[0-6].d 下创建对应链接文件,rc[016].d 下是 K 开头,rc[2-5].d 下是 S 开头
- –del:删除 rc[0-6].d 下对应的链接文件
- –list:列出 chkconfig 管理的所有服务
- on:修改 rc[0-6].d 下对应链接文件,rc[016].d 下是 K 开头,rc[2-5].d 下是 S 开头。如果没有则创建
- off:修改 rc[0-6].d 下对应链接文件为 K 开头。如果没有则创建
chkconfig 适用于 CentOS6,CentOS7 也可以用,但是不推荐,CentOS8 下的 chkconfig 实际上是调用 systemctl
CentOS7、8 推荐使用 systemctl
service 和 systemctl
Linux 服务管理两种方式 service 和 systemctl ,service 配合 init,systemctl 配合 systemd。centos7、8 中的 init 被重定向到 systemd
service
service 命令其实是去/etc/init.d 目录下,去执行相关程序
systemctl
systemctl 集合了 service 和 chkconfig 的所有功能,在 CentOS8 下使用这俩命令实际上是间接调用 systemctl
unit
单元,systemd 中的一个概念,系统初始化需要做的事情非常多。需要启动后台服务,比如启动 ssh
服务;需要做配置工作,比如挂载文件系统。这个过程中的每一步都被 systemd
抽象为一个配置单元,即 unit
。可以认为一个服务是一个配置单元,一个挂载点是一个配置单元,一个交换分区的配置是一个配置单元等等。systemd
将配置单元归纳为以下一些不同的类型。然而,systemd
正在快速发展,新功能不断增加。所以配置单元类型可能在不久的将来继续增加。下面是几个常见的 unit 类型:
配置单元的目录:/usr/lib/systemd/system
route
路由表管理命令
查看路由表
添加路由
示例:
删除路由
怎添加就怎么删除
示例:
ip
来自于 iproute 包,集合了 ifconfig 和 route 的所有功能,官方推荐使用 ip address
和 ip link
代替 ifconfig
命令;使用 ip route
代替 route
命令
ip 地址管理
给网卡 添加 | 删除 ip
address 可以简写为 addr 甚至 a 都可以
示例:给 ens37 网卡添加 ip
ens37 网卡初始状态 ip address show dev ens37
给 ens37 添加 ip:11.0.0.120/24 ip address add 11.0.0.120/24 dev ens37
给 ens37 添加 ip:11.0.0.130/24 同时设置别名 ip address add 11.0.0.130/24 dev ens37 label ens37:1
示例:删除 ens37 网卡的 ip
示例:修改 ens37 网卡的 ip
示例:设置 ip 过期时间
示例:replace 直接替换 ip
网卡管理
示例:临时修改网卡名称
路由管理
示例:
示例:查看路由过程
watch
watch 可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令。
可以用来监测一个命令的运行结果,来监测你想要的一切命令的结果变化。
示例:
arp
管理系统的 arp 缓存
- -n:以数字形式显示 ip
- -d address:删除一个 arp 表项
- -s address hw_addr:添加一个 arp 表项,将 ip 和 MAC 地址绑定
网络测试诊断命令
测试网络连通性
ping
fping
跟踪路由
traceroute
tracepath
mtr
确定名称服务器使用
nslookup
host
dig
抓包工具
tcpdump
wireshark
安全扫描工具
nmap
netcat:网络界的瑞士军刀,即 nc / ncat
流量控制工具
tc
fping
类似 ping,用于将 icmp 探测发送到网络主机,当需要探测多个主机的网络时,fping 性能更高
示例:
如果不想被大量的 ping 和 fping 请求占用资源,可以设置禁止回复 icmp 的请求:
tcpdump ★★★
网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供 and、or、not 等逻辑语句帮助去除无用的信息
示例:
nmap ★★★
扫描远程主机工具,功能远超越用世人皆知的 Ping