【Ubuntu】Windows远程Ubuntu系统
步骤
- 开启
ssh服务并开放22端口 - 关闭防火墙
ufw或iptables;或者将远程端口添加到入站与出站规则 - 安装
xrdp并将xrdp用户添加到ssl-cert用户组 - 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服务
- 安装openssh服务查看服务有没有开启
sudo apt-get install openssh-server
- 查看服务有没有开启
sudo ps -e | grep ssh
- 如果没有就开启,启动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 的功能
在大多数情况下,最好不要同时运行 ufw 和 iptables-restore。这是因为 ufw 本身实际上是一个基于 iptables 的前端工具,用于简化 iptables 的配置过程。当你启用 ufw 时,它会自动配置 iptables 规则。
如果你手动使用 iptables-restore 来加载自定义的 iptables规则,而且同时又启用了ufw` ,可能会导致规则冲突和意外行为。因此,最好的做法是选择其中一种方式来管理防火墙规则,而不是同时使用两者。
如果你更喜欢手动配置 iptables 规则,那么你可以停用 ufw 并直接使用 iptables 和 iptables-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用户添加到这个用户组:
- 将xrdp 添加到 ssl-cert用户组
sudo adduser xrdp ssl-cert
- 重启xrdp
sudo systemctl restart xrdp
3. 远程过程中的问题
3.1 黑屏问题
- 使用vim打开
startwm.sh配置文件
sudo vim /etc/xrdp/startwm.sh
命令模式:键入指令i 进入-- 插入 --模式-- 插入 --模式:在下图所示位置添加如下内容
...
unset DBUS_SESSION_BUS_ADDRESSunset XDG_RUNTIME_DIR
...

- 使用Esc指令退出
-- 插入 --模式,进入命令模式。 命令模式:键入指令: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,您可以将一个或多个阶段(…...
软件工程理论与实践 (吕云翔) 第六章 面向对象分析课后习题及其解析
第六章 面向对象分析 知识点: 一个典型的软件系统通常包括的内容为:它使用数据结构(对象模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。 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 右键菜单ÿ…...
【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的计时器功能实现一个简单的计时器效果。 首先,我们需要创建一个包含计时器的组件。以下是一个基本的计时器组件示例: <template><div class"timer"><p>{{ formatTime }}</p><…...
Linux脚本shell中将Windos格式字符转换为unix
众所周知,windos的文档直接复制到linux服务器上去,是需要进行格式转换的,否则可能出现以下报错: 解决方法: 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(选举)一天就完成了,主要是第一次开始写Raft需要稍微熟悉一下,但是几乎不用修改,很容易就通过了。不过到了Lab 2B就会发现2A能够通过纯属侥…...
MySql 数据库初始化,创建用户,创建数据库,授权
登录MySQL(使用管理员账户) mysql -u root -p 设置用户 -- 创建用户并设置密码 CREATE USER user_name% IDENTIFIED BY user_password;-- 删除用户 drop user user_name; 设置数据库 -- 创建数据库 CREATE DATABASE database_name;-- 删除数据库 DR…...
【洛谷算法题】P5712-Apples【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5712-Apples【入门2分支结构】🌏题目描述🌏输入格式&…...
vue项目中的js文件使用vuex
使用场景:假设有一个接口,需要在很多页面获取一遍并且将接口的返回值保存起来,这样就能使用vuex,将值保存在vuex中 实现:vuex中新建firmModule.js文件,编写存储值的代码,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是一款免费的思维导图软件,适用于Mac电脑用户。它可以帮助你轻松创建、编辑和共享思维导图,让你的思维更加清晰、有条理。 首先,Mindomo Desktop for Mac具有直观易用的界面。它采用了Mac独特的用户界面设计…...
Spark资源规划-资源上线评估
1、总体原则 以单台服务器 128G 内存,32 线程为例。 先设定单个 Executor 核数,根据 Yarn 配置得出每个节点最多的 Executor 数量,每个节点的 yarn 内存/每个节点数量单个节点的数量 总的 executor 数单节点数量*节点数。 2、具体提交参数 …...
RT-Thread STM32F407 定时器
定时器简介 硬件定时器一般有 2 种工作模式,定时器模式和计数器模式。不管是工作在哪一种模式,实质都是通过内部计数器模块对脉冲信号进行计数。下面是定时器的一些重要概念。 计数器模式:对外部输入引脚的外部脉冲信号计数。 定时器模式&…...
C#asp.net考试系统+sqlserver
C#asp.net简易考试系统 sqlserver在线考试系统学生登陆 判断学生是否存在 选择课程名 科目 可以进行答题操作,已经考试的课程不能再次答题, 自动根据课程名对应的题库生成试卷界面 加入选项类容 说明文档 运行前附加数据库.mdf(或sql生成数…...
mac上配置maven
本文简述mac book上的Maven环境配置,着重讲述不同点。 1.安装 下载解压后,首先配置环境变量。编辑~/.bash_profile文件。加入如下代码: export M2_HOME/Users/jackie/tools/apache-maven-3.8.1注意:“/Users/jackie/tools/apac…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
