当前位置: 首页 > news >正文

[Linux]从零开始的Linux的远程方法介绍与配置教程

一、为什么需要远程Linux

        相信大家在学习Linux时,要么是使用Linux的虚拟机或者在物理机上直接安装Linux。这样确实非常方便,我们也能直接看到Linux的桌面或者终端。既然我们都能直接看到终端或者Linux的桌面了,那我们为什么还要远程Linux呢?其实,在实际的生产环境中我们对于服务器的控制,基本都采用远程连接。或者在我们的嵌入式开发中,我们如果没有显示器的话,对我们的开发板也采用远程。可能一开始你并不适应远程Linux,觉得这种方法既卡顿部署又麻烦。但是当你习惯了远程Linux的方法以后,你会觉得这种方法非常易用并且高效,能极大提高你的生产效率。下面,我们就来学习一些常见的Linux的远程方法吧!

二、Linux常见的远程方式

        在Linux中我们的远程分为了终端远程,文件远程传输,桌面远程。下面我们来详细介绍一下。首先是终端远程,顾名思义就是只有终端和字符的远程,我们通过命令行的方式对Linux进行控制,当然这种远程在你Linux上不管有没有安装图形化都可以使用。当然终端远程需要你具有一定的Linux操作基础。对于Linux文件远程传输我们常常采用Samba和SFTP等服务,这些文件服务能让我们快速的往Linux上传文件并且在传输过程中进行一定的加密。然后就是Linux的远程桌面。这里远程Linux桌面的前提就是Linux安装了桌面的环境。这里我们常用的是VNC桌面和RDP桌面,这些远程桌面协议能让我们通过图形化的方式访问Linux,可以说是非常方便。下面就让我来教大家如何配置这些常见的Linux远程吧!

三、Linux远程终端(SSH)

        对于Linux用得最多的终端远程协议,那当然是SSH啦。并且现在在很多终端中也都支持SSH,比如在我们Windows的Powershell中就支持使用SSH直接连接Linux。目前非常多的Linux远程工具都附带了SSH协议,可以说SSH协议已经成为Linux远程终端的标配协议了。下面就让我们来看看,怎么配置SSH吧!

1.SSH工具的选择

        既然我们要使用SSH去连接Linux,那么SSH的工具书不可或缺的。下面我会为大家推荐常用的SSH工具,大家根据自己的喜好进行选择。

我首先推荐的当然是Windows自带的SSH工具——位于Powershell中的ssh命令工具,我们可以在打开Powershell后直接使用ssh命令来连接一个Linux服务器,就像这样:

这里的命令也是非常的简单,下面我来解释一下。

首先就是ssh这是ssh命令的关键字。后面的root表示要登录Linux的用户名。@后面就是要远程的Linux的IP地址。是的就是这么简单,如果你的Linux的SSH端口不是默认的22端口,可以加上-p选项指定端口,就像下面这样:

ssh root@39.101.179.176 -p 25565

除了Windows自带的SSH工具,我们还可以选择一些开源的SSH工具,这一类工具往往有精美的界面也支持终端字符高亮,看起来也是非常的赏心悦目。

这里我向大家推荐“WindTerm”远程工具,作为一款在github开源的远程工具,其中就包含了SSH远程与串口终端等常见的远程方式,可以说非常易用,下面是项目的开源地址:

WindTerm开源地址:kingToolbox/WindTerm: A professional cross-platform SSH/Sftp/Shell/Telnet/Serial terminal. (github.com)

大家下载安装好以后点击“会话”:

再点击“新建会话”:

这里我们选择SSH:

这里我们输入主机的IP地址下面选择Linux:

随后点击“连接”:

下面我们输入用于登录Linux的用户名和密码:

后面就登录成功了:

如果大家有更好的SSH工具,当然也可以使用,这里就推荐给大家我最常用的两款SSH工具。

2.在Linux中打开SSH功能

        对于不同的发行版,打开SSH的步骤也不同,对于Centos打开SSH就相对会简单一些,对于Ubuntu系列的Linux打开SSH就相对会麻烦一些。下面这两种系统打开SSH功能的方式我都会讲,具体演示这里使用Centos7和Ubuntu20.04进行。其它版本也都是一样的。下面我们分情况讨论:

