在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
参数,可以让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认证,这时curl需要用到--user
参数。
curl --user name:password URL
curl -k URL
curl --limit-rate 速率 URL
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
选项:
常用用法:
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是网络接口
设置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
输出内容:
查询路由表某IP包从哪条路由来:
ip route get IP
修改特定网卡的默认路由:
ip route add DESTINATION [via NEXT_HOP] [src SOURCE_ADDRESS