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

【Ubuntu】Windows远程Ubuntu系统

步骤


  1. 开启ssh服务并开放22端口
  2. 关闭防火墙ufwiptables ;或者将远程端口添加到入站与出站规则
  3. 安装xrdp并将xrdp用户添加到ssl-cert用户组
  4. mstsc 远程,输入账号密码
    在这里插入图片描述
    在这里插入图片描述

1、开启ssh服务

1.1. 查看ssh是否已经开启

sudo ps -e | grep ssh

如果最后返回是sshd,证明ssh已经开启,跳到第四步


    632 ?        00:00:00 sshd20915 ?        00:00:00 ssh-agent

1.2. 开启ssh服务

如果没有显示,试着开启ssh服务

sudo /etc/init.d/ssh start

如果返回的是命令未找到,证明未安装ssh服务


Starting ssh (via systemctl): ssh.service.

1.3 安装openssh服务

  1. 安装openssh服务查看服务有没有开启
sudo apt-get install openssh-server
  1. 查看服务有没有开启
sudo ps -e | grep ssh
  1. 如果没有就开启,启动openssh服务
sudo /etc/init.d/ssh start

1.4 检查ssh默认开放22端口

检查防火墙有没有开放20端口(ssh默认开放22端口,如果修改可看第五步)

1.41 使用 netstat 进行查看

netstat -an | grep 22

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
unix  2      [ ACC ]     流        LISTENING     242254   @/tmp/dbus-r4rAjh2Fcv
unix  2      [ ACC ]     流        LISTENING     18822    /run/systemd/private
unix  2      [ ACC ]     流        LISTENING     242279   /home/signway/.pcsc10/pcscd.comm
unix  2      [ ]         流        已连接     42234    @/tmp/dbus-XLRsuygY
unix  3      [ ]         流        已连接     234122   @/tmp/dbus-EKhrJLaYQU
unix  3      [ ]         流        已连接     234227   
unix  3      [ ]         流        已连接     242322   @/tmp/.X11-unix/X10
unix  3      [ ]         流        已连接     235224   @/tmp/dbus-EKhrJLaYQU
unix  3      [ ]         流        已连接     179221   /run/containerd/containerd.sock
unix  3      [ ]         流        已连接     242255   
unix  3      [ ]         流        已连接     243227   @/tmp/dbus-LY2CUzKESO
unix  3      [ ]         流        已连接     243229   
unix  3      [ ]         流        已连接     241322   /run/systemd/journal/stdout
unix  3      [ ]         流        已连接     242230   
unix  3      [ ]         流        已连接     42253    /run/systemd/journal/stdout
unix  3      [ ]         流        已连接     243922   
unix  3      [ ]         流        已连接     243422   
unix  3      [ ]         流        已连接     234228   
unix  3      [ ]         流        已连接     35022    /run/dbus/system_bus_socket
unix  3      [ ]         流        已连接     240322   @/tmp/dbus-LY2CUzKESO
unix  3      [ ]         流        已连接     36922    /run/systemd/journal/stdout
unix  3      [ ]         流        已连接     242232   /run/xrdp/sockdir/xrdp_chansrv_socket_10
unix  3      [ ]         流        已连接     234222   @/tmp/dbus-EKhrJLaYQU
unix  3      [ ]         流        已连接     35223    /run/systemd/journal/stdout

1.4.2 使用 ufw 查看

ufw status

bash: ufw:未找到命令

1.4.3 安装 ufw

如果查看bash: ufw:未找到命令,需要安装

sudo apt-get install ufw

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列【新】软件包将被安装:ufw
升级了 0 个软件包,新安装了 1 个软件包, 要卸载 0 个软件包,有 101 个软件包未被升级。
需要下载 148 kB 的归档。
解压缩后会消耗 849 kB 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu-ports focal-updates/main arm64 ufw all 0.36-6ubuntu1.1 [148 kB]
已下载 148 kB,耗时 0秒 (626 kB/s)
正在预设定软件包 ...
正在选中未选择的软件包 ufw。
(正在读取数据库 ... 系统当前共安装有 132750 个文件和目录。)
准备解压 .../ufw_0.36-6ubuntu1.1_all.deb  ...
正在解压 ufw (0.36-6ubuntu1.1) ...
正在设置 ufw (0.36-6ubuntu1.1) ...Creating config file /etc/ufw/before.rules with new versionCreating config file /etc/ufw/before6.rules with new versionCreating config file /etc/ufw/after.rules with new versionCreating config file /etc/ufw/after6.rules with new version
Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service → /lib/systemd/system/ufw.service.
正在处理用于 systemd (245.4-4ubuntu3.22) 的触发器 ...
正在处理用于 rsyslog (8.2001.0-1ubuntu1.3) 的触发器 ...

1.4.4 使用 ufw 查看