3.Centos配置SSH功能

        首先还是使用“ifconfig”命令查看Linux的IP地址:

这里要保证Linux主机和远程用的主机处于同一个网段或者Linux主机具有公网IP。

我们可以看到这里的Linux主机是在内网的一个网段内。Centos在默认的安装状态下,它的SSH是默认打开的,我们无需进行操作就可以直接连接了。下面我将在Powershell中演示连接:

这里我们输入远程命令后输入密码就连接上了,可以说是非常简单的。

4.Ubuntu配置SSH功能

        Ubuntu打开SSH功能可能稍微复杂一些,下面我将使用Ubuntu20.04进行演示。首先登录我们的Ubuntu:

如上图,这里使用Ubuntud的20.04进行演示。

我们打开Ubuntu的终端查看Linux主机的IP地址:

对于Ubuntu,它默认不打开SSH,为了配置方便,我们这里安装一个工具来帮我们配置SSH。我们使用下面的命令来安装SSH工具:

sudo apt install openssh-server

在安装完成以后,我们使用下面的命令来查看openssh有没有启动:

sudo systemctl status sshd

这里我们可以看到openssh服务已经启动了。

如果这里你的openssh服务没有启动的话,使用下面的命令来启动openssh服务:

sudo systemctl start sshd

在openssh服务启动以后,我们就可以准备SSH连接了。我们这里同样使用Powershell来进行远程。使用下面的命令:

ssh chulingxiao@192.167.117.101

我们可以看到这里已经远程到了:

注意,在Ubuntu中最好不要使用root进行远程,尽管你已经设置了root用户的密码,但是仍然可能有一些意想不到的问题。

至此,我们Linux的SSH配置就已经完成了,尽管我们只演示了两个发行版,但是其它的发行版的操作都很类似,大家按照上面的步骤操作即可。

四、Linux远程文件(SFTP)

        当我们安装了openssh服务以后,SFTP文件服务是被默认安装的。我们直接就能登录到SFTP服务器。我们可以在windows的Powershell中输入下面的命令来登录SFTP服务器:

sftp username@server_ip

这里和SSH登录时很像,这里的sftp表示关键字,后面的username表示要登录SFTP服务器的用户名,@后面跟着的是服务器的IP地址,这里我使用安装了openssh服务的Ubuntu20.04进行演示:

可以看到,当我们输入命令以后,和SSH一样会提示我们输入密码,这里我们输入用户的密码就登录成功了。

在成功登录SFTP服务器以后,我们就能对我们Linux主机的文件进行操作了,下面我们来看一条向Linux服务器提交文件的命令:

put local_file remote_file

这里的local_file表示的是本机文件路径,remote_file表示的是在Linux主机上的文件路径。

下面我们就来演示一下。加入我想将桌面的这个文件提交到Linux主机:

我们使用下面的命令:

put C:\Users\85884\Desktop\芙宁娜图片合集.zip \home\chulingxiao\芙宁娜图片合集.zip

这里的路径大家尽量使用绝对路径。不管是本机还是Linux主机都使用绝对路径,下面就是上传结果了:

我们在Linux主机中,也可以去到对应的文件夹查看文件:

我们可以看到这里文件已将到文件夹中了。

我们也可以在自己的主机上,远程拉取Linux主机上的文件,我们在Linux的目录中新建一个文件,如图:

我们拉取Linux文件使用的是下面的命令,当然,使用下面命令的前提也是登录SFTP服务器。

get remote_file local_file

这里的get就表示拉取命令,这里的remote_file表示我们要拉取的Linux主机的文件,local_file表示拉取到主机上的文件路径和文件名,我们可以使用下面的命令来拉取上面的“test”文件:

get  \home\chulingxiao\test C:\Users\85884\Desktop\test

这里可以看到已经拉取完成了,我们的桌面上也出现了我们拉取过来的文件:

至此,我们SFTP传输文件服务就已经完成了。

五、RDP远程服务搭建

        前面的那些远程服务基本都是对Linux进行基本的操作,对于新手来说可能不怎么友好,所以我们还是要建立一个图形化的远程方式,这里我们首先就是推荐大家使用RDP桌面。因为部署简单,并且我们使用Windows自带的远程桌面就能直接连接Linux主机。当然,使用RDP的前提就是,具有Linux的桌面环境,像下面的Ubuntu20.04一样,就是具有桌面环境的:

