• 【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
    
    • 1

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


        632 ?        00:00:00 sshd
      20915 ?        00:00:00 ssh-agent

    1.2. 开启ssh服务

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

    sudo /etc/init.d/ssh start
    
    • 1

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


    Starting ssh (via systemctl): ssh.service.

    1.3 安装openssh服务

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

    1.4 检查ssh默认开放22端口

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

    1.41 使用 netstat 进行查看

    netstat -an | grep 22
    
    • 1

    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
    
    • 1

    bash: ufw:未找到命令
    

    1.4.3 安装 ufw

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

    sudo apt-get install ufw
    
    • 1

    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树       
    正在读取状态信息... 完成       
    下列【新】软件包将被安装:
      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 version
    
    Creating config file /etc/ufw/before6.rules with new version
    
    Creating config file /etc/ufw/after.rules with new version
    
    Creating 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
    
    • 1

    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
    
    • 1

    [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 directory
    
    Error 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 directory
    
    Error 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'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    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
    
    • 1

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意:ci

    1.4.7 关闭防火墙

    sudo ufw disable
    
    • 1

    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
    
    • 1

    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

    1.4.10 ssh重启

    sudo service sshd restart
    
    • 1

    1.4.11 防火墙生效并开机启动

    sudo ufw enable
    
    • 1

    2、远程 xrdp

    2.1 安装

    sudo apt install xrdp
    
    • 1

    2.2 查看xrdp运行状态

    sudo systemctl status xrdp
    
    • 1

     xrdp.service - xrdp daemon
         Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
         Active: active (running) since Tue 2023-11-14 15:24:29 CST; 19h ago
           Docs: man:xrdp(8)
                 man:xrdp.ini(5)
       Main PID: 702 (xrdp)
          Tasks: 2 (limit: 4522)
         Memory: 22.2M
         CGroup: /system.slice/xrdp.service
                 ├─  702 /usr/sbin/xrdp
                 └─20550 /usr/sbin/xrdp
    
    11月 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
    
    • 1

    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
    1. 重启xrdp
    sudo systemctl restart xrdp
    
    • 1

    3. 远程过程中的问题

    3.1 黑屏问题

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

    在这里插入图片描述

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

    保存并退出

    :wq!
    
    • 1

    不保存并退出

    :q!
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    hive数据初始化
    【LeetCode力扣】007. 整数反转(Python)
    Vite学习笔记----踩过的坑(不定时更新)
    redis的原理和源码-数据过期expire的介绍
    go语言学习-前置基础
    zookeeper第一章:集群搭建
    2023国赛数学建模B题思路分析 - 多波束测线问题
    使用pkg打包node.js为可执行文件(exe)
    消息队列常见问题
    C# WPF监听USB插入拨出
  • 原文地址:https://blog.csdn.net/chenlu5201314/article/details/134415906