文章目录
一、curl
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具
curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,在"标准输出"(stdout)上显示。它支持多种协议
- 查看网站源码
直接在curl命令后加上网址,就可以看到网页源码
curl URL
如果要把这个网页保存下来,可以使用-o
参数
curl -o [文件名] URL
- 自动跳转
有的网址是自动跳转的。使用-L
参数,curl就会跳转到新的网址。
curl -L URL
- 显示头信息
-i
参数可以显示http response的头信息,连同网页代码一起。
curl -i URL
-I
参数则是只显示http response的头信息
- 显示通信过程
-v
参数可以显示一次http通信的整个过程,包括端口连接和http request头信息。
curl -v URL
可以查看更详细的通信过程:
curl --trace-ascii FILENAME URL
运行后,打开FILENAME文件查看
- 模拟设备
–user-agent 字段是用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同设备,返回不同格式的网页,比如手机版和桌面版。
curl --user-agent "User Agent" URL
- cookie
使用--cookie
参数,可以让curl发送cookie。
curl --cookie "name=xxx" URL
至于具体的cookie的值,可以从http response头信息的Set-Cookie
字段中得到
将服务器设置的 Cookie 写入一个文件
curl -c FILENAME URL
-c cookie-file
可以保存服务器返回的cookie到文件,-b cookie-file
可以使用这个文件作为cookie信息,进行后续的请求。
$ curl -c cookies http://URL
$ curl -b cookies http://URL
- 增加头信息
有时需要在http request之中,自行增加一个头信息。就要使用--header
参数
curl --header "Content-Type:application/json" URL
- HTTP认证
有些网域需要HTTP认证,这时curl需要用到--user
参数。
curl --user name:password URL
- 跳过 SSL 检测
curl -k URL
- 限制网速
curl --limit-rate 速率 URL
二、ip
ip是iproute2软件包里面的一个强大的网络配置工具。可以用于显示或操作路由、网络设备、设置路由策略和通道等
用法:
ip [ OPTIONS ] OBJECT {
COMMAND | help }
Object对象可以是: link 网络设备、addr 设备的协议地址、route 路由表、rule 策略、neigh arp缓存、tunnel ip通道、maddr 多播地址 mroute、多播路由
COMMAND是操作命令,不同的对象有不同的命令设置
对象支持的命令:
-
link(网络设备)对象支持的命令:set、show
-
addr(设备上的协议地址)对象支持的命令:add、del、flush、show
-
route(路由)对象支持的命令:list、flush、get、add、del、change、append、replace、monitor
-
rule(路由策略)对象支持的命令:list、add、del、flush
-
neigh对象支持的命令:add、del、change、replace、show、flush
-
tunnel对象支持的命令:add、change、del、show
-
maddr支持的命令:add、del
-
mroute支持的命令:show
选项:
- -s :显示详细的信息
- -f : 指定协议类型
- -4 :指定使用的网络层协议是IPv4协议
- -6 :指定使用的网络层协议是IPv6协议
- -o :输出信息每条记录输出一行,即使内容较多也不换行显示
- -r :使用系统名字解析DNS
常用用法:
- 显示网卡及配置信息
ip addr show
[root@admin ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e7:fb:e7 brd ff:ff:ff:ff:ff:ff
inet 192.168.126.8/24 brd 192.168.126.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fee7:fbe7/64 scope link
valid_lft forever preferred_lft forever
输出内容:
可以看到,系统有两个接口:lo和ens32,lo是环回接口,ens32是网络接口
- <BROADCAST,MULTICAST,UP,LOWER_UP>:BROADCAST表示该接口支持广播;MULTICAST表示该接口支持多播;UP表示该网络接口已启用;LOWER_UP表示网络电缆已插入,设备已连接至网络
- mtu 1500:最大传输单位(数据包大小)为1,500字节
- qdisc pfifo_fast:用于数据包排队
- state UP:网络接口已启用
- group default qlen 1000:默认传输队列长度
- link/ether 00:0c:29:e7:fb:e7:接口的MAC(硬件)地址
- brd ff:ff:ff:ff:ff:ff:广播地址
- inet 192.168.126.8/24:IPv4地址
- brd 192.168.126.255:广播地址
- scope global:全局有效
- noprefixroute ens32:地址是静态分配
- valid_lft forever:IPv4地址的有效使用期限
- preferred_lft forever:IPv4地址的首选生存期
- inet6 fe80::20c:29ff:fee7:fbe7/64:IPv6地址
- scope link:仅在此设备上有效
- valid_lft forever:IPv6地址的有效使用期限
- preferred_lft forever:IPv6地址的首选生存期
- IP管理
设置IP:
ip addr add IP/Mask dev interface
删除配置的IP:
ip addr del IP/Mask dev interface
- 改变设备的属性
启用网卡:
ip link set interface up
禁用网卡:
ip link set interface down
改变网络设备MTU(最大传输单元)的值:
ip link set dev interface mtu NUM
修改网络设备的MAC地址:
ip link set dev interface address MACADDRESS
开启网卡的混杂模式:
ip link set interface promisc on
关闭网卡的混杂模式:
ip link set interface promisc off
- 路由配置
查看路由信息:
ip route [show]
#route 或 route -n ;netstat -r 或 netstat -nr
[root@admin ~]# ip route show
default via 192.168.126.2 dev ens32 proto static metric 100
192.168.126.0/24 dev ens32 proto kernel scope link src 192.168.126.8 metric 100
输出内容:
- 第一条是默认路由
- metric 100 :跳跃计数,确定网关的优先级。Metric的值越小,优先级越高
- proto kernel:该路由的协议,主要有redirect,kernel,boot,static,ra等,其中kernel指的是直接由核心判断自动设定
查询路由表某IP包从哪条路由来:
ip route get IP
修改特定网卡的默认路由:
ip route add DESTINATION [via NEXT_HOP] [src SOURCE_ADDRESS]