在有桌面环境以后,我们就可以使用下面的命令直接开始安装RDP了:

sudo apt install xrdp

在安装好xrdp以后,我们可以使用下面的命令来查看xrdp是否启动:

 systemctl status xrdp

这里可以看到,我的xrdp已经启动了:

这里查询完以后,按Q退出。

如果你的xrdp没有启动,可以使用下面的命令来启动xrdp:

sudo systemctl start xrdp

在确定xrdp启动成功以后,我们就可以使用Windows的远程桌面来连接Linux主机:

在输入了Linux主机的IP地址以后,点击连接,弹出如下窗口点击“是”:

下面我们要全屏:

我们输入用户名和密码:

注意,如果这里你使用自己的用户登录xrdp,登录是瞬间闪退,就换成root用户登录,这里需要改一下root用户的密码,可以看到,我们已经远程进来了:

登录进来后,点击左上角的“活动”,我们这样也可以使用Ubuntu的各种功能了:

至此,我们RDP的远程环境就搭建完成啦,是不是非常简单,如果你发现你使用RDP连接Linux主机时出现黑屏或者蓝屏可以去浏览器中搜索相关解决方案。注意,这里的RDP连接方式不适用于一些嵌入式开发板,如果你想远程嵌入式开发板建议使用别的方案或者只使用SSH。

六、结语

        这里已经向大家介绍了Linux的常见远程方式,希望这些远程方式都能在你的工作和学习中帮到你,那么,感谢大家的观看!

相关文章:

[Linux]从零开始的Linux的远程方法介绍与配置教程

一、为什么需要远程Linux 相信大家在学习Linux时,要么是使用Linux的虚拟机或者在物理机上直接安装Linux。这样确实非常方便,我们也能直接看到Linux的桌面或者终端。既然我们都能直接看到终端或者Linux的桌面了,那我们为什么还要远程Linux呢&a…...

手机改IP地址怎么弄?全面解析与操作指南

在当今数字化时代,IP地址作为设备在网络中的唯一标识,其重要性不言而喻。有时候,出于隐私保护、网络访问需求或其他特定原因,我们可能需要更改手机的IP地址。然而,对于大多数普通用户来说,如何操作可能还是…...

【React】useState 和 useRef:项目开发中该如何选择

如果你正踏入用 React 进行网页开发的世界,那你可能已经遇到了像 useState 和 useRef 这样的术语。这两个 Hook 在构建交互性和动态组件时起着至关重要的作用。 下面,我们将探讨它们是什么,它们的功能,它们的区别,并通…...

python装饰器用法

为什么用装饰器? 第一个原因是,使用装饰器可以提升代码复用,避免重复冗余代码。如果我有多个函数需要测量执行时间,我可以直接将装饰器应用在这些函数上,而不是给多个函数加上一样的代码。这样的代码既元余也不方便后…...

AI 写作太死板?原因竟然是这个!

有些同学跟我埋怨说AI生成的文章太死板,一堆的“首先、其次、然后、再次、接着、总而言之……”,说话太官方,内容还很水。 想要让它模仿谁的语气,或者谁的文章,一点儿都不像。 名人都不模仿不了,更别说模…...

ansible实用模块

简介 ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。ansible不需要在远程主机上安装client/agents,因为它们是基于ssh来和远程主机通讯的。…...

【JavaScript】JIT

JIT实际上指,JS的编译过程、运行时。 Just in Time 在传统的编译语言里,比如JAVA、Go等,是提前编译的,它们的执行是先在本地编译出一个"东西",然后在放到服务器上运行。 提前编译的三大过程: …...

Matlab实现麻雀优化算法优化回声状态网络模型 (SSA-ESN)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新兴的群体智能优化算法,灵感来源于麻雀的觅食行为及其在面临危险时的预警机制。SSA通过模拟麻雀的这些自然行为来寻找问题…...

从 TCP Reno 经 BIC 到 CUBIC

重读 TCP拥塞控制算法-从BIC到CUBIC 以及 cubic 的 tcp friendliness 与拐点控制 这两篇文章,感觉还是啰嗦了,今日重新一气呵成这个话题。 reno 线性逼近管道容量 Wmax,相当于一次查询(capacity-seeking),但长肥管道从 0.5*Wmax …...

