rein

反向代理 IP 地址和端口
授权协议 MIT
开发语言 Google Go
所属分类 服务器软件、 代理服务器软件
软件类型 开源软件
地区 国产
投 递 者 淳于博
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

rein 主要用于进行反向代理 IP 地址和端口,功能类似于 nginx 的 upstream 模式和rinetd 的功能,由于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 模式图解:

mode-inps-inc

1. 简单快速部署

1.1 CentOS/RHEL/Ubuntu 平台

已经编译好的版本下载地址: https://note.youdao.com/ynoteshare1/index.html?id=b1e1ad270ba1b1af97ebdf3e2c8b7403&type=note

下载 rein-amd64-linux-x.x.x.zip

如果您的 Linux 具备公网下载功能,可以直接通过下面的命令进行下载使用:

cd ~
wget http://note.youdao.com/yws/public/resource/b1e1ad270ba1b1af97ebdf3e2c8b7403/xmlnote/0AD1EF713B9A428D86631C7282A1B04F/27232 -O rein.zip
# 需要安装 unzip 
unzip rein.zip
mv rein-*-linux rein
chmod +x rein
./rein -e > rein.json
# modify rein.json for you
./rein -c rein.json

1.2 Windows 平台

使用您的浏览器下载 https://note.youdao.com/ynoteshare1/index.html?id=b1e1ad270ba1b1af97ebdf3e2c8b7403&type=note

rein-amd64-windows-x.x.x.zip并解压它。

使用下面的命令生成并修改 rein.json 配置文件

# 解压后先改名
ren rein-1.0.3-amd64-win.exe rein.exe

# generate default conf 'rein.json'
# 使用 cmd 时
./rein.exe -e > rein.json

# 使用 powershell 时
./rein.exe -e | out-file -encoding ascii rein.json

生成的默认配置文件如下:

{
	"upstream": [
		{"source": "0.0.0.0:8150", "target": "127.0.0.1:9991"}
	],
	"fileshare": [
		{"port": "9991", "path": "."}
	]
}

根据您的需要进行修改配置文件后,运行:

./rein.exe -c rein.json

2. 配置文件说明

2.1 upstream 模式

upstream 模式主要由 source 和 target 构成,实现的功能就是将主机上的某个IP地址与端口,映射到其他的主机(本机)和端口上。在 upstream 模式下,支持多组由 source 和 target 构成的映射对。source 是监听 IP 和端口,target是需要转发到的 IP 和端口。

举例说明:

{
	"upstream": [
		{"source": "0.0.0.0:8150", "target": "127.0.0.1:9991"}
	]
}

2.2 file share 模式

此模式类似于ftp功能,能快速将本地资源进行网络(http方式)发布,它由portpath构成。port是要开放的端口,path是本地资源的路径。类似地,这个功能也支持多组。

举例说明:

