一垃喊、curl:發(fā)送各種HTTP請求本谜,指定HTTP頭部等操作
- 常用參數
--referer:指定參照頁字符串(--referer http://www.baidu.com)
--cookie:指定cookie(--cookie "user=root;password=123456")
-A:設置客戶端代理(-A "Mozilla/5.0")
-H:發(fā)送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 <日志文件>:在指定的日志文件中保存執(zhí)行過程
-b:在后臺的方式運行wget
-c:端點續(xù)傳
-r:遞歸下載
-v:顯示詳細執(zhí)行過程
-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:顯示出改設備的統(tǒng)計數據
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:顯示處于活動狀態(tài)的套接字信息
- 常用參數
-a:顯示所有套接字
-n:以數字形式顯示端口號
-l:顯示監(jiān)聽狀態(tài)的套接字
-t:顯示TCP套接字
-u:顯示UDP套接字
-d:顯示DHCP套接字
-w:顯示RAM套接字
-x:顯示UNIX套接字
-p:顯示使用套接字的進程
-s:顯示套接字的使用情況
-4(-6):只顯示IPv4(IPv6)套接字
-e:顯示套接字的詳細信息
-m:顯示套接字的內存使用信息
例1:顯示所有狀態(tài)為established的http連接
ss state established '( dport = :http or sport = :http )' src
例2:用TCP狀態(tài)過濾連接
ss -4 state closing
主要有以下狀態(tài):
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
狀態(tài)集合有以下幾種
all : 所有以上狀態(tài)
connected : 除了listen and closed的所有狀態(tài)
synchronized :所有已連接的狀態(tài)除了syn-sent
bucket : 顯示狀態(tài)為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>:發(fā)送一個設置SYN標志位的TCP報文,默認端口80.
-PA <port_list>:發(fā)送一個設置ACK標志位的TCP報文(提供SYN和ACK兩種ping探測的原因是使通過防火墻的機會盡可能大拐迁,既發(fā)送SYN又發(fā)送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:獲取遠程主機的系統(tǒng)類型以及開放端口(-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:表示標準錯誤
一般在標準輸出女仰、標準錯誤疾忍、標準輸入后還跟著文件狀態(tài)模式:r一罩、w、u等
u:表示該文件被打開并處于讀取/寫入模式
r:表示該文件被打開并處于只讀模式
w:表示該文件被打開并處于
空格:表示該文件的狀態(tài)模式為unknow聂渊,且沒有鎖定
-:表示該文件的狀態(tài)模式為unknow差购,且被鎖定
同時在文件狀態(tài)模式后面,還跟著相關的鎖
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:索引節(jié)點(文件在磁盤上的標識)
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:域名查詢工具,可以測試域名系統(tǒng)是否正常
- 常用參數
@<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:發(fā)送多少個數據包
--report:結果顯示,并不動態(tài)顯示
十二、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 發(fā)送(接收)的所有數據包
tcpdump -i eth0 src(dst) host 192.168.1.1