网络相关的命令
约 811 个字 72 行代码 3 张图片 预计阅读时间 4 分钟
Warning
随意更改网络连接、端口等配置会导致意想不到的结果。
ip
- 查看网络相关信息
CentOS 下均需要 root 权限;Ubuntu 下查看不需要 root 权限。
ip link [ show] # 查看网络设备信息
ip addr [ show] # 查看网络地址信息
ip link show ens160 # 查看 ens160 的设备信息
ip addr show ens160 # 查看 ens160 的地址信息
ip link set ens160 up # 开启 ens160 连接
ip link set ens160 down # 关闭 ens160 连接
扩展:Linux ip 命令 | 菜鸟教程
端口
概念
网络通信实质上是两个进程间的通信。
网络通信的简化结构
协议
网络各层都有对应的协议。
传输层协议主要有 TCP 和 UDP。
同种传输层协议不能放在一个端口上;不同传输层协议可以放在一个端口上。
应用层协议通常有默认的端口,如 SSH 对应 22
端口,HTTP 对应 80
端口,HTTPS 对应 443
端口。
上面提到的这三个应用层协议基于 TCP。
端口号
端口号范围 0
~65535
。
0
~1023
为知名端口号,由 ICANN 管理,基本上都有固定的用途,只有系统进程或有特权的进程可用。
1024
~49151
为注册端口号
49152
~65535
为动态端口号 / 私有端口号
查看某些服务与端口号之间的联系:
查看端口情况
Linux:
例:
Linux 查看端口情况
Windows:
例:
PS Z :\> netstat -ano
活动连接
协议 本地地址 外部地址 状态 PID
TCP 0 . 0 . 0 . 0 : 135 0 . 0 . 0 . 0 : 0 LISTENING 628
TCP 0 . 0 . 0 . 0 : 445 0 . 0 . 0 . 0 : 0 LISTENING 4
TCP 0 . 0 . 0 . 0 : 3389 0 . 0 . 0 . 0 : 0 LISTENING 1148
TCP 10 . 94 . 5 . 157 : 57694 10 . 94 . 0 . 153 : 22 ESTABLISHED 8072
TCP 10 . 94 . 5 . 157 : 60037 10 . 94 . 0 . 153 : 5365 CLOSE_WAIT 8180
TCP 10 . 94 . 5 . 157 : 60038 10 . 94 . 0 . 153 : 5365 CLOSE_WAIT 8180
TCP [::]: 135 [::]: 0 LISTENING 628
TCP [::]: 445 [::]: 0 LISTENING 4
TCP [::]: 3389 [::]: 0 LISTENING 1148
UDP 0 . 0 . 0 . 0 : 123 *:* 1280
UDP 127 . 0 . 0 . 1 : 64785 *:* 2640
UDP [::]: 3389 *:* 1148
UDP [ fe80 :: 2cbe : 1f6d : 6536 : c8e6 % 7 ]: 1900 *:* 912
scp
- 通过 SSH 传输文件
scp [ 选项] [[ 源用户@] 源地址:] 源文件 [ ...] [[ 目标用户@] 目标地址:] 目的地目录或文件
如果源文件 / 目的地在远程主机上,要在路径前加上 用户名@主机地址:
。
新版 Windows 也可用此命令,不过因为一般 Windows 上没有开 SSH 服务器,故如果文件涉及到 Windows 主机,需要在 Windows 上进行操作。
常用选项:
-r
:递归复制(复制目录时有用)
-p
:保留文件的修改时间、访问时间、访问权限
-P 端口号
:定义端口号
-i 密钥文件路径
:定义密钥文件
例:
PS Z :\> scp -r Z :\. config \ ding @192 . 168 . 1 . 100 :/ home / ding / 0606temp /
ding @192 . 168 . 1 . 100 's password:
gitk 100% 1900 1.9KB/s 00:00
config 100% 242 0.2KB/s 00:00
PS Z:\> scp ding@192.168.1.100:/home/ding/jenkins_2.344_all.deb Z:\
ding@192.168.1.100' s password :
jenkins_2 . 344_all . deb 6 % 5216KB 376 . 8KB / s 03 : 33 ETA
发送网络请求
HTTP 请求基本流程
HTTP 请求基本流程
wget
- 下载文件
不指定选项,会存到当前目录下,文件名根据 URL 确定。
常用选项:
-O 文件
:存为指定文件
-P 路径
:存到指定路径
例:
ding@ding-server:~$ wget https://static.a4ding.com/doc/auto_test/0001_selenium_python_basic.pdf
--2022-06-06 15 :12:10-- https://static.a4ding.com/doc/auto_test/0001_selenium_python_basic.pdf
Resolving static.a4ding.com ( static.a4ding.com) ... 106 .14.230.57
Connecting to static.a4ding.com ( static.a4ding.com) | 106 .14.230.57| :443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14771347 ( 14M) [ application/pdf]
Saving to: ‘0001_selenium_python_basic.pdf’
0001_selenium_python_basic.pdf 100 %[======================================================================= >] 14 .09M 13 .4MB/s in 1 .1s
2022 -06-06 15 :12:11 ( 13 .4 MB/s) - ‘0001_selenium_python_basic.pdf’ saved [ 14771347 /14771347]
curl
- 构建网络请求
返回响应体。
选项特别多,举几个例子:
-o 文件
:保存响应体到文件(相当于 wget
)
-L
:自动重定向
-i
:显示响应头信息
-v
:显示通信过程
-X 请求方法
:定义请求方法(默认为 GET
)
--data "xxx=yyy"
:添加请求参数信息
--data-urlencode "xxx=yyy"
:同上,但经过编码
--form xxx=yyy
:添加表单信息
--form xxx=@文件
:同上,但传入文件
--user-agent "字符串"
:定义 UA
--cookie "xxx=yyy"
:添加 Cookie
-c 文件
:保存 Cookie 到文件
-b 文件
:从文件读取 Cookie
--header "文本"
:增加请求头信息
--user 用户名:密码
:添加 HTTP 认证信息
例:
ding@ding-server:~$ curl -X POST --data "par=val" --data "par2=val2" --user-agent "ding-test-ua" \
> --cookie "dc1=dcv1" --header "test: Ding test header" http://httpbin.org/post
{
"args" : {} ,
"data" : "" ,
"files" : {} ,
"form" : {
"par" : "val" ,
"par2" : "val2"
} ,
"headers" : {
"Accept" : "*/*" ,
"Content-Length" : "17" ,
"Content-Type" : "application/x-www-form-urlencoded" ,
"Cookie" : "dc1=dcv1" ,
"Host" : "httpbin.org" ,
"Test" : "Ding test header" ,
"User-Agent" : "ding-test-ua" ,
"X-Amzn-Trace-Id" : "Root=1-629db63c-42211eac2aabf32835694e81"
} ,
"json" : null,
"origin" : "106.14.136.18" ,
"url" : "http://httpbin.org/post"
}
延伸
参考资料