[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…...
有效的括号
有效的括号 思路:我们先创建一个栈,让左括号入栈,与右括号判断 Stack stacknew Stack<>(); 将字符串中的符号转化为字符 char ch s.charAt(i); 完整代码如下: class Solution {public boolean isValid(String s) {if (s …...
Vue3.0面试题汇总
Composition API 可以说是Vue3的最大特点,那么为什么要推出Composition Api,解决了什么问题? 通常使用Vue2开发的项目,普遍会存在以下问题: 代码的可读性随着组件变大而变差每一种代码复用的方式,都存在缺…...
TCP编程:从入门到实践
目录 一、引言 二、TCP协议原理 1.面向连接 2.可靠传输 三、TCP编程实践 1.TCP服务器 2.TCP客户端 四、总结 本文将带你了解TCP编程的基本原理,并通过实战案例,教你如何在网络编程中运用TCP协议。掌握TCP编程,为构建稳定、高效的网络通信…...
Python NumPy 数据分析:处理复杂数据的高效方法
Python NumPy 数据分析:处理复杂数据的高效方法 文章目录 Python NumPy 数据分析:处理复杂数据的高效方法一 数据来源二 获取指定日期数据三 获取指定行列数据四 求和计算五 比例计算六 平均值和标准差七 完整代码示例八 源码地址 本文详细介绍了如何使用…...
【Preference Learning】Reasoning with Language Model is Planning with World Model
arxiv: https://arxiv.org/abs/2305.14992 问题背景:当前LLM推理受到几个关键因素的限制: (1)LLM缺乏世界模型(一种人类就有的对环境的心理表征,可以模拟行动以及活动对外部世界状态的影响)去…...
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协议进行抓包分析的方法,掌握UDP协议的报文格式,掌握UDP协议校验和的计算方法,理解UDP协议的优缺点&am…...
FreeRTOS的中断管理
前言 FreeRTOS的任务有优先级,MCU的硬件中断有中断优先级,这是两个不同的概念,FreeRTOS的任务管理要用到硬件中断,使用FreeRTOS时候也可以使用硬件中断,但是硬件中断ISR的设计要注意一些设计原则,在本节中我…...
JS加密=JS混淆?(JS加密、JS混淆,是一回事吗?)
JS加密、JS混淆,是一回事吗? 是的!在国内,JS加密,其实就是指JS混淆。 1、当人们提起JS加密时,通常是指对JS代码进行混淆加密处理,而不是指JS加密算法(如xor加密算法、md5加密算法、…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
