一、curl:发送各种HTTP请求,指定HTTP头部等操作
- 常用参数
--referer:指定参照页字符串(--referer http://www.baidu.com)
--cookie:指定cookie(--cookie "user=root;password=123456")
-A:设置客户端代理(-A "Mozilla/5.0")
-H:发送HTTP头部信息(-H " Host:192.168.1.1" -H "Accept-Language:zh-cn")
-u:完成HTTP或者FTP认证(-u user:passwd http://www.baidu.com)
-I:只打印HTTP头部信息
-v:显示 curl 连接过程
例:显示HTTP响应头信息
二、scp:远程文件传输
- 常用参数
-P:指定远程主机的端口号
-p:保留文件的属性
-r:以递归方式复制文件
例1:下载远程主机上的文件到本地
scp -P 22 root@www.imlcs.top:/usr/src/nginx-0.5.38.tar.gz /usr/src
例2:上传本地文件到远程主机
scp -P 22 -p -r /usr/src/nginx-0.5.38 root@www.imlcs.top:/usr/src
三、wget:下载文件
- 常用参数
-a <日志文件>:在指定的日志文件中保存执行过程
-b:在后台的方式运行wget
-c:端点续传
-r:递归下载
-v:显示详细执行过程
-O:下载并修改文件名
例1:下载单个文件并修改文件名和保存到日子文件
wget -O index.html.bak -a wget.log http://www.imlcs.top/index.html
例2:伪装代理名称下载
wget --user-agent "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" http://www.baidu.com/index.html
例3:FTP下载
wget --ftp-user=USERNAME --ftp-password=PASSWORD ftp://imlcs.top/xxx.txt
四、ping(fping):探测主机是否存活
-c:指定ping的次数
-i:指定每次ping花费的时间
-s:指定数据包的大小
例1:ping命令用法
ping baidu.com -i 0.1 -c 2 -s 500
例2:fping读取ip地址文件,输出存活的主机(-a:输出存活的主机,-f:指定文件)
# cat ip.txt
baidu.com
sohu.com
google.com
imlcs.top
163.com
五、ip:显示或配置Linux主机的路由、网络设备和路由等信息
- 常用参数
-s:显示出改设备的统计数据
link:关于设备的相关设定
set <device>
up|down:启动或者关闭某个设备
address:如果设备可以改MAC,用这个参数修改
name:给予这个设备一个名称
mtu:设置最大传输单元
addr:关于额外IP地址的设定
show:单纯的显示设备的IP信息
add|del:添加或者删除额外的IP
IP参数:局域网设定(192.168.1.101/24)
route:与路由相关的设定
show:单纯显示服务器的路由信息
add|del:添加或者删除路由信息
via:从哪个gateway出去(不一定需要)
dev:由哪个连接设备出去
例1:link 用法
ip -s link show:显示整个设备的硬件相关信息
ip link set eth0 up:开启设备
ip link set eth0 down:关闭设备
ip link set mtu 1000:设置mtu
ip link set eth0 name first:修改网卡的名字(修改后网卡配置文件也要改,不然网卡启动不了)
ip link set eth0 address 11:11:11:11:11:11
例2:addr用法
ip -4 addr show eth0:显示eth0的IPv4信息
ip addr add 192.168.1.50/24 boradcast + dev label eth0:eth0:0:添加虚拟IP地址
ip addr del dev eth0:0 192.168.1.50/24:删除虚拟IP地址
例3:route用法
ip route show:显示路由信息(个人感觉没有 "route -n" 好用)
ip route add 192.168.5.0/24 via 192.168.5.88 dev eth0:添加一条到达网段的路由信息
ip route del 192.168.5.0/24
六、ss:显示处于活动状态的套接字信息
- 常用参数
-a:显示所有套接字
-n:以数字形式显示端口号
-l:显示监听状态的套接字
-t:显示TCP套接字
-u:显示UDP套接字
-d:显示DHCP套接字
-w:显示RAM套接字
-x:显示UNIX套接字
-p:显示使用套接字的进程
-s:显示套接字的使用情况
-4(-6):只显示IPv4(IPv6)套接字
-e:显示套接字的详细信息
-m:显示套接字的内存使用信息
例1:显示所有状态为established的http连接
ss state established '( dport = :http or sport = :http )' src
例2:用TCP状态过滤连接
ss -4 state closing
主要有以下状态:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
状态集合有以下几种
all : 所有以上状态
connected : 除了listen and closed的所有状态
synchronized :所有已连接的状态除了syn-sent
bucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.
big : 和bucket相反.
例3:匹配本地(远端)IP地址或者端口号
ss src(dst) 192.168.1.1:http
七、nmap:端口扫描工具
- 常用参数
主机范围:
-iL <filename>:扫描文件中的主机地址
--exclude <host1,host2>:排除主机(网络)
主机扫描:
-sP:只进行ping扫描(确定主机是否能ping通)
-P0:对所有指定的IP地址进行所要求的扫描
-PS <port_list>:发送一个设置SYN标志位的TCP报文,默认端口80.
-PA <port_list>:发送一个设置ACK标志位的TCP报文(提供SYN和ACK两种ping探测的原因是使通过防火墙的机会尽可能大,既发送SYN又发送ACK)
-PU:UDP ping扫描
-PE:ICPM ping;
-PR:ARP ping
-n:不用域名解析
端口扫描:
-sS:TCP SYN扫描
-sT:TCP connect 扫描
-sU:UDP 扫描
-sA:TCP ACK扫描
端口范围:
-p <port range>:指定想要扫描的端口范围(参数 -p U:53,111,137,T:21-25,80,139,8080 将扫描UDP 端口53,111,和137,同时扫描列出的TCP端口。注意,要既扫描 UDP又扫描TCP,必须指定 -sU ,以及至少一个TCP扫描类型(如 -sS,-sF,或者 -sT)。如果没有给定协议限定符, 端口号会被加到所有协议列表)
例1:获取远程主机的系统类型以及开放端口(-v:显示详细信息)
nmap -A -v 192.168.1.1
例2:列出开放了指定端口的主机列表
nmap -sT -n -p 80 192.168.1.0/24 | grep -B 3 open | grep Nmap
例3:寻找所有网络中的在线主机
nmap -sP -n 192.168.1.0/24
八、lsof:查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)
- 常用参数
-a 列出打开文件存在的进程
-c<进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d<文件号> 列出占用该文件号的进程
+d<目录> 列出目录下被打开的文件
+D<目录> 递归列出目录下被打开的文件
-n<目录> 列出使用NFS的文件
-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情
COMMAND:进程的名称
PID:进程标识符
PPID:父进程标识符(需要指定-R参数)
USER:进程所有者
PGID:进程所属组
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
cwd:表示current work dirctory,即:应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改
txt :该类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序
lnn:library references (AIX);
er:FD information error (see NAME column);
jld:jail directory (FreeBSD);
ltx:shared library text (code and data);
mxx :hex memory-mapped type number xx.
m86:DOS Merge mapped file;
mem:memory-mapped file;
mmap:memory-mapped device;
pd:parent directory;
rtd:root directory;
tr:kernel trace file (OpenBSD);
v86 VP/ix mapped file;
0:表示标准输出
1:表示标准输入
2:表示标准错误
一般在标准输出、标准错误、标准输入后还跟着文件状态模式:r、w、u等
u:表示该文件被打开并处于读取/写入模式
r:表示该文件被打开并处于只读模式
w:表示该文件被打开并处于
空格:表示该文件的状态模式为unknow,且没有锁定
-:表示该文件的状态模式为unknow,且被锁定
同时在文件状态模式后面,还跟着相关的锁
N:for a Solaris NFS lock of unknown type;
r:for read lock on part of the file;
R:for a read lock on the entire file;
w:for a write lock on part of the file;(文件的部分写锁)
W:for a write lock on the entire file;(整个文件的写锁)
u:for a read and write lock of any length;
U:for a lock of unknown type;
x:for an SCO OpenServer Xenix lock on part of the file;
X:for an SCO OpenServer Xenix lock on the entire file;
space:if there is no lock.
TYPE:文件类型,如DIR、REG等,常见的文件类型
DIR:表示目录
CHR:表示字符类型
BLK:块设备类型
UNIX: UNIX 域套接字
FIFO:先进先出 (FIFO) 队列
IPv4:网际协议 (IP) 套接字
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
例1:查找某个文件相关的进程
lsof /bin/zsh
例2:遍历查看某个目录的所有文件信息
lsof +D /lib64
例3:列出某个用户打开的文件
lsof -u username
例4:李处某个进程打开的文件
lsof -c mysql
例5:列出除了某个用户外的被打开的文件信息
lsof -u ^root
例6:通过多个进程号显示该进行打开的文件
lsof -p 1,2,3
例7:列出所有的网络连接
lsof -i
例8:列出所有的TCP(UDP)连接
lsof -i tcp(udp)
例9:列出COMMAND列中包含字符串" sshd",且文件描符的类型为txt的文件信息
lsof -c sshd -a -d txt
例10:列出被进程号为1234的进程所打开的所有IPV4 network files
lsof -i 4 -a -p 1234
九、dig:域名查询工具,可以测试域名系统是否正常
- 常用参数
@<xxx.xxx.xxx.xxx>:指定DNS服务器地址
-b:当本地主机有多个IP地址时,指定本机进行DNS查询的IP地址
-f:查询文件中的域名信息
-P:指定域名服务器所使用的端口
-x:查询PTR记录
-4(-6):使用IPv4(IPv6)
例1:查询域名的A记录
例2:查询PTR记录
十、host:和dig命令作用基本一样
例1:显示详细的DNS信息
十一、mtr:显示主机到主机间的路由图
- 常用参数
-n:不解析主机名
-c:发送多少个数据包
--report:结果显示,并不动态显示
十二、tcpdump:抓包工具
- 常用选项
-n:禁用域名解析
-c:指定抓取的数据包个数
-X:按16进制输出完成的数据包
-i 指定网卡
-vvvv:是两个选项的组合-v会输出稍微详细一点的信息包括校验和ttl之类的;-vvv会尝试解析应用层协议
-w <filename>:捕获结果保存到文件中
例1:捕获 192.168.1.1 和 192.168.1.2 或者 baidu.com 之间通信的数据包
tcpdump host 192.168.1.14 and \(192.168.1.2 or baidu.com \) -vvvv -n -c 20
例2:捕获 192.168.1.14和任何主机通信的数据包(排除 baidu)
tcpdump ip host 192.168.1.14 and not baidu.com -vvvv -n -c 10
例3:捕获主机 192.168.1.1 发送(接收)的所有数据包
tcpdump -i eth0 src(dst) host 192.168.1.1