随意更改网络连接、端口等配置会导致意想不到的结果。
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 连接
网络通信实质上是两个进程间的通信。
网络各层都有对应的协议。
传输层协议主要有 TCP 和 UDP。
同种传输层协议不能放在一个端口上;不同传输层协议可以放在一个端口上。
应用层协议通常有默认的端口,如 SSH 对应 22
端口,HTTP 对应 80
端口,HTTPS 对应 443
端口。
上面提到的这三个应用层协议基于 TCP。
端口号范围 0
~65535
。
0
~1023
为知名端口号,由 ICANN 管理,基本上都有固定的用途,只有系统进程或有特权的进程可用。1024
~49151
为注册端口号49152
~65535
为动态端口号 / 私有端口号查看某些服务与端口号之间的联系:
cat /etc/services
Linux:
sudo netstat -tlunp
例:
Windows:
netstat -ano
例:
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
wget
- 下载文件wget [选项] URL
不指定选项,会存到当前目录下,文件名根据 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
- 构建网络请求curl [选项] URL
返回响应体。
选项特别多,举几个例子:
-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"
}