【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…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...