工厂模式与建造者模式的区别

在软件设计中,工厂模式和建造者模式是两种常见的设计模式,它们都是用于创建对象,但是各自有不同的应用场景和目的。本文将通过餐馆点餐的例子,深入探讨这两种模式的区别。 工厂模式 工厂模式的核心思想是通过一个抽象工厂类来创…...

电脑usb接口封禁如何实现?5种禁用USB接口的方法分享!(第一种你GET了吗?)

“防患于未然,安全始于细节。”在信息技术飞速发展的今天,企业的信息安全问题日益凸显。 USB接口作为数据传输的重要通道,在带来便利的同时,也成为了数据泄露和安全风险的高发地。 因此,对电脑USB接口进行封闭管理&a…...

有效的括号

有效的括号 思路&#xff1a;我们先创建一个栈&#xff0c;让左括号入栈&#xff0c;与右括号判断 Stack stacknew Stack<>(); 将字符串中的符号转化为字符 char ch s.charAt(i); 完整代码如下&#xff1a; class Solution {public boolean isValid(String s) {if (s …...

Vue3.0面试题汇总

Composition API 可以说是Vue3的最大特点&#xff0c;那么为什么要推出Composition Api&#xff0c;解决了什么问题&#xff1f; 通常使用Vue2开发的项目&#xff0c;普遍会存在以下问题&#xff1a; 代码的可读性随着组件变大而变差每一种代码复用的方式&#xff0c;都存在缺…...

TCP编程:从入门到实践

目录 一、引言 二、TCP协议原理 1.面向连接 2.可靠传输 三、TCP编程实践 1.TCP服务器 2.TCP客户端 四、总结 本文将带你了解TCP编程的基本原理&#xff0c;并通过实战案例&#xff0c;教你如何在网络编程中运用TCP协议。掌握TCP编程&#xff0c;为构建稳定、高效的网络通信…...

Python NumPy 数据分析:处理复杂数据的高效方法

Python NumPy 数据分析&#xff1a;处理复杂数据的高效方法 文章目录 Python NumPy 数据分析&#xff1a;处理复杂数据的高效方法一 数据来源二 获取指定日期数据三 获取指定行列数据四 求和计算五 比例计算六 平均值和标准差七 完整代码示例八 源码地址 本文详细介绍了如何使用…...

【Preference Learning】Reasoning with Language Model is Planning with World Model

arxiv: https://arxiv.org/abs/2305.14992 问题背景&#xff1a;当前LLM推理受到几个关键因素的限制&#xff1a; &#xff08;1&#xff09;LLM缺乏世界模型&#xff08;一种人类就有的对环境的心理表征&#xff0c;可以模拟行动以及活动对外部世界状态的影响&#xff09;去…...

OJ在线评测系统 后端基础部分开发 完善CRUD相关接口

完善相关接口 判斷编程语言是否合法 先从用户的请求拿到Language package com.dduo.dduoj.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dduo.dduoj…...

计算机网络--TCP、UDP抓包分析实验

计算机网络实验 目录 实验目的 实验环境 实验原理 1、UDP协议 2、TCP协议 实验具体步骤 实验目的 1、掌握使用wireshark工具对UDP协议进行抓包分析的方法&#xff0c;掌握UDP协议的报文格式&#xff0c;掌握UDP协议校验和的计算方法&#xff0c;理解UDP协议的优缺点&am…...

FreeRTOS的中断管理

前言 FreeRTOS的任务有优先级&#xff0c;MCU的硬件中断有中断优先级&#xff0c;这是两个不同的概念&#xff0c;FreeRTOS的任务管理要用到硬件中断&#xff0c;使用FreeRTOS时候也可以使用硬件中断&#xff0c;但是硬件中断ISR的设计要注意一些设计原则&#xff0c;在本节中我…...

JS加密=JS混淆?(JS加密、JS混淆,是一回事吗?)

JS加密、JS混淆&#xff0c;是一回事吗&#xff1f; 是的&#xff01;在国内&#xff0c;JS加密&#xff0c;其实就是指JS混淆。 1、当人们提起JS加密时&#xff0c;通常是指对JS代码进行混淆加密处理&#xff0c;而不是指JS加密算法&#xff08;如xor加密算法、md5加密算法、…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...