ufw status

WARN: uid 是 0 但是 “/etc/default” 属于 1000
WARN: uid 是 0 但是 “/etc” 属于 1000
WARN: uid 是 0 但是 “/lib” 属于 1000
WARN: uid 是 0 但是 “/usr/sbin” 属于 1000
WARN: uid 是 0 但是 “/usr” 属于 1000
状态:不活动


  • 状态:不活动 - 防火墙已关闭
  • 状态:

1.4.5 启用防火墙

sudo ufw enable

[sudo] signway 的密码:
WARN: uid 是 0 但是 “/etc/default” 属于 1000
WARN: uid 是 0 但是 “/etc” 属于 1000
WARN: uid 是 0 但是 “/lib” 属于 1000
WARN: uid 是 0 但是 “/usr/sbin” 属于 1000
WARN: uid 是 0 但是 “/usr” 属于 1000
ERROR: problem running ufw-init
iptables-restore v1.8.4 (legacy): Couldn't load match `limit':No such file or directoryError occurred at line: 63
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
iptables-restore v1.8.4 (legacy): Couldn't load match`limit':No such file or directoryError occurred at line: 8
Try `iptables-restore -h' or 'iptables-restore --help' for more information.Problem loading ipv6 (skipping)
Problem running '/etc/ufw/before.rules'
Problem running '/etc/ufw/user.rules'

ufw运行报错时

一、使用 iptables 替代 ufw 的功能

在大多数情况下,最好不要同时运行 ufwiptables-restore。这是因为 ufw 本身实际上是一个基于 iptables 的前端工具,用于简化 iptables 的配置过程。当你启用 ufw 时,它会自动配置 iptables 规则。

如果你手动使用 iptables-restore 来加载自定义的 iptables规则,而且同时又启用了ufw` ,可能会导致规则冲突和意外行为。因此,最好的做法是选择其中一种方式来管理防火墙规则,而不是同时使用两者。

如果你更喜欢手动配置 iptables 规则,那么你可以停用 ufw 并直接使用 iptablesiptables-restore 来管理防火墙规则。反之,如果你喜欢使用 ufw 的简单性和易用性,那就不需要直接操作 iptables

无论你选择哪种方式,确保在配置防火墙规则时谨慎行事,并且经常测试以确保规则按预期生效。

二、可以尝试 - 内核添加配置在这里插入图片描述

1.4.6 使用 ufw 查看

sudo ufw status

WARN: uid 是 0 但是 “/etc/default” 属于 1000
WARN: uid 是 0 但是 “/etc” 属于 1000
WARN: uid 是 0 但是 “/lib” 属于 1000
WARN: uid 是 0 但是 “/usr/sbin” 属于 1000
WARN: uid 是 0 但是 “/usr” 属于 1000
ERROR: 运行时出现问题 ip6tables

注意:ci

1.4.7 关闭防火墙

sudo ufw disable

WARN: uid 是 0 但是 “/etc/default” 属于 1000
WARN: uid 是 0 但是 “/etc” 属于 1000
WARN: uid 是 0 但是 “/lib” 属于 1000
WARN: uid 是 0 但是 “/usr/sbin” 属于 1000
WARN: uid 是 0 但是 “/usr” 属于 1000
防火墙在系统启动时自动禁用


1.4.8 如果没有的话,开放22端口

sudo ufw allow 22

WARN: uid 是 0 但是 “/etc/default” 属于 1000
WARN: uid 是 0 但是 “/etc” 属于 1000
WARN: uid 是 0 但是 “/lib” 属于 1000
WARN: uid 是 0 但是 “/usr/sbin” 属于 1000
WARN: uid 是 0 但是 “/usr” 属于 1000
ERROR: initcaps
[Errno 2] modprobe: FATAL: Module ip6_tables not found in directory /lib/modules/5.10.160
ip6tables v1.8.4 (legacy): can't initialize ip6tables table `filter': Table does not exist (do you need to insmod?)
Perhaps ip6tables or your kernel needs to be upgraded.

1.4.9 修改ssh端口(可跳过)

sudo vi /etc/ssh/sshd_config

1.4.10 ssh重启

sudo service sshd restart

1.4.11 防火墙生效并开机启动

sudo ufw enable

2、远程 xrdp

2.1 安装

sudo apt install xrdp

2.2 查看xrdp运行状态

