• [转载]Linux上使用ssl进行端口转发


    原文地址:Linux上使用ssl进行端口转发  作者:呼延十

    背景介绍

    作为一个后端程序员,经常要和别人联调接口,每当这时,总是被公司的各种,dev,qa,pre,prod环境搞得头疼,,,我真的只是想简单的联调一下看看能不能调的通啊…或者当你为移动端开发接口的时候,你想完整的体验从点击APP到自己的电脑打出log这个流程(因为中间好几个环境,你需要知道是哪里出了问题),却发现自己的办公网络没有独立ip….那么你可以来学习一下Linux的端口转发了.

    将本地的请求转发到远程主机端口

    这个方案主要用来解决访问生产环境的问题.(当然这样不好,但是有些生产环境不重要,可以这样操作)

    举个简单的例子,你在本地执行:

    ssh -L 4333:localhost:8000 root@xxxxx -N -f

    可以将本地的4333端口转发到远程的8000端口,这意味着你在本地调用localhost:4333即可以获取到xxxxx服务器上8000端口的结果.

    现在举个复杂一点的例子:

    比如你现在在本地测试代码,我们成为:localhost.

    你要连接一个生产的数据库,本地连接不上. 生产的数据库称为:prod.

    但是你现在有一台dev机,称为dev.

    在dev机器上可以访问到一个跳板机,我们称之为jump.

    那么怎么样才可以在本地运行并且连接到prod的数据库呢?

    需要在dev机上端口转发.

    在dev机上执行:

    ssh -L 3333:prod:3306 root@jump -N -f

    这个命令的结果是:

    所有请求dev机3333端口的请求,都会被转发为jump机器上对prod:3306的请求.

    现在在本地直接执行mysql -uroot -p -hdev -P3333就可以连接prod的数据库了,当然,用户和密码都需要是真实的线上数据库的用户和密码.

    将远程主机端口的请求转发到本地

    这个案例就是用来解决内网穿透的问题了,当然你也可以选择搭建ngrok服务器,只是更麻烦一些.

    假如你和移动端同学py一下,让他们给你打个包用来测试,绑定一个测试服务器,那么最好的当然是绑定我们的本地机器,这样随时随地可以测试.但是我们日常使用wifi,ip地址经常会变,这可怎么办呢?

    随便找一台具有固定ip的服务器,最好是公司的测试服务器不用的端口即可.

    然后在本地执行:

    ssh -R 8092:localhost:6666 root@xxxxx -N -f

    即可以将对xxxxx服务器8092端口的访问转发到本地的6666端口上,现在你可以让请求API的人直接请求xxxxxx:8092,而你在本地的6666端口上启动服务即可,不仅可以随时修改随时起效,还可以打断点调试.


  • 相关阅读:
    解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
    加快项目创建 -DarchetypeCatalog=internal
    AKS (3) 在AKS中使用Azure File
    AKS (2) SSH登录到AKS Node
    Azure Virtual Network (18) 跨租户间的VNet Peering
    Azure ARM (23) 自定义Role
    Linux学习 (5) 安装Nginx
    Linux学习 (4) MySQL设置Master-Slave
    Linux学习 (3) 安装mysql
    Linux学习 (3) 配置LVM
  • 原文地址:https://www.cnblogs.com/hanshuai/p/11101068.html
Copyright © 2020-2023  润新知