文章目录
远程管理在实际工作中,常用于在本机上对服务器进行操作。
一. 关机/重启
shutdown 选项 时间
命令可以安全的 关机 或者 重新启动系统。
选项 | 含义 |
---|---|
-r | 重新启动 |
注:
- 不指定选项和时间,默认一分钟后关闭电脑
- 维护远程服务器时,最好不要关闭系统,而是重新启动系统
常用示例:
# 立刻关机 now表示现在
shutdown now
# 立刻重启
shutdown -r now
# 五分钟后重启
shutdown -r +5
# 在10:00重启
shutdown -r 10:00
# 取消之前的 关机/重启 计划
shutdown -c
二. 查看网卡信息和检查连接信息
01. 网卡 和 IP地址
- 网卡是一个专门负责网络通讯的硬件设备
- IP 地址是设置在网卡上的地址信息
我们可以把 电脑 比作 电话,网卡 相当于 SIM 卡,IP 地址 相当于 电话号码
02. ifconfig
ifconfig
可以查看计算机当前的网卡配置信息。
配置信息分为两个部分,本地 IP 地址包含在第一部分,第二部分中的 127.0.0.1
为 本地环回地址,一般用来测试本机网卡是否正常。
ifconfig | grep inet
可以更清晰的查看到 IP 地址。
注:
- 一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,在 Linux 中物理网卡的名字通常以
ensXX
表示。
03. ping
ping
一般用于检测计算机到目标计算机的连接是否通畅,并且可以用 Ctrl + c
来终止命令执行。
网络上的机器都有 唯一确定的 IP 地址,我们给目标 IP 地址发送一个数据包,对方就要返回一个数据包,根据返回的数据包以及时间,我们可以确定目标主机的存在。
因为 域名最终指向的就是IP地址 , 所以我们也可以用ping向一个域名。 例如:
ping www.pornhub.com
三. 远程登录和复制文件
01. SSH
(1). SSH相关背景知识
在日常工作中,我们通常都是在本地远程登录到服务器上进行维护操作的。在 Linux 中 SSH 是非常常用的工具,通过 SSH客户端 我们可以直接连接到运行了 SSH服务器 的远程机器上。
SSH客户端 是一种使用 Secure Shell (SSH)
协议连接到远程计算的软件程序。
- SSH 是目前较可靠,专为 远程登录会话和其他网络服务 提供安全性的协议;可以有效防止远程管理过程中的信息泄露。 通过 SSH协议 对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。
- 通过 SSH 传输的数据是可以进行压缩的,所以可以大大加快传输数据的效率。
SSH服务器 的默认端口号为 22,如果是默认端口号,那么在连接的时候就可以省略。
拓展:
- 端口号:通过 端口号可以找到计算机上运行的应用程序。
- 常见服务端口号有:
服务 | 端口号 |
---|---|
SSH服务器 | 22 |
web服务器 | 80 |
HTTPS | 443 |
FTP服务器 | 21 |
(2). SSH客户端的简单使用
在 Linux 或者 Unix(Mac就是基于Unix的) 操作系统上是自带SSH服务的,可以直接在终端中使用命令来连接机器。
ssh [-p port] user@remote
user
是远程机器上的用户名,如果不指定就默认为当前用户 ;remote
是远程机器的地址,可以是 IP地址、 域名、 别名 ;port
是 SSH Server 监听的端口,如果不指定默认值为 22 ;- 在实际工作中可能 SSH服务器 的端口不是 22 ,那么就需要
-p
选项来指定正确的端口 ; - 使用命令
exit
可以退出当前用户的登录。
在 Windows 系统中不能使用SSH命令,我们可以安装 Putty 或者 XShell 客户端来完成远程登录管理操作。
下载地址: Putty /// XShell
02. SCP
SCP 就是 secure copy
, 是一个在 Linux 下用来远程拷贝文件 的命令。它和 SSH 的格式基本相同,但是需要注意的是,在指定端口时用大写的 P
而不是小写。
选项 | 含义 |
---|---|
-r | 若给出的源文件是目录文件,则 scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-P | 若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口 |
示例:
# 把本地当前目录下的 01.py 文件 复制到 远程 家目录下的 Desktop/01.py
# 注意:`:` 后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
scp -P port 01.py user@remote:Desktop/01.py
# 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py
scp -P port user@remote:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop
scp -r demo user@remote:Desktop
# 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹
scp -r user@remote:Desktop demo
scp
这个终端命令只能用在 Linux 或者 Unix 系统下,如果在 Windows 系统中可以安装 FileZilla 使用 FTP
进行文件传输。
- FileZilla 下载地址;
- FileZilla 在传输文件时,使用的是
FTP
服务 而不是SSH
服务,因此端口号应该设置为 21 。
注: 若 FileZilla 连接 Linux 失败,显示状态为 :尝试连接“ECONNREFUSED - 连接被服务器拒绝”失败, 解决方法请点击此博客 。
03. 免密码登录 和 配置别名
使用 Linux 系统作为客户端,在与服务器远程连接或传输文件时,总是要输入服务器密码,还要输入长长一串 [-p/P port] user@remote
。每登陆一次,都要输入一次,实在是很麻烦。
我们可以分别利用 设置免密码登录 和 配置经常连接的主机的别名 来解决这一麻烦。 这两个设置都是通过修改 SSH 配置信息完成的,而有关 SSH 配置信息都保存在用户家目录下的 .ssh
目录下。
(1). 设置免密码登录
首先我们来了解一下 非对称加密算法 :
- 使用 公钥加密 的数据,需要 私钥解密 ;
- 使用 私钥加密 的数据,需要 公钥解密 。
步骤一: 在终端中执行一次 ssh-keygen
命令就可以生成,一个名为 id_rsa
的私钥文件和另一个名为 id_rsa.pub
的公钥文件。
步骤二: 执行 ssh-copy-id -p port user@remote
命令,将公钥文件发给服务器。 这样,再次登录服务器的时候,就不需要输入密码了。
免密原理:
在完成上面的操作后,本地拥有 公钥、私钥两个文件,在传输数据的时候使用 私钥 对数据加密并发送到服务器。 而服务器拥有 公钥文件, 可以对数据解密。 完成操作后,将数据用 公钥 加密并返回给本地。
这一来一回的过程中,数据在网络中传输时,都是加密的。 避免了数据被盗取的风险,并在步骤二中已经确认过本地请求远程登录者的身份后(简单的说就是步骤二中输入过一次服务器密码 o(╯□╰)o
),就可以进行免密登录了。
(2). 设置别名
步骤一: 在 .ssh
目录下执行命令 touch config
。创建一个名为 config
的文件。
步骤二: 在 config
文件中追加以下内容:
Host 别名
HostName ip地址
User 用户名
Port 端口号
这样就可以使用命令 ssh 别名
来实现远程登录了,同样也可以在 scp
命令中使用别名。