sudo systemctl status xrdp

 xrdp.service - xrdp daemonLoaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)Active: active (running) since Tue 2023-11-14 15:24:29 CST; 19h agoDocs: man:xrdp(8)man:xrdp.ini(5)Main PID: 702 (xrdp)Tasks: 2 (limit: 4522)Memory: 22.2MCGroup: /system.slice/xrdp.service├─  702 /usr/sbin/xrdp└─20550 /usr/sbin/xrdp11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[DEBUG] xrdp_wm_log_msg: connecting to sesman ip>
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[INFO ] xrdp_wm_log_msg: sesman connect ok
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[DEBUG] xrdp_wm_log_msg: sending login info to s>
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[DEBUG] return value from xrdp_mm_connect 0
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[INFO ] xrdp_wm_log_msg: login successful for di>
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[DEBUG] xrdp_wm_log_msg: started connecting
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[INFO ] lib_mod_log_peer: xrdp_pid=20550 connect>
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[DEBUG] xrdp_wm_log_msg: connected ok
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[DEBUG] xrdp_mm_connect_chansrv: chansrv connect>
11月 15 10:12:38 RK3588 xrdp[20550]: (20550)(548425859088)[DEBUG] Closed socket 18 (AF_INET6 ::1 port 4023>

2.3 设置xrdp开机自动启动

sudo systemctl enable xrdp

Synchronizing state of xrdp.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable xrdp

2.4 将xrdp用户添加到ssl-cert用户组

默认情况下,xrdp 使用/etc/ssl/private/ssl-cert-snakeoil.key,它仅仅对ssl-cert用户组成语可读,所以需要运行下面的命令,将xrdp用户添加到这个用户组:

  1. 将xrdp 添加到 ssl-cert用户组
sudo adduser xrdp ssl-cert 
  1. 重启xrdp
sudo systemctl restart xrdp

3. 远程过程中的问题

3.1 黑屏问题

  1. 使用vim打开startwm.sh配置文件
sudo vim /etc/xrdp/startwm.sh
  1. 命令模式:键入指令i 进入 -- 插入 -- 模式
  2. -- 插入 -- 模式:在下图所示位置添加如下内容
...
unset DBUS_SESSION_BUS_ADDRESSunset XDG_RUNTIME_DIR
...

在这里插入图片描述

  1. 使用Esc指令退出 -- 插入 -- 模式,进入 命令模式
  2. 命令模式:键入指令:wq!

保存并退出

:wq!

不保存并退出

:q!

在这里插入图片描述

相关文章:

【Ubuntu】Windows远程Ubuntu系统

步骤 开启ssh服务并开放22端口关闭防火墙ufw或iptables ;或者将远程端口添加到入站与出站规则安装xrdp并将xrdp用户添加到ssl-cert用户组mstsc 远程,输入账号密码 1、开启ssh服务 1.1. 查看ssh是否已经开启 sudo ps -e | grep ssh如果最后返回是sshd…...

pipeline jenkins流水线

Pipeline 是 Jenkins 中一种灵活且强大的工作流机制,它允许您以代码的形式来定义和管理持续集成和持续交付的流程。 Pipeline 的作用主要体现在以下几个方面: 可编排的构建流程:使用 Pipeline,您可以将一个或多个阶段&#xff08…...

软件工程理论与实践 (吕云翔) 第六章 面向对象分析课后习题及其解析

第六章 面向对象分析 知识点: 一个典型的软件系统通常包括的内容为:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。 3种模型之间的关…...

langchain(1):使用LangChain 调用 openai 的 text/chat model

文章目录 重要参考OPENAI API调用 Text 模型调用 Chat 模型消息角色 Chat 模型 vs Text 模型 通过 LangChain 调用 Text 和 Chat 模型调用 text 模型调用 chat 模型 重要参考 langchain 中文网 langchain api openai api 文档 huggingface LangChain 是一个全方位的、基于大…...

rabbitMQ的扇出模式(fanout发布订阅)的生产者与消费者使用案例

扇出模式 fanout 发布订阅模式 生产者 生产者发送消息到交换机(logs),控制台输入消息作为生产者的消息发送 package com.esint.rabbitmq.work03;import com.esint.rabbitmq.RabbitMQUtils; import com.rabbitmq.client.Channel;import java.util.Scanne…...

VSCode打开Json 文件格式化

在VSCode中打开JSON文件时,你可以使用以下步骤来格式化JSON并显示为多行: 使用快捷键: 在打开的JSON文件中,使用快捷键格式化文档。 Windows/Linux:Shift Alt FmacOS:Shift Option F 右键菜单&#xff…...

【C++】:STL——标准模板库介绍 || string类

📚1.什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架 📚2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在…...

Python小白之PyCharm仍然显示“No module named ‘xlwings‘”

Python小白之“没有名称为xlwings‘的模块”-CSDN博客文章浏览阅读8次。cmd 打开命令行,输入python出现>>>的提示格,输入import xlwings 回车,正常报错:No module named xlwings。输入python 回车后,再输入im…...

在Uni-app中实现计时器效果

本文将介绍如何在Uni-app中使用Vue.js的计时器功能实现一个简单的计时器效果。 首先&#xff0c;我们需要创建一个包含计时器的组件。以下是一个基本的计时器组件示例&#xff1a; <template><div class"timer"><p>{{ formatTime }}</p><…...

Linux脚本shell中将Windos格式字符转换为unix

众所周知&#xff0c;windos的文档直接复制到linux服务器上去&#xff0c;是需要进行格式转换的&#xff0c;否则可能出现以下报错&#xff1a; 解决方法&#xff1a; vim 脚本 输入 :set ff ##会显示字符格式 :set ffunix ##转换为unix格式 :wq ##保存退出...

【分布式】MIT 6.824 Lab 2B实现细节分析

基于6.824 2020版 http://nil.csail.mit.edu/6.824/2020/schedule.html Lab 2A&#xff08;选举&#xff09;一天就完成了&#xff0c;主要是第一次开始写Raft需要稍微熟悉一下&#xff0c;但是几乎不用修改&#xff0c;很容易就通过了。不过到了Lab 2B就会发现2A能够通过纯属侥…...

MySql 数据库初始化,创建用户,创建数据库,授权

登录MySQL&#xff08;使用管理员账户&#xff09; mysql -u root -p 设置用户 -- 创建用户并设置密码 CREATE USER user_name% IDENTIFIED BY user_password;-- 删除用户 drop user user_name; 设置数据库 -- 创建数据库 CREATE DATABASE database_name;-- 删除数据库 DR…...

【洛谷算法题】P5712-Apples【入门2分支结构】

&#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5712-Apples【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格式&…...

vue项目中的js文件使用vuex

使用场景&#xff1a;假设有一个接口&#xff0c;需要在很多页面获取一遍并且将接口的返回值保存起来&#xff0c;这样就能使用vuex&#xff0c;将值保存在vuex中 实现&#xff1a;vuex中新建firmModule.js文件&#xff0c;编写存储值的代码&#xff0c;utils/getFirmData.js用…...

【Vue3】 computed 完整写法 全选反选 、计算商品总价

全选反选 const allCheck computed({get() {return buyCard.value.every(item > item.checkState)},set(val) {return buyCard.value.forEach(item > item.checkState val);},}); 计算商品总价格 const aggregatePrice computed(() > {const arr buyCard.value.f…...

Mindomo Desktop for Mac(免费思维导图软件)下载

Mindomo Desktop for Mac是一款免费的思维导图软件&#xff0c;适用于Mac电脑用户。它可以帮助你轻松创建、编辑和共享思维导图&#xff0c;让你的思维更加清晰、有条理。 首先&#xff0c;Mindomo Desktop for Mac具有直观易用的界面。它采用了Mac独特的用户界面设计&#xf…...

Spark资源规划-资源上线评估

1、总体原则 以单台服务器 128G 内存&#xff0c;32 线程为例。 先设定单个 Executor 核数&#xff0c;根据 Yarn 配置得出每个节点最多的 Executor 数量&#xff0c;每个节点的 yarn 内存/每个节点数量单个节点的数量 总的 executor 数单节点数量*节点数。 2、具体提交参数 …...

RT-Thread STM32F407 定时器

定时器简介 硬件定时器一般有 2 种工作模式&#xff0c;定时器模式和计数器模式。不管是工作在哪一种模式&#xff0c;实质都是通过内部计数器模块对脉冲信号进行计数。下面是定时器的一些重要概念。 计数器模式&#xff1a;对外部输入引脚的外部脉冲信号计数。 定时器模式&…...

C#asp.net考试系统+sqlserver

C#asp.net简易考试系统 sqlserver在线考试系统学生登陆 判断学生是否存在 选择课程名 科目 可以进行答题操作&#xff0c;已经考试的课程不能再次答题&#xff0c; 自动根据课程名对应的题库生成试卷界面 加入选项类容 说明文档 运行前附加数据库.mdf&#xff08;或sql生成数…...

mac上配置maven

本文简述mac book上的Maven环境配置&#xff0c;着重讲述不同点。 1.安装 下载解压后&#xff0c;首先配置环境变量。编辑~/.bash_profile文件。加入如下代码&#xff1a; export M2_HOME/Users/jackie/tools/apache-maven-3.8.1注意&#xff1a;“/Users/jackie/tools/apac…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知&#xff0c;帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量&#xff0c;能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度&#xff0c;还为机器人、医疗设备和制造业的智…...

解析“道作为序位生成器”的核心原理

解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制&#xff0c;重点解析"道作为序位生成器"的核心原理与实现框架&#xff1a; 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...

Java多线程实现之Runnable接口深度解析

Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...

k8s从入门到放弃之Pod的容器探针检测

k8s从入门到放弃之Pod的容器探针检测 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;容器探测是指kubelet对容器执行定期诊断的过程&#xff0c;以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...

STL 2迭代器

文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器&#xff1f; 1.迭代器…...