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

通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问

Content

  • 1 问题描述
  • 2 原因分析
  • 3 解决办法
    • 3.1 安装`x11`以及`gnome`桌面环境
      • 查看是否安装`x11`
      • 否则使用下面指令安装`x11`组件
      • 查看是否安装`gnome`
      • 否则使用下面指令安装`gnome`桌面环境
    • 3.2 安装`xrdp`
      • 使用下面指令安装`xrdp`(如果安装了则跳过)
      • 启动`xrdp`服务
    • 3.3 远程服务器`ssh`服务配置
      • 编辑`ssh`配置文件:
      • 修改以下内容为`yes`
      • 重启`ssh`服务
    • 3.4 建立反向`ssh`隧道并验证
      • 在`cmd`窗口中建立反向隧道:
      • 打开`MobaXterm`使用`RDP`工具验证
      • 输入密码
    • 3.5 `linux`桌面环境下启动浏览器访问`web`服务即可

1 问题描述

在服务器(以ubuntu为例)内部启动了web服务,但是无法通过网页访问服务器中的web服务,其中服务器的配置如下:

  1. linux服务器目前只开放了ssh端口,只能通过ssh访问
  2. linux服务器ip地址为内网地址,其中ssh的默认端口(22)被映射到交换机或者其他设备的端口
    例如当前服务器可以通过以下指令连接:
ssh root@210.40.56.82 -p 10022 

但是服务器内部显示ip192.168.10.23(内网ip):
在这里插入图片描述
ssh中并未开放10022端口:

  • 使用lsof -i :10022指令查看10022端口占用情况(输出为空)
  • 使用lsof -i :22指令查看22端口占用情况(ssh服务正在监听)
    在这里插入图片描述

2 原因分析

目标远程服务器中均看不到ssh连接中的210.40.56.82地址以及10022端口信息,说明

  • 210.40.56.82 可能是远程服务器的公共 IP 地址,用于从外部网络访问目标远程服务器;
  • 远程服务器位于具有网络地址转换NAT功能的路由器或防火墙后面,210.40.56.8210022 端口可能被配置为映射到内部网络中的 192.168.10.23 的22端口

这样与远程服务器之间的网络通信方式为:
当外部请求到达 210.40.56.82 的 10022 端口时,路由器或防火墙会将流量转发到 192.168.10.23 的22端口

3 解决办法

通过上述分析得出,如果要访问目标服务器上面某个端口启动的web服务,直接通过http://210.40.56.82:端口号是无法访问到的,因为中间节点210.40.56.82并未做端口映射来转发这样的请求数据,此时

  • 要么建立新的web服务端口映射
  • 要么建立反向SSH隧道
  • 其他方式(待探索)
    下面以反向SSH隧道为例说明如何具体操作。

3.1 安装x11以及gnome桌面环境

x11gnome关系:gnome 环境是建立在 x11之上的,它使用 x11来管理和显示图形界面。x11 本身并不提供一个完整的桌面环境,而是提供了构建桌面环境的基础。

  • 查看是否安装x11

dpkg -l | grep xserver

有这样的信息则说明已安装x11组件(显示相关元素即可):
描述

  • 否则使用下面指令安装x11组件

sudo apt install xorg
  • 查看是否安装gnome

dpkg -l | grep gnome

有这样的信息则说明已安装gnome组件(显示相关元素即可):
在这里插入图片描述

  • 否则使用下面指令安装gnome桌面环境

sudo apt install ubuntu-gnome-desktop

3.2 安装xrdp

xrdp介绍:xrdp是一个开源的远程桌面协议(RDP)服务器,它允许用户通过RDP客户端远程访问
Linux桌面。

  • 使用下面指令安装xrdp(如果安装了则跳过)

sudo apt install xrdp
  • 启动xrdp服务

sudo systemctl restart xrdp

由于xrdp服务默认使用3389端口,如果linux防火墙拒绝3389端口访问,则在防火墙中建立下面的规则:

