需求

内网机器没有公网IP,但是可以访问外网,现在需要从外网访问内网机器。

举例,在家里机器A访问公司内网机器B。

前提

需要一台有公网IP的服务器S做中转,这样就可以打通AB两端了。

A <---> S <---> B

环境

  • 家中A机,Win10
  • 服务器S,Ubuntu 16.04 LTS 64 bit,公网IP: 123.12.23.13 (举例而已),SSH 端口: 22
  • 内网B机,Ubuntu 18.04 LTS 64 bit,内网IP: 192.168.2.3 (举例而已),SSH 端口: 1122

工具

  • 大牛ooclab开发的otunnel

    下载链接:otunnel,支持Mac,FreeBSD,Linux,OpenBSD,Windows等平台

教程

官方教程:otunnel用法

实战

基于上面的环境,作如下操作:

  • 在服务器S上下载otunnel_linux_amd64并运行:

    $ ./otunnel_linux_amd64 listen :10000 -s thisisasecret

    这是在服务器S上监听端口10000,thisisasecret是连接密码

  • 在内网B机上下载otunnel_linux_amd64并运行:

    $ ./otunnel_linux_amd64 connect 123.12.23.13:10000 -s thisisasecret -t 'r:192.168.2.3:1122::10022'

    这是从内网机器连接到服务器S的10000端口,以后外网SSH连接到服务器S的10022端口,就等价于连接到内网B机的1122端口

  • 从家中A机的bash窗口运行SSH:

    $ ssh shit@123.12.23.13 -p 10022

[笔记] 使用otunnel从外网访问内网的更多相关文章

  1. [笔记] 使用frp从外网访问内网

    之前尝试过otunnel,也记录过使用方法,见[笔记] 使用otunnel从外网访问内网,但是用了几天发现还是不够稳定. 然后尝试frp,发现性能稳定,够用,将过程及配置分享在这里吧. 需求 内网机器 ...

  2. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

随机推荐

  1. mysql下优化表和修复表命令(repair table、optimize table)

    随着mysql的长期使用,肯定会出现一些问题,一般情况下mysql表无法访问,就可以修复表了,优化时减少磁盘占用空间,方便备份. repair table table_name //修复表 optim ...

  2. .NET Core 3来了!如何使用DevExpress WPF创建.NET Core 3应用

    DevExpress广泛应用于ECM企业内容管理. 成本管控.进程监督.生产调度,在企业/政务信息化管理中占据一席重要之地.通过DevExpress WPF Controls,您能创建有着强大互动功能 ...

  3. PHP内置常量,和可变变量,常量的定义

    关键常量 可变变量----变量名是变量的变量 常量的定义

  4. 解决boot项目创建后启动日志报错

    <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</ ...

  5. Ant自动编译打包android项目(转载)

      1.1   Ant安装 ant的安装比较简单,下载ant压缩包  http://ant.apache.org  (最新的为1.9.3版本),下载之后将其解压到某个目录(本人解压到E:\Progra ...

  6. Hibernate 5 Maven 仓库的 Artifacts

    Hibernate artifacts 官方发布的仓库在 JBoss Maven repository 中.Hibernate 发布的 artifacts 也会同时同步到 Maven Central ...

  7. noi.ac #543 商店

    我们考虑可并堆维护,从深到浅贪心选取. 用priority_queue启发式合并的话,是60pts: #include<iostream> #include<cstdio> # ...

  8. 文件操作(stat函数)

    stat函数可以获取文件信息 /*** stat.c ***/ #include<stdio.h> #include<string.h> #include<sys/sta ...

  9. beautifulsoup 安装

    pip install beautifulsoup4

  10. dom4j读写XML文档

    dom4j 最常用最简单的用法(转) 要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/目前最新dom4j包下载地址:http:/ ...