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连接。

# 允许登陆ssh的ip
vi /etc/hosts.allow
sshd:192.168.111.201:allow

# 除了上面允许的,其他的ip都拒绝登陆ssh
vi /etc/hosts.deny
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服务如下: 

    // http://127.0.0.1:8080/test
    @GetMapping("/test")
    public String test() {
        return "test ok";
    }

本机配置如下:

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详细步骤
配置如下:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       8082;
        server_name  localhost;

        location / {
            proxy_pass http://127.0.0.1:8081;
        }
    }
}

本机浏览器访问: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配置如下 

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8080;
        server_name  localhost;
        location / {
            proxy_pass http://127.0.0.1:8081;
        }
    }
}

本机web服务

    // http://127.0.0.1:8080/test
    @GetMapping("/test")
    public String test() {
        return "test ok";
    }

参考:

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

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值