sudo iptables -A INPUT -p tcp --dport 3389 -j ACCEPT

3.3 远程服务器ssh服务配置

  • 编辑ssh配置文件:

vi /etc/ssh/sshd_config
  • 修改以下内容为yes

AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes

在这里插入图片描述

  • 重启ssh服务

sudo /etc/init.d/ssh restart
sudo /etc/init.d/xrdp restart

3.4 建立反向ssh隧道并验证

注意:该步骤为核心步骤,并且必须保证是在本地机器中操作(以windows举例)

  • cmd窗口中建立反向隧道:

ssh -v -f -N -T -L 10023:localhost:3389 root@210.40.56.82 -p 10022
  • 打开MobaXterm使用RDP工具验证

上述指令中将远程服务器3389端口映射到本地机器中的10023端口,因此配置如下信息:
在这里插入图片描述

  • 输入密码

在这里插入图片描述
如下显示进入ubuntu界面
在这里插入图片描述

3.5 linux桌面环境下启动浏览器访问web服务即可

在这里插入图片描述
===================================CHEERS ============================

相关文章:

通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问

Content 1 问题描述2 原因分析3 解决办法3.1 安装x11以及gnome桌面环境查看是否安装x11否则使用下面指令安装x11组件查看是否安装gnome否则使用下面指令安装gnome桌面环境 3.2 安装xrdp使用下面指令安装xrdp(如果安装了则跳过)启动xrdp服务 3.3 远程服务…...

# 渗透测试#安全见闻8 量子物理面临的安全挑战

# 渗透测试#安全见闻8 量子物理面临的安全挑战 ##B站陇羽Sec## 量子计算原理与技术 量子计算是一种基于量子力学原理的计算方式,它利用量子位(qubits)来进行信息处理和计算…...

【rabbitmq】实现问答消息消费示例

目录 1. 说明2. 截图2.1 接口调用截图2.2 项目结构截图 3. 代码示例 1. 说明 1.实现的是一个简单的sse接口,单向的长连接,后端可以向前端不断输出数据。2.通过调用sse接口,触发rabbitmq向队列塞消息,向前端返回一个sseEmitter对象…...

单片机_RTOS__架构概念

经典单片机程序 void main() {while(1){函数1();函数2();}} 有无RTOS区别 裸机 RTOS RTOS程序 喂饭() {while(1){喂一口饭();} } …...

ClickHouse在百度MEG数据中台的落地和优化

导读 百度MEG上一代大数据产品存在平台分散、质量不均和易用性差等问题,导致开发效率低下、学习成本高,业务需求响应迟缓。为了解决这些问题,百度MEG内部开发了图灵3.0生态系统,包括Turing Data Engine(TDE)计算引擎、Turing Dat…...

B/S架构(Browser/Server)与C/S架构(Client/Server)

基本概念 B/S架构(Browser/Server):即浏览器/服务器架构。在这种架构中,用户通过浏览器(如Chrome、Firefox、Safari等)访问服务器上的应用程序。服务器端负责处理业务逻辑、存储数据等核心功能,…...

idea中自定义注释模板语法

文章目录 idea 自定义模板语法1.自定义模板语法是什么?2.如何在idea中设置呢? idea 自定义模板语法 1.自定义模板语法是什么? 打开我的idea,创建一个测试类: 这里看到我的 test 测试类里面会有注释,这是怎…...

基于SSM的儿童教育网站【附源码】

基于SpringBoot的课程作业管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2 系统模块设计 4.3.3 数据库表设计 5 系统实现 5.1 管理员功能模块的实现 5.1.1 视频列表 5.1.2 文章信息管理 5.1.3 文章类…...

深挖自闭症病因与孩子表现的关联

自闭症,亦称为孤独症,乃是一种对儿童发展有着严重影响的神经发育障碍性疾病。深入探寻自闭症的病因与孩子表现之间的联系,对于更深刻地理解并助力自闭症儿童而言,可谓至关重要。 当前,自闭症的病因尚未完全明晰&#x…...

[网络协议篇] UDP协议

文章目录 1. 简介2. 特点3. UDP数据报结构4. 基于UDP的应用层协议5. UDP安全性问题6. 使用udp传输数据的系统就一定不可靠吗?7. 基于UDP的主机探活 python实现 1. 简介 User Datagram Protocol,用户数据报协议,基于IP协议提供面向无连接的网…...

关系型数据库(1)----MySQL(初阶)

目录 1.mysql 2.mysqld 3.mysql架构 1.连接层 2.核心服务层 3.存储引擎层 4.数据存储层 4.SQL分类 5.MySQL操作库 6.MySQL数据类型 1. 数值类型 2. 日期和时间类型 3. 字符串类型 4. 空间类型 5. JSON数据类型 7.MySQL表的约束 1. 主键约束(PRIMARY…...

计算机毕业设计Python+大模型租房推荐系统 租房大屏可视化 租房爬虫 hadoop spark 58同城租房爬虫 房源推荐系统

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 用到的技术: 1. python…...

深度学习技术演进:从 CNN、RNN 到 Transformer 的发展与原理解析

深度学习的技术演进经历了从卷积神经网络(CNN)到循环神经网络(RNN)再到 Transformer 的重要发展。这三个架构分别擅长处理图像、序列数据和多种任务的特征,标志着深度学习在不同领域取得的进步。 1. 卷积神经网络&…...

Lua中的goto语句

软考鸭微信小程序 过软考,来软考鸭! 提供软考免费软考讲解视频、题库、软考试题、软考模考、软考查分、软考咨询等服务 在Lua编程语言中,goto语句是一种跳转语句,用于将程序的执行流程无条件地转移到程序中的另一个位置。这个位置由一个标签(…...

【rust实战】rust博客系统2_使用wrap启动rust项目服务

如何创建一个使用warp框架的rust项目1.使用cargo 创建项目 cargo new blog 2.添加warp依赖 1.cd blog 2.编辑Cargo.toml文件 添加warp 和 tokio 作为依赖项 在[dependencies]中添加 [package] name "blog" version "0.1.0" …...

【实战案例】Django框架使用模板渲染视图页面及异常处理

本文基于之前内容列表如下: 【图文指引】5分钟搭建Django轻量级框架服务 【实战案例】Django框架基础之上编写第一个Django应用之基本请求和响应 【实战案例】Django框架连接并操作数据库MySQL相关API 视图概述 Django中的视图的概念是一类具有相同功能和模板的网…...

设置K8s管理节点异常容忍时间

说明 每个节点上的 kubelet 需要定时向 apiserver 上报当前节点状态,如果两者间网络异常导致心跳终端,kube-controller-manager 中的 NodeController 会将该节点标记为 Unknown 或 Unhealthy,持续一段时间异常状态后 kube-controller-manage…...

什么样的JSON编辑器才好用

简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也便于机器解析和生成。随着互联网和应用程序的快速发展,JSON已经成为数据传输和存储的主要格式之一。在处理和编辑JSON数据…...

ArkUI自定义TabBar组件

在ArkUI中的Tabs,通过页签进行内容视图切换的容器组件,每个页签对应一个内容视图。其中内容是图TabContent作为Tabs的自组件,通过给TabContent设置tabBar属性来自定义导航栏样式。现在我们就根据UI设计的效果图来实现下图效果: 根…...

pair类型应用举例

在main.cpp里输入程序如下&#xff1a; #include <iostream> //使能cin(),cout(); #include <utility> //使能pair数据类型; #include <string> //使能string字符串; #include <stdlib.h> //使能exit(); //pair类型可以将两个相同的或不同类…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

nnUNet V2修改网络——暴力替换网络为UNet++

更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 U-Net存在两个局限,一是网络的最佳深度因应用场景而异,这取决于任务的难度和可用于训练的标注数…...