rein 多平台支持的超便携端口转发与内网穿透工具
介绍
本程序主要用于进行反向代理IP地址和端口,功能类似于 nginx
的 stream
模式和rinetd
的功能;在(1.0.5)版本开始,rein
支持内网穿透,这一功能类似于frp
和ngrok
。由于rein
使用了golang
语言开发,并且提供已经编译好的可下载版本,在部署配置方面比它们要方便些。
功能列表:
- 反向代理
IP
和端口(upstream
模式)。 - 提供本地文件的快速网络(
http
协议)分享(fileshare
模式)。 - 内网穿透(
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
1.1.2 在 Windows 平台下载
打开浏览器,在地址栏输入下面的地址后下载
解压压缩包
rein-x.x.x-amd64-windows.zip
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.json2.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 多平台支持的超便携端口转发与内网穿透工具的更多相关文章
- NAT、端口映射、内网穿透、公网IP都是啥
原文地址:https://wuter.cn/1756.html/ 一.IPv4地址 IP协议是为计算机网络相互连接进行通信而设计的协议,它是能使连接到网上的所有计算机网络实现相互通信的一套规则. 这里 ...
- LCX端口转发实现内网突破
工具:lcx.exe 原理:当目标主机仅开放了web服务,而该服务又仅能供内网用户使用,外网用户根本无法直接访问.因此想要让外网用户能能够访问局域网中的系统服务,必须进行端口映射等操作才行.其原理就是 ...
- Rinetd 通过ECS端口转发到内网RDS
前置条件 实现目的:开发本地电脑需要连接没有外网地址的RDS,通过ECS进行转发连接到RDS数据库 客户 PC 终端可以 ssh 登录有公网的 ECS 服务器. 有公网的 ECS 服务器可以通过内网访 ...
- 内网穿透神器(ngrok)服务端部署【分享一台自己的ngrok服务器】【多平台】
Ngrok为何物 “ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放.”这是百度百科上给Ng ...
- Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 关键词: frp内网 ...
- SSH 端口转发+内网穿透
用最直白的语言对本文所有内容进行定义: 端口转发(-L):用A机器(内网)登录B机器(公网), 在A机器打开端口,将收到的所有请求转发到B机器的某个端口 (在代理机上执行) 内网穿透(-R):用A机器 ...
- 感觉差不多了。CLOUDSTACK的NAT,端口转发和防火墙结合穿透
构架差不多OK啦. 测试也近尾声啦. 感觉它适合私有云,或是混合云,但结合了SDN的网络,真的很安全. 如果是纯公有云,也是更适合特定方案.或是要第二次开发,毕竟让ACCOUNT登陆到后台,结合GUE ...
- ssh 端口转发实现外网 80 端口映射到内网 80 端口
开发中经常需要外网服务映射到本机内网服务的需要,便于调试. 以前都是同事帮着配,这两天自己也看了一下 ssh 端口转发. 同事分分钟钟搞定的事情,自己折腾了 2 天, 真是弱爆了. 最初老想不明白一件 ...
- firewalld 实现nat 转发外网转发到内网 实现访问外网端口到内网
第0步骤: 开启转发生效 [root@node178.oldboy.com ~]# cat /proc/sys/net/ipv4/ip_forward1 [root@node178.oldboy.c ...
随机推荐
- POJ 2299 Ultra-QuickSort 求逆序数 线段树或树状数组 离散化
我用的线段树写的. num数组表示已插入的数值的个数. 由于a[i]数值很大,但是n不是很大,所以要离散化处理 9 1 0 5 4 离散化后 4 1 0 3 2 这样保证最大值不会超过n #inclu ...
- css边框样式(动画)
html: <div class="wrap"> <a href="#">shui</a> </div> css ...
- Docker:docker部署Tomcat运行web项目
查找Docker Hub上的tomcat镜像 docker search tomcat 拉取官方的镜像 docker pull tomcat 启动Tomcat服务 方式1: 通过dockerfile生 ...
- WPF使用Microsoft.VisualBasic创建单例模式引起的权限降低问题
在进行WPF开发时,总是在找更加优雅去写单例模式的代码. 很多人都喜欢用Mutex,一个App.cs下很多的Mutex,我也喜欢用. 看完<WPF编程宝典>的第七章Applicaton类后 ...
- MYSQL_Join注入技巧
Join注入技巧 join无名列报错注入 约束条件 在知到表名的前提下才能操作 注入语句 and extractvalue(1,concat(0x7e,(select * from (select * ...
- tr 字符转换命令
tr:可以用来删除一段信息当中的文字,或者是进行文字信息的替换 语法:tr [parameter] set1 ...参数: -d:删除信息当中的set1这个字符 -s:替换掉重复的字符 举例: 将la ...
- 「AGC027D」Modulo Matrix
「AGC027D」Modulo Matrix 传送门 神仙构造题. 首先考虑一个非常自然的思路,我们把棋盘黑白染色后会变成一个二分图,黑色棋子只会与白色棋子相邻. 也就是说,我们可以将二分图的一部随便 ...
- shell 正则表达式一
正则表达式用于处理文本,精通运用正则表达式可以有效的解决工作的效率 正则表达式有基础正则表达式和扩展正则表达式区别 grep支持基础的正则表达式,grep -E (egrep)支持扩展正则表达式 1. ...
- C语言:随机数
在实际编程中,我们经常需要生成随机数,例如,贪吃蛇游戏中在随机的位置出现食物,扑克牌游戏中随机发牌.在C语言中,我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机 ...
- C++11 左值引用和右值引用与引用折叠和完美转发
1.左值与右值 最感性的认识. 当然,左值也是可以在右边的. 左值是可以被修改的,右值不能. 当然取地址也是. 生存周期一般左值会比右值的长,一般右值都计算时产生的无名临时对象,存在时间比较短. 下面 ...