• SecureCRT隧道,跳板机+端口转发,内网穿透


    背景

    ServerA(Linux系统):
    内网:192.168.111.201
    公网:10.121.8.88(虚构的ip方便理解)

    ServerB:
    内网:192.168.111.202

    本机:
    安装有SecureCRT软件

    注意上图中的箭头。箭头指向可以粗略地认为可以ping通就可以了。

    这里为了方便测试,准备了2台虚拟机,ServerA(192.168.111.201)、ServerB(192.168.111.202)
    并在ServerB(192.168.111.202)做如下配置,表示ServerB只允许ServerA连接。

    1. # 允许登陆ssh的ip
    2. vi /etc/hosts.allow
    3. sshd:192.168.111.201:allow
    4. # 除了上面允许的,其他的ip都拒绝登陆ssh
    5. vi /etc/hosts.deny
    6. sshd:ALL

    ssh安全隧道(一):本地端口转发
    目标:本机直接访问ServerB

    ssh安全隧道(二):远程端口转发。内网穿透
    目标:ServerB直接访问本机

    一、本地(windows)SecureCRT隧道远程ServerB

    远程端口转发
    SecureCRT菜单 》 File 》Quick Connect...

     需要注意的是,这个登录ServerA后,需要一直保持登录状态。 窗口不能关闭。

    这一步配置好后,关闭连接后重新打开。

    本地直连ssh登录ServerB。
    SecureCRT菜单 》 File 》Quick Connect...

     

     这是测试的ssh的22端口,其他mysql的3306等端口是一样的

    二、本地(windows)SecureCRT隧道方式连接mysql

    SecureCRT菜单 》 File 》Quick Connect...

     需要注意的是,这个登录ServerA后,需要一直保持登录状态。 窗口不能关闭。

     这一步配置好后,关闭连接后重新打开。

    本地直连登录ServerB的mysql。

    三、本地(windows)SecureCRT远程端口转发,内网穿透

    远程端口转发

    原理是把服务器的端口转发到本机的端口上,
    比如把服务器的 8081 端口转发给本机的 8080 端口,服务器使用nginx反向代理到 8081 端口绑定域名就可以正常访问本地电脑中web应用了。

    本机启动一个web服务如下: 

    1. // http://127.0.0.1:8080/test
    2. @GetMapping("/test")
    3. public String test() {
    4. return "test ok";
    5. }

    本机配置如下:

    SecureCRT菜单 》 File 》Quick Connect...

    这里做本地测试用的内网ip,这里的ip可改为ServerA的公网ip

     需要注意的是,这个登录ServerA后,需要一直保持登录状态。 窗口不能关闭。

     这里做本地测试用的内网ip,这里的ip可改为ServerA的公网ip

     这一步配置好后,关闭连接后重新打开。
    到这一步,已经可以使用 ServerA的127.0.0.1:8081 访问,本机的 127.0.0.1:8080端口了。
    但是只能用127.0.0.1:8081 转发访问,并不能使用ServerA的内网(192.168.111.201:8081)或者外网(10.121.8.88:8081)转发访问,
    需要使用nginx将内网(192.168.111.201:8081)或者外网(10.121.8.88:8081)转发到127.0.0.1:8081。127.0.0.1:8081再转发到本机。

     ServerA配置

    在ServerA(192.168.111.201)安装Nginx。Linux下安装nginx详细步骤
    配置如下:

    1. worker_processes 1;
    2. events {
    3. worker_connections 1024;
    4. }
    5. http {
    6. include mime.types;
    7. default_type application/octet-stream;
    8. sendfile on;
    9. keepalive_timeout 65;
    10. server {
    11. listen 8082;
    12. server_name localhost;
    13. location / {
    14. proxy_pass http://127.0.0.1:8081;
    15. }
    16. }
    17. }

    本机浏览器访问:http://127.0.0.1:8080/test

    ServerA(内网192.168.111.201)访问本机:curl http://127.0.0.1:8081/test
    ServerA(公网10.121.8.88)浏览器访问本机:http://10.121.8.88:8082/test

    ServerB(192.168.111.202)访问本机:curl http://192.168.111.201:8082/test

    真实案例

    我有台公网Linux服务器:124.223.x.x:8080

    nginx配置如下 

    1. worker_processes 1;
    2. events {
    3. worker_connections 1024;
    4. }
    5. http {
    6. include mime.types;
    7. default_type application/octet-stream;
    8. sendfile on;
    9. keepalive_timeout 65;
    10. server {
    11. listen 8080;
    12. server_name localhost;
    13. location / {
    14. proxy_pass http://127.0.0.1:8081;
    15. }
    16. }
    17. }

    本机web服务

    1. // http://127.0.0.1:8080/test
    2. @GetMapping("/test")
    3. public String test() {
    4. return "test ok";
    5. }

    参考:

    SecureCRT和Putty隧道方式连接Mysql、远程登录内网服务器_MarshalEagle的博客-CSDN博客_securecrt 隧道

    [Linux] 使用secureCRT实现SSH隧道服务器端口转发到本机内网穿透 - 走看看

  • 相关阅读:
    ES6-03-模版字符串、对象的简化写法
    .....
    关于视频流读取失败的时间问题解决 & 利用修饰符进行限时操作
    如何全面的理解APS自动排产系统?
    AI制药中的一些思考和想法
    3基于MATLAB的齿轮啮合仿真,可根据需要调节齿轮参数,实现齿轮啮合转动动态过程。程序已调通,可直接运行。
    Java NIO模型(提供代码示例)
    线扫相机DALSA--分频倍频计算公式及原理
    Bootstrap的一些主要作用
    es滚动查询分析和使用步骤
  • 原文地址:https://blog.csdn.net/u014644574/article/details/128163917