介绍

本程序主要用于进行反向代理IP地址和端口,功能类似于 nginx 的 stream 模式和rinetd 的功能;在(1.0.5)版本开始,rein支持内网穿透,这一功能类似于frp 和ngrok。由于rein使用了golang语言开发,并且提供已经编译好的可下载版本,在部署配置方面比它们要方便些。

功能列表:

  1. 反向代理IP和端口(upstream 模式)。
  2. 提供本地文件的快速网络(http协议)分享(fileshare 模式)。
  3. 内网穿透(inps / inpc 模式)
  • rein 支持模式:
模式 说明
upstream 反向代理模式
fileshare 提供本地文件的快速网络(http协议)分享
inps 内网穿透的服务器端,inps 需要部署在有公网地址服务器上(版本 >= 1.0.5)
inpc 内网穿透的客户机端,inpc 部署在能访问互联网,没有公网 IP 地址的 PC 或服务器上(版本 >= 1.0.5)
  • inps 和 inpc 模式图解:


1. 根据你的操作系统下载指定可执行文件

所有操作系统版本的压缩包下载网址: https://note.youdao.com/ynoteshare1/index.html?id=e11547282e63ce5920c5c2755a5cd89a&type=note

1.1 根据操作系统下载

  • 1.1.1 在 CentOS/RHEL/Ubuntu 平台下载
cd ~
wget \
http://note.youdao.com/yws/public/resource/e11547282e63ce5920c5c2755a5cd89a/xmlnote/18F3E51677BC41B3B1FE0F6B7DE359F5/27478 -O rein.zip
unzip rein.zip
chmod +x rein

2. 简单部署

2.1 确定你需要的功能进行部署

  • 三种模式说明
功能模式 说明
upstream 反向代理
fileshare 提供本地文件的快速网络(http协议)分享
inps/inpc 内网穿透 (服务器端/客户端) (版本 >= 1.0.5)

2.2 具体功能模式说明

说明: 不同操作系统的操作存在差异, 在后续的介绍中,CentOS/RHEL/Ubuntu,将会被作为默认操作。 不过 2.2.1 将仍然分开介绍。

下面是主要的差异操作部分:

# 在 CentOS/RHEL/Ubuntu下, 显示所有模式, 以 upstream 模式为例
./rein -e-detail
./rein -e-detail-upstream # 在 CentOS/RHEL/Ubuntu 下,生成配置文件,以 upstream 模式为例
./rein -e-detail-upstream > rein.json ##################################################### # 在 Windows 模式下, 显示所有模式, 以 upstream 模式为例
./rein.exe -e-detail
./rein.exe -e-detail-upstream # 在 CentOS/RHEL/Ubuntu 下,生成配置文件,以 upstream 模式为例
# 使用 Windows cmd
./rein.exe -e-detail-upstream > rein.json # 使用 Windows powershell
./rein.exe -e-detail-upstream | out-file -encoding ascii rein.json
  • 2.2.1 使用 upstream 模式

    使用 -e-detail-xxx 选项,产生配置文件并运行。

    • 在 CentOS/RHEL/Ubuntu 下部署

      • # 显示所有模式
        ./rein -e-detail
        Enter a mode, show specific example, as follow:
        -e-detail-upstream
        -e-detail-inps
        -e-detail-inpc
        -e-detail-fileshare # 生成配置文件,以 upstream 模式为例
        ./rein -e-detail-upstream > rein.json # 修改 rein.json 配置文件以符合你的需要
        {
        "upstream": [
        {"source": "0.0.0.0:8150", "target": "127.0.0.1:9990"}
        ]
        } # 运行 rein
        ./rein -c rein.json
    • 在 Windows 下运行

      • # 显示所有模式
        ./rein.exe -e-detail
        Enter a mode, show specific example, as follow:
        -e-detail-upstream
        -e-detail-inps
        -e-detail-inpc
        -e-detail-fileshare # 生成配置文件,以 upstream 模式为例
        # 使用 windows cmd
        ./rein.exe -e-detail-upstream > rein.json # 使用 windows powershell
        ./rein.exe -e-detail-upstream | out-file -encoding ascii rein.json # 修改 rein.json 配置文件以符合你的需要
        {
        "upstream": [
        {"source": "0.0.0.0:8150", "target": "127.0.0.1:9990"}
        ]
        } # 运行 rein
        ./rein.exe -c rein.json
  • 2.2.2 使用 fileshare 模式

    # 显示默认的示例配置
    ./rein -e-detail-fileshare
    {
    "fileshare": [
    {"port": "9990", "path": "."}
    ]
    } # 生成配置文件
    ./rein -e-detail-fileshare > rein.json # 修改 rein.json 配置文件以符合你的需要
    {
    "fileshare": [
    {"port": "9990", "path": "."}
    ]
    } # 运行 rein
    ./rein -c rein.json
  • 2.2.3 使用 inps/inpc 模式

    举例:假设你有一台服务器(A),有一个公网IP地址是 52.74.223.119 , 然后你还有一台服务器或PC是(B),它的IP地址是192.168.1.122(这是一个局域网IP,它没有公网IP,不过它可以访问互联网).

    把 inps 部署在服务器(A),把 inpc 部署在服务器或PC(B).

    用图来解释下:

    • inps的部署命令

    Put inps onto your server A with public IP.

    # 生成配置文件
    ./rein -e-detail-inps > rein.json # 修改 rein.json 配置文件以符合你的需要
    {
    "inps": [
    {"ctrl": "0.0.0.0:17500"}
    ]
    } # 运行 rein
    ./rein -c rein.json
    • inpc的部署命令
    # 生成配置文件
    ./rein -e-detail-inpc > rein.json # 修改 rein.json 配置文件以符合你的需要
    # 端口 17500 是部署在服务器(A)上开放的 'inps' 服务端口
    # 端口 22 是服务器(B)本地端口
    # 端口 9800 是通过 'inps' 服务开放的端口,直接映射到服务器(B)的22端口
    {
    "inpc": [
    {
    "ctrl": "52.74.223.119:17500",
    "source": "0.0.0.0:9800",
    "target": "127.0.0.1:22"
    }
    ]
    } # 运行 rein
    ./rein -c rein.json