{
	"fileshare": [
		{"port": "9991", "path": "/home/lz"}
	]
}
  • re 库的两种对象 Pattern :正则表达式对象 Match :匹配对象 常用内容 search 匹配字符串的第一个位置 In [1]: import re In [2]: s = "I am a simple string" In [3]: r = re.search("am", s) In [4]: r Out[4]: <re.Match object; span=(2, 4), m

  • rein 是一个类似 rinetd 的端口转发工具,也可以用于内外网端口转发等多种应用场景。 程序使用了 golang 开发,部署比 rinetd 更便携,下载开箱即用。 rein 的 github 地址:https://github.com/firstboot/rein 由于 rein 使用了 golang 开发,对系统环境依赖少,在一个平台上就能一次交叉编译出多个平台的可执行程序,项目主页已经

  • 一、什么是正则表达式? 正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 二、正则表达式的匹配规则 1.表示字符 ·:匹配任意除换行符'\n'外的字符,但是在DOTALL模式中也可以匹配换行符'\n

  • 解决方法: git reset --merge 注:取消合并 git rebase 注:将当前分支重新设置基线 git diff -w +冲突的文件 注:查看冲突点,修改冲突的文件,达到提交的状态。 git rebase --continue 注:让rebase继续处理 git add 注:追加修改后的文件 git rebase --continue 注:让rebase继续处理,查看是否有其他文件

  • 最近小虎在cpu上试跑了detection任务的程序没什么问题,但是在gpu上运行时发生了关于cuda的一些报错,发现解决问题的精华就一句话:"不可在DataLoader或DataSet内将任何数据放到CUDA上,而是等到程序运行出DataLoader之后(也就是到了train里的时候)将数据放到CUDA上。"下面给出问题解决的例子和代码。 问题CUDA error: initialization

  • 转自:http://www.python8.org/a/fenleiwenzhang/yuyanjichu/2009/0901/150.html 今天学习了Python中有关正则表达式的知识。关于正则表达式的语法,不作过多解释,网上有许多学习的资料。这里主要介绍Python中常用的正则表达式处理函数。   方法/属性 作用 match() 决定 RE 是否在字符串刚开始的位置匹配 search()

  • RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the ‘spawn’ start method 问题出现的背景:在一个使用 cuda 对模型训练进行加速的程序中,想要使用多进程对模型测试进行加速。 解决的办法:因为我是比较熟悉

  • Python re模块用法详解 在 Python 爬虫过程中,实现网页元素解析的方法有很多,正则解析只是其中之一,常见的还有 BeautifulSoup 和 lxml,它们都支持网页 HTML 元素的解析操作。本节重点讲解如何使用 re 正则解析模块实现网页信息的提取。 注意:在学习本节知识之前,您应该基本掌握了 Python re 模块的常用方法。 re模块常用方法 1) re.compile(

  • RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the ‘spawn’ start method fork和spawn是构建子进程的不同方式: fork spawn 分叉 产卵 继承 非继承 从头构建一个子进程,父进程的数据拷贝到

  • 在pytorch,dataloader里设置了num_workers > 1的时候, 会出现这个错误。 一般网上RuntimeError: Cannot re-initialize CUDA in forked subprocess解决方法之一_NLOS的博客-CSDN博客 解决方法,加上一行设定。 然而,我这里如果加上这行代码,会导致代码卡死在dataloader里面。 后面发现,代码里面设定了

  • 用uWSGI +Flask多进程多线程部署你的深度学习应用时,访问会报这样的错 "Cannot re-initialize CUDA in forked subprocess. To use CUDA with " RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessi

  • cannot re-initialize CUDA in forked subprocess.To use CUDA with multiprocessing,you must use the 'spawn' start method. 报错原因:         在使用sanic实现多线程操作的时候,报出这样的错误。 解决办法:         网上搜索资料发现的三种方法:         1、

  • 在程序最开始的地方加上: torch.multiprocessing.set_start_method(‘spawn’) 即可解决,如下第二行所示: if __name__=='__main__': torch.multiprocessing.set_start_method('spawn') args = config_parser().parse_args() data

 相关资料
  • 我对许多AJAX调用运行安全检查,以查看是否有记录在案的相同IP请求。 我使用了以下一组类函数来建立IP(可以通过负载平衡器来实现,因此采用了纵向方法)。 问题是,我的用户通过代理进行操作时遇到了问题。有人能说明原因吗?我已经使用基本免费代理的在线尝试和模拟,但它似乎没有得到可变IP或任何东西-所以我不知道为什么这会说这两个IP不匹配。

  • 我将Nginx配置为简单反向代理。 我只是使用基本设置 问题是,经过一段时间(几天)后,nginx背后的站点变得不可访问。Indead nginx尝试调用一个坏的ip(nginx后面的站点在我家盒子后面,我正在使用dyn dns,因为我的ip不固定)。这个dyn dns总是有效的(我可以直接调用我的站点),但由于不清楚的原因,Nginx被卡住了。。 如前所述,nginx只需在一段时间后给我504网

  • 反向地址匹配通过输入地址坐标来获取对应的规范化的地址描述。 // 反向匹配参数 var geoDecodeParam = new SuperMap.GeoDecodingParameter({ x: 116.3518541194, // 横坐标 y: 40.00097839595, // 纵坐标 fromIndex: 0, // 设置返回对象的起始索引值。 toIn

  • get_client_ip($type = 0, $adv = false) 功能 获取客户端IP地址 参数 $type: string 返回类型 0 返回IP地址 1 返回IPV4地址数字 $adv: boolean 是否进行高级模式获取(有可能被伪装) 返回 string 客户端IP地址

  • 我只想重定向的人从一个IP地址到一个域。 `apiversion:extensions/v1beta1种类:入口元数据:名称:web-入口注释:kubernetes.io/Ingress.allow-http:“false”nginx.Ingress.kubernetes.io/backend-protocol:“https”规范:tls: 主机: my.page.com秘密名称:tls-秘密规则

  • 本文向大家介绍静态IP地址和动态IP地址之间的区别,包括了静态IP地址和动态IP地址之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态IP地址和动态IP地址都用于标识网络或Internet上的计算机。静态IP地址由Internet服务提供商提供,并且在系统连接到网络之前一直保持固定。动态IP地址由DHCP提供,通常公司会获得一个静态IP地址,然后为其在组织网络内的计算机生成动态IP地址。 以

  • 本文向大家介绍IP地址和MAC地址之间的区别,包括了IP地址和MAC地址之间的区别的使用技巧和注意事项,需要的朋友参考一下 MAC地址和IP地址,都用于识别网络或Internet上的计算机。MAC地址由NIC卡的制造商提供,并提供计算机的物理地址。IP地址由Internet服务提供商提供,被称为网络上连接的计算机的逻辑地址。 以下是MAC地址和IP地址之间的一些重要区别。 序号 键 MAC地址 I

  • 什么是反向代理 反向代理(Reverse Proxy)方式是指用代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 举个例子,一个用户访问 http://www.example.com/readme,但是 www.example.com 上并不存在