instructions-for-linux


Linux系统需要定期巡检,以检查服务器软硬件使用情况,相当于对人的体检,确保可以及时发现问题、解决问题,降低损失,常用的巡检命令如下:

# uname -a # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh < 目录名> # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
# ps -ef # 查看所有进程
# top # 实时显示进程状态
# w # 查看活动用户
# id < 用户名> # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看所有用户的定时任务

Linux系统需要别的机器访问自己,或者去访问别的机器,这就需要设置一些网络配置,常用命令如下:

IP命令
# ip addr show eth0 #查看eth0接口IP
# ip link set dev eth0 up #up/down 起动/关闭设备
# ip link set dev eth0 txqueuelen 100 #改变设备传输队列的长度
# ip link set dev eth0 mtu 1500 #改变网络设备MTU(最大传输单元)的值
# ip link set dev eth0 address 00:01:4f:00:15:f1 #修改网络设备的MAC地址
# ip -s -s link ls eth0 #查看eth0网卡信息 等同于ifconfig eth0
# ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0 #为每个地址设置一个字符串作为标签
# ip addr add 192.168.4.2/24 brd + dev eth1 label eth1:1 #在以太网接口eth0上增加一个地址192.168.4.2,掩码长度为24位(155.155.155.0),标准广播地址,标签为eth0:Alias
# ip addr del 192.168.4.1/24 brd + dev eth0 label eth0:1 #ip address delete–删除一个协议地址. 缩写:delete、del、d
# ip addr ls eth0 #ip address show–显示协议地址. 缩写:show、list、lst、sh、ls、l
# ip -s -s a f to 10/8 #删除属于私网10.0.0.0/8的所有地址
# ip -4 addr flush label “eth0” #取消所有以太网卡的IP地址
# ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm #在设备eth0上,为地址10.0.0.3添加一个permanent ARP条目
# ip neigh chg 10.0.0.3 dev eth0 nud reachable #把状态改为reachable
# ip neigh del 10.0.0.3 dev eth0 #删除设备eth0上的一个ARP条目10.0.0.3
# ip route add 192.168.10.0/24 dev eth1 #添加192.168.10.0/24网段转发到eth1
# ip ro #打印本地路由

route命令
# route #显示当前路由
# route del default gw 192.168.0.1 #删除默认网关
# route add default gw 192.168.0.1 #添加默认网关
# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一条路由
# route add -net 224.0.0.0 netmask 240.0.0.0 reject #屏蔽一条路由
# route add -host 192.168.0.2 gw 192.168.0.1 #所有去往192.168.0.2主机的数据包发往网关地址192.168.0.1
# route add -host 10.1.6.18 dev lo:0 #所有去往主机10.1.6.18的路由都通过设备lo:0
# route -n #查看路由表

tracepath&traceroute
# tracepath access.redhat.com #用来追踪连接到目标地址的所经过的路由

netstat命令
# netstat -a #列出所有端口
# netstat -at #列出所有TCP端口
# netstat -au #列出所有UDP端口
# netstat -r #显示核心路由信息
# netstat -i #显示网络接口列表
# netstat -tpnl #显看已连接的TCP端口,以及PID
# netstat -nat | grep“192.168.1.15:22”| awk’{print $ 5}’| awk -F:’{print $ 1}’| sort | uniq -c | sort -nr | head -20 #查看连接某服务端口最多的的IP地址
# netstat -anp | grep 3306 -c #查看3306端口(mysql)的链接数
# netstat -alp | grep 8080 #找出运行在指定端口的进程

nmcli命令
# nmcli connection show # 查看当前连接状态
# nmcli connection reload # 重启服务
# nmcli connection show -active # 显示活动的连接
# nmcli connection show “lan eth0” # 显示指定一个网络连接配置
# nmcli device status # 显示设备状态
# nmcli device show eno16777736 # 显示指定接口属性
# nmcli device show # 显示全部接口属性
# nmcli con up static # 启用static连接配置
# nmcli con up default # 启用default连接配置
# nmcli con add help # 查看帮助

firewall-cmd命令
# firewall-cmd –list-all-zones #查看所有的zone信息
# firewall-cmd –get-default-zone #查看默认zone是哪一个
# firewall-cmd –zone=internal –change-zone=p3p1 #临时修改接口p3p1所属的zone为internal
# firewall-cmd –add-service=http #暂时开放http
# firewall-cmd –permanent –add-service=http #永久开放http
# firewall-cmd –zone=public –add-port=80/tcp –permanent #在public中永久开放80端口
# firewall-cmd –permanent –zone=public –remove-service=ssh #从public zone中移除服务
# firewall-cmd –reload #重新加载配置
# firewall-cmd –zone=public –add-port=80/tcp –permanent #开放80 端口
命令含义:

  --zone #作用域
  --add-port=80/tcp  #添加端口,格式为:端口/通讯协议
  --permanent   #永久生效,没有此参数重启后失效
1,查看 firewall  状态 :  

$ firewall-cmd --state   # eg :running

2,查看 firewall 版本 : 

$ firewall-cmd --version #eg : 0.4.3.2

tcpdump命令
# tcpdump -i eth1 #监视指定网络接口的数据包
# tcpdump host webserver #打印所有进入或离开webserver的数据包.
# tcpdump host 210.27.48.1 #也可以指定ip,例如截获所有210.27.48.1 的主机收到的和发出的所有的数据包
# tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 ) #截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信
# tcpdump ip host 210.27.48.1 and ! 210.27.48.2 #获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
# tcpdump -i eth0 src host webserver #截获主机webserver发送的所有数据
# tcpdump -i eth0 dst host webserver #监视所有送到主机webserver的数据包
# tcpdump tcp port 23 and host 210.27.48.1 #获取主机210.27.48.1接收或发出的telnet包
# tcpdump udp port 123 #对本机的udp 123 端口进行监视 123 为ntp的服务端口
# tcpdump ip and not net localnet #打印所有源地址或目标地址是本地主机的IP数据包
# tcpdump ‘gateway snup and ip[2:2] > 576’ #打印长度超过576字节, 并且网关地址是snup的IP数据包
# tcpdump ‘ether[0] & 1 = 0 and ip[16] >= 224’ #打印所有IP层广播或多播的数据包, 但不是物理以太网层的广播或多播数据报
# tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 #使用tcpdump抓取HTTP包
# tcpdump ‘tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet’ #打印TCP会话中的的开始和结束数据包, 并且数据包的源或目的不是本地网络上的主机.(nt: localnet, 实际使用时要真正替换成本地网络的名字))
# tcpdump ‘tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2 -=”” tcp=”” 12=”” 0xf0=””>>2)) != 0)’ #打印所有源或目的端口是80, 网络层协议为IPv4, 并且含有数据,而不是SYN,FIN以及ACK-only等不含数据的数据包
# tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
#(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
#(2)-i eth1 : 只抓经过接口eth1的包
#(3)-t : 不显示时间戳
#(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
#(5)-c 100 : 只抓取100个数据包
#(6)dst port ! 22 : 不抓取目标端口是22的数据包
#(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
#(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

nc命令
# nc -v -w 2 192.168.1.34 -z 21-24 #端口扫描
上传文件
# nc -l 1234 > test.txt
# nc 192.168.x.x < test.txt

# nc -p 1234 -w 5 blog.51yip.com 80 #建立从本地1234端口到host.example.com的80端口连接,5秒超时
# nc -u 192.168.1.102 53   #udp连接
# nc blog.51yip.com 80     #模拟HTTP Headers

文章作者: Suixin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Suixin !
  目录