rein 多平台支持的超便携端口转发与内网穿透工具的更多相关文章

  1. NAT、端口映射、内网穿透、公网IP都是啥

    原文地址:https://wuter.cn/1756.html/ 一.IPv4地址 IP协议是为计算机网络相互连接进行通信而设计的协议,它是能使连接到网上的所有计算机网络实现相互通信的一套规则. 这里 ...

  2. LCX端口转发实现内网突破

    工具:lcx.exe 原理:当目标主机仅开放了web服务,而该服务又仅能供内网用户使用,外网用户根本无法直接访问.因此想要让外网用户能能够访问局域网中的系统服务,必须进行端口映射等操作才行.其原理就是 ...

  3. Rinetd 通过ECS端口转发到内网RDS

    前置条件 实现目的:开发本地电脑需要连接没有外网地址的RDS,通过ECS进行转发连接到RDS数据库 客户 PC 终端可以 ssh 登录有公网的 ECS 服务器. 有公网的 ECS 服务器可以通过内网访 ...

  4. 内网穿透神器(ngrok)服务端部署【分享一台自己的ngrok服务器】【多平台】

    Ngrok为何物 “ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放.”这是百度百科上给Ng ...

  5. Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问

    Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 ​ 关键词: frp内网 ...

  6. SSH 端口转发+内网穿透

    用最直白的语言对本文所有内容进行定义: 端口转发(-L):用A机器(内网)登录B机器(公网), 在A机器打开端口,将收到的所有请求转发到B机器的某个端口 (在代理机上执行) 内网穿透(-R):用A机器 ...

  7. 感觉差不多了。CLOUDSTACK的NAT,端口转发和防火墙结合穿透

    构架差不多OK啦. 测试也近尾声啦. 感觉它适合私有云,或是混合云,但结合了SDN的网络,真的很安全. 如果是纯公有云,也是更适合特定方案.或是要第二次开发,毕竟让ACCOUNT登陆到后台,结合GUE ...

  8. ssh 端口转发实现外网 80 端口映射到内网 80 端口

    开发中经常需要外网服务映射到本机内网服务的需要,便于调试. 以前都是同事帮着配,这两天自己也看了一下 ssh 端口转发. 同事分分钟钟搞定的事情,自己折腾了 2 天, 真是弱爆了. 最初老想不明白一件 ...

  9. firewalld 实现nat 转发外网转发到内网 实现访问外网端口到内网

    第0步骤:  开启转发生效 [root@node178.oldboy.com ~]# cat /proc/sys/net/ipv4/ip_forward1 [root@node178.oldboy.c ...

随机推荐

  1. Libevent2.1.8版在Liunx中编译安装遇到的问题

    Libevent2.1.8版在Liunx中编译安装遇到的问题 前言:在网上找了很久,都没有一个明确的解决方法,通过分析可能的原因,将自己实际操作及解决的成功结果记录如下,以供遇到相似的问题,能提供思路 ...

  2. Bootstrap-table 显示行号

    趁热打铁,使用bootstrap-table时,想要显示每行的行号,再网上查了查,网上给的显示行号的大部分方法,只要一翻页,行号就会又从1开始计算, 也许没有碰到想要的,自己试着解决了这个问题,本人初 ...

  3. 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅

    摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...

  4. MQTT介绍与使用(转载)

    物联网是新一代信息技术的重要组成部分,也是"信息化"时代的重要发展阶段.其英文名称是:"Internet of things(IoT)".顾名思义,物联网就是物 ...

  5. MySQL | 使用Xtrabackup进行备份和备份恢复

    备份 进行备份前需要先创建备份用户,直接使用 root 用户进行备份也行,但是这样不太规范. create user backup@'localhost' identified by '123456' ...

  6. Django基础006--在pycharm中将项目配置为Django项目

    1.在File--Settings--搜索Django 操作按照如图所示 2.在pycharm右上方项目处,选择Edit Configurations 3.在Name处写上项目名称 python环境选 ...

  7. Linux必备命令 - 常用命令集

    默认进入系统,我们会看到这样的字符: [root@localhost ~]#,其中#代表当前是root用户登录,如果是$表示当前为普通用户.cd 命令 cd  /home  :解析:进入/home目录 ...

  8. 深度解析 Lucene 轻量级全文索引实现原理

    一.Lucene简介 1.1 Lucene是什么? Lucene是Apache基金会jakarta项目组的一个子项目: Lucene是一个开放源码的全文检索引擎工具包,提供了完整的查询引擎和索引引擎, ...

  9. python -- 程序异常与调试(程序调试)

    一.程序调试 A.使用assert语句检测程序代码中的错误. assert 表达式[, 参数] 如果表达式为True,则继续往下运行:如果为False,则抛出一个AssertionError异常,并且 ...

  10. 查看JVM默认参数及微调JVM启动参数

    目录 查看某个JVM进程堆内存信息 微调JVM启动参数 查看JVM的一些默认参数 参考廖雪峰老师的这篇 JVM调优的正确姿势: https://www.liaoxuefeng.com/article/ ...