作用:实现域名的解析!
www.baidu.com => 14.215.177.37
域名:
www.baidu.com 实际域名为: www.baidu.com.
域名的解析,是反向的。
最后的. 是“根域名"
根域名(.)下面有13个顶级域名
com
org
net
...
NDS的域名解析过程:
原理:参考图。
本地域名服务器:是由网络服务提供商来维护的。
根域名服务器、com顶级域名服务器,都是Internet网络管理协会维护的。
baidu.com域名服务器(授权域名服务器),是网站、公司维护的。
补充:本地域名服务器,会把解析到的IP地址缓存到自己的高速缓存,
但是有时间限制的,最长72小时。
局域网上网的过程:
原理:参考图。
网络故障的排查:
1)网络检查
ping 常用的域名
比如: ping www.baidu.com
可以记住几个常用的外网IP地址。
ping 外网IP地址
ping 网关IP
ping 127.0.0.1
traceroute
可跟踪路由
例: traceroute www.baidu.com
检测服务器的指定端口是否可以,
即检查服务器的指定服务是否可用。
# nmap 10.0.0.25 -p 80
检查提示信息中是否有"open"
2. 抓包工具
Linux常用:tcpdump
Windows常用:tcpdump
# tcpdump -n icmp -i eth0
注意:-n是抓指定协议的包
可省略
-i 转指定网卡的包
补充:
怎样获取域名对应的IP地址:
方法1. # nslookup www.baidu.com
方法2. # host www.baidu.com
方法3. # ping www.baidu.com
查看结果信息
小结:
局域网的电脑无法上网,如何解决?
1)检查物理链路是否通畅
2)本地的IP地址设置的是否合适。
DNS设置是否合适。
3) ping www.baidu.com
ping 外网IP
ping 网关
ping 127.0.0.1
4) 使用抓包工具
-----------------------------------
SSH服务
1. SSH服务的使用架构
SSH客户端 <------------------> SSH服务器
使用SSH2协议
1个SSH服务器可同时支持多个SSH客户端。
2. SSH的介绍
SSH, 是Secure Shell Protocol
SSH比windows中常用的telnet更安全。
SSH的功能:
1) 远程登录
2)使用SFTP
SSH的特点:
ssh是安全的加密的协议。
默认端口是22
3. SSH的使用
1)查询是否已经安装ssh
# rpm -qa openssh
版本:ssh1.x 和ssh2.x版本
服务器端的版本和客户端需要一致。
2)查看ssh服务的状态
# /etc/sshd status
3) ssh的使用
ssh是通过端操作命令来使用。
客户端可使用的命令:
ssh, scp, slogin, sftp(安装的文件传输)
4. ssh的传输原理
-------- 客户端向ssh服务器发连接请求 --------
| 客户端 | (1)------------------------------------> | 服务器 |
|client | 服务器提供一个密钥(公钥)给客户端 | server |
| | (2) <----------------------------------- | |
| | client把公钥和自己的私钥生成1个密钥对 | |
| | (3)-------------------------------------> | |
| | 使用这个密钥对 | |
| | (4) <---------------------------------> | |
补充:客户端自己生成1个“随机”的密码,称为“私钥”,相当与一个钥匙
服务端自己也有1个密码,称为“共钥”, 相当与锁
5. ssh的加密技术
把信息,通过算法,变成“无法理解”的信息,发送到对端
对段再用对应的算法解密 ,把信息还原。
ssh2同时支持RSA和DSA两种加密算法
ssh1只支持RSA加密算法
6. SSH1.x的加密
支持RSA加密算法。
(1)ssh服务启动时,就会生成1个768位(CentOS5.x版本为768位,
CentOS6.x版本,就有1024位)的临时公钥
(2)当client发情请求时,
server就把这个768(或1024)的公钥传递个client
(3) client收到公钥以后,就和以前存储的公钥对比一下,检查是否一致。
公钥保存在~/.ssh/known_hosts 文件。
如果不相同,在CentOS5.x版本中,就把这个文件删除,再次发起连接。
在CentOS6.x版本,就直接覆盖原来的文件。
client自己生成1个256位的是私钥,
然后使用某种算法把公钥和私钥生成1个密钥对
最后把这个密钥对传递给server
(4) 以后,client和server就使用这个密钥对传输数据。
SSH的认证类型
1)基于口令的认证(更常用)
只需要知道ssh服务端的用户名以及该用户名的密码
(当然,还需知道ssh服务器的ip地址,以及ssh的端口号)
# ssh -p22 root@192.168.1.120
-p指定ssh的端口号,如果是默认端口22,就可以不用指定
2) 基于密钥的认证
不需要用户输入密码
SSH服务的配置
/etc/ssh/sshd_config
--------------------------------
Port 50000 #默认是22, 如果修改为其他端口,应该在防火墙中添加该端口
PermitRootLogin no #禁止以root用户登录,更安全
PermitEmptyPasswords no #禁止以空密码登录
UseDNS no #不使用DNS解析,可以加快速度
GSSAPIAuthentication no #可以加快速度
补充:
端口扫描
# nmap 192.168.1.120 -p22
查询192.168.1.120的22端口是否在使用
# nmap 192.168.1.120 -p1-65535
查询192.168.1.120的所有端口中正在使用的端口
SSH客户端的使用
1. 远程登录
# ssh -p22 root@192.168.1.120
如果使用的是默认端口,-p选项可以省略。
补充:logout
2. 直接执行命令
# ssh -p22 root@192.168.1.120 /sbin/ifconfig eth0
相当与,在192.168.1.120主机中,以root用户的权限,执行指定命令
命令执行完之后,自动回到客户端
最后接的命令必须使用绝对路径,环境变量在此时无效。
3. 远程拷贝(不加密)
推(client -> server, 就是上传)
# scp -P50000
scp -P50000 day11.txt liubei@192.168.1.120:~
注意使用scp时,-P为大写字母。
拉(server -> client, 就是下载)
命令格式和上传类似,只是,参数的顺序变了。
# scp -P50000 liubei@192.168.1.120:/etc/hosts /tmp
拷目录,使用 -r
其他选项:
-l (限制速度)
-l 100k
注意:ssh是全量拷贝,效率不高。
补充(rsync是增量拷贝,效率更高)
4. sftp
加密传输
# sftp -oPort=50000 liubei@192.168.1.120
sftp>
下载:
sftp> get test.txt /tmp
上传
sftp> put abc.txt
把本地当前目录下的abc.txt上传到服务器的liubei的家目录中
sftp> put abc.txt /tmp
把本地当前目录下的abc.txt上传到服务器的liubei的/tmp目录中
sftp> mkdir dir
在服务器的liubei的家目录下,创建目录dir
即,可以执行mkdir
补充:退出
sftp> exit
5. 使用密钥来认证
案例:
192.168.1.4 192.168.1.120
----- ----
| A | ---------> | B |
------ ----
|
|
V
-----
| C | 192.168.1.121
-----
有3台服务器A,B,C
需要每天早上3点,把A的数据文件 user.data 分发给B,和C
解决方案:使用crond定时任务和ssh的密钥认证
实现步骤:
0)准备:
准备3台主机,分别设置一下hostname为A,B,C
并设置IP, 保证他们都在同1个网段。
在B和C主机中,分别创建同1个普通用户(比如liubei)
不要使用root(不安全)
1)生成密钥
# ssh-keygen -t dsa
就会自动生成一个公钥文件和私钥文件。
-t 是指定加密算法,默认是rsa算法
dsa算法:只能用于数字签名认证
rsa算法:即可用于数字签名认证,还可以用于加密。
所创建的密钥文件,默认保存在 ~/.ssh/
分别为 id_dsa 私钥
id_dsa.pub 公钥
2)把公钥传递给服务器B和C
(1) 把公钥传递给服务器B
# ssh-copy-id -i ~/.ssh/id_dsa.pub "-p50000 liubei@192.168.1.120"
把本地主机的~/.ssh/id_dsa.pub公钥文件, 通过ssh(端口号为50000)传递给
IP为192.168.1.120主机(以liubei帐号传入)
如果传输成功,公钥将保存在目标主机的家目录的 .ssh/authorized_keys 中
注意:ssh-copy-id其实是1个脚本文件
(2) 把公钥传递给服务器c
# ssh-copy-id -i ~/.ssh/id_dsa.pub "-p50000 liubei@192.168.1.121"
3) 使用密钥直接登录
ssh -p50000 liubei@192.168.1.120
4)使用脚本文件实现分发数据
# vim trans.sh
当有多个服务器时,可以使用shell编程中的for循环。
例如:
-----------------------
for n in 120 22
do
scp -P50000 $1 liubei@192.168.1.$n:~
done
---------------------
$1表示脚本文件的第1个参数,这里用来表示需要分发的文件。
原文:https://www.cnblogs.com/The-day-of-the-wind/p/12063823.html