首页 > 其他分享 >将本地服务共享给服务器方法之一(SSH -R)

将本地服务共享给服务器方法之一(SSH -R)

时间:2023-12-27 20:25:24浏览次数:48  
标签:0.1 149.62 SSH 本地 服务器 共享 172.23

文档说明:只记录关键地方; 发布时间: 2023-12-27
需求: 通过公网临时访问本地正在开发的服务
运行环境: linux macos
状态: 实验完善中
用途例子:

1、 本地调试微信公众号 服务器推送的消息
2、 公网临时预览,预览本地开发的服务
3、 服务器访问本地 NAS 服务
4、 远程协助等等
5、 服务器共享本地代理服务

实验探索方案

通过检索将本地服务共享给服务器 其实有很多实现方法,比如:

frp
ngok
WireGuard
tailscale
zerotier
todesk
RustDesk
SSH -R 命令 最方便快捷
等等,以及各种 SDN 解决方案

最后结论: 只要能解决内网 NAT 穿越的工具,都可以实现此功能

比如常用 ICE(Interactive Connectivity Establishment)建立端到端的数据通道 (STUN、TURN 协议的一套框架,用于找到一条可用且最优传输数据通道连接) 也就是 webRTC 里面的 p2p 数据通道

选择的方案

不想配置,不想注册帐号,又想快速使用

使用 ssh -R 命令 快速实现

(SSH -R)服务端配置

# SSH服务端配置

vi /etc/ssh/sshd_config
# GatewayPorts yes

#配置完毕重启sshd
systemctl restart sshd

(SSH -R)本地配置

例子说明:

服务器公网地址: 39.104.48.241 , 服务器内网地址: 172.23.149.62

本地服务地址: 127.0.0.1:9501 (你的本地提供的 http 服务)

按需修改你本地服务地址即可




ip='39.104.48.241'
keyfile=/home/jingingxyk/huhehaote-sdn-test.pem

{
  ssh -o StrictHostKeyChecking=no \
    -o ExitOnForwardFailure=yes \
    -o TCPKeepAlive=yes \
    -o ServerAliveInterval=15 \
    -o ServerAliveCountMax=3 \
    -i $keyfile \
    -v -CTgN \
    -R 172.23.149.62:2000:127.0.0.1:9501 \
    root@$ip
} || {
  echo $?

}

     

在服务器验证是否配置成功例子

例子一: 服务器访问本地网页服务


curl -v http://172.23.149.62:2000/index.html 

例子二: 服务器 访问 本地 mysql 服务

本地服务的端口 6379

把上述命令 127.0.0.1:9501 替换为 127.0.0.1:6379



mysql  -p 2000 [email protected] 

例子三: 将本地代理服务共享给服务器

本地服务的端口 7892

把上述命令 127.0.0.1:9501 替换为 127.0.0.1:7892



curl -v --proxy 'http://172.23.149.62:2000' https://chromium.googlesource.com

curl -v --proxy 'socks5h://172.23.149.62:2000' https://chromium.googlesource.com

参考文档

  1. SSH 命令的三种代理功能(-L/-R/-D)
  2. SSH 连接保持不断线
  3. NAT介绍以及穿透各种类型nat的技术实现包括对称型nat
  4. 【译】 NAT 穿透是如何工作的:技术原理及企业级实践
  5. ICE协议下NAT穿越的实现(STUN&TURN)
  6. Using WebRTC data channels

标签:0.1,149.62,SSH,本地,服务器,共享,172.23
From: https://www.cnblogs.com/jingjingxyk/p/17931341.html

相关文章

  • 如何将闲置的电脑搭建成服务器
    1、安装系统作为服务器最好使用Linux系统,Ubuntu、deepin等都可以。2、安装宝塔面板宝塔面板是一个很好的服务器管理面板,可以在网页上连接管理服务器。首先在宝塔网站注册账号,然后到下载安装页面,根据自己安装的操作系统来选择安装脚本安装完成如图,生成两个面板地址,可以在外......
  • openssh 升级脚本
    #!/bin/bash###########################################################Function:openssh-9.6p1openssl-1.1.1wupdate##Platform:Centos7redhat7.9##Version:2.2#......
  • 迅为RK3588开发板RTMP推流之视频监控之搭建 RTMP 媒流体服务器
    1.安装nginx+rtmp运行所要用到的库和依赖环境apt-getupdateapt-getinstallbuild-essentiallibpcre3libpcre3-devlibssl-devzlib1g-devopenssl2.下载nginx-1.20.2源码(下载地址:http://nginx.org/download/nginx-1.20.2.tar.gz)和nginx-rtmp-module(下载地址:hy......
  • docker部署Vaultwarden密码共享管理系统
    转自地址:https://blog.csdn.net/weixin_51697917/article/details/133654754Vaultwarden是一个开源的密码管理器,它是Bitwarden密码管理器的自托管版本。它提供了类似于Bitwarden的功能,允许用户安全地存储和管理密码、敏感数据和身份信息。Vaultwarden的主要特点包括:1.安全的数据存......
  • 死锁、内部碎片、外部碎片、多进程/多线程、服务器高并发、集群
    死锁:两个(多个)线程互相等待对方数据的过程1.死锁产生条件(解决办法):......
  • Ubuntu访问Windows共享
    要在Ubuntu上访问Windows共享,可以通过以下步骤进行设置:确保Windows共享设置正确:共享文件夹:在Windows上选择要共享的文件夹,并确保它已共享。右键点击文件夹,选择“属性”,然后进入“共享”选项卡,设置共享选项和权限。网络发现和共享:确保Windows上的网络发现和文件共享已打开。......
  • 编译安装openssl-1.1.1和openssh-9.4
    1、安装openssl-1.1.1先处理下opensll的版本,以免编译安装Openssh环境异常:yumremoveopensslcd/optwgethttps://www.openssl.org/source/openssl-1.1.1n.tar.gztar-zxvfopenssl-1.1.1n.tar.gzcdopenssl-1.1.1n/./config--prefix=/opt/openssl#指定OpenSSL的......
  • 解决Python项目部署到服务器上的编码问题
    在将Python项目部署到服务器上时,经常会遇到编码问题,例如中文乱码、字符集不匹配等。这些问题可能导致项目无法正常运行或显示正确的内容。本文将介绍如何解决Python项目部署到服务器上的编码问题,以确保项目能够在服务器上正常运行。步骤一:确认编码问题首先,我们需要确认是否存在编码......
  • 06-服务器端命令(SQL)
    SQL定义:结构化的查询语言,mysql接口程序只负责接收SQL,传送给SQL层SQL种类DDL:数据库(对象)定义语言DCL:数据库控制语言(grantrevoke)DML:数据(行)操作语言(updatedeleteinsert)DQL:数据查询语言(show、select)一、DDL:数据库(对象)定义语言:DDL对库的操作createdatabaselufei;......
  • SSH服务器
    SSH服务器:使用SSH协议,可以实现:1.远程终端2.文件传输演示:1.使用MobaXterm远程连接虚拟机2.使用`uploadtocurrentfolder`把文件从本地上传到虚拟机 ......