端口转发轮子

2019-06-05 13:47:47 +08:00
 azh7138m

轮子地址

简陋的文档

之前会有端口转发的需求,iptables 没有 api 不太方便,于是重新包了一下 docker/go-connections ,就是现在这个轮子了。

提供几个简单的 api 来控制映射到的端口,写了个简单的 web 来展示 api 怎么使用。

3177 次点击
所在节点    分享创造
33 条回复
MeteorCat
2019-06-05 15:53:40 +08:00
哈哈哈,第一次见到开头就说低性能的 xxx,在看惯所有标题开头就是高性能的 xxx 的项目当中,感觉有点惊艳
yejinmo
2019-06-05 15:57:42 +08:00
haproxy ?
azh7138m
2019-06-05 15:59:00 +08:00
@MeteorCat 第一版是自己写的,并没有用 docker/go-connections 这个库,所以是低性能 :D
azh7138m
2019-06-05 16:07:50 +08:00
@yejinmo 也可以啊,但是它的 api 一次刷新全量的 config,不太好用,而且我还想转发 UDP 流量,HA 应该是做 TCP/HTTP LB 的,这个场景不适合
airfling
2019-06-05 16:10:59 +08:00
看你的标题,我差点以为你要被封
sc104501
2019-06-05 16:17:21 +08:00
之前用的 rinetd,和这个有区别吗?
azh7138m
2019-06-05 17:05:37 +08:00
@sc104501 实现的功能一样(我这个只有转发没有 ACL ),这个轮子只是提供了一个 HTTP API 来操作映射的规则
slwl123
2019-06-29 19:01:19 +08:00
希望能转发 UDP 支持 LZ
azh7138m
2019-06-29 22:14:19 +08:00
@slwl123 支持,默认就是转发 udp+tcp 的
solaro
2019-08-13 07:33:31 +08:00
支持端口段吗??
solaro
2019-08-13 07:34:46 +08:00
看起来并不支持端口段。。强烈关注楼主。
azh7138m
2019-08-13 10:38:47 +08:00
@solaro 本来只是我配合 nat 鸡用的,这个场景不存在端口段的情况,批量添加可以考虑批量调接口
solaro
2019-08-14 10:05:13 +08:00
@azh7138m 持续关注,大佬加功能吧,我用过 haproxy 不支持 udp,试过 socat 不支持端口段,最后方案 iptables。。只能用脚本,一脸苦
azh7138m
2019-08-16 09:13:53 +08:00
@solaro 现在支持端口段了
local 传 3000/3999 这种,代表转发这 1k 个端口,其他没变化
solaro
2019-08-18 10:27:03 +08:00
@azh7138m 哈哈哈,我试试。大佬就是大佬。膜拜
solaro
2019-08-18 16:01:00 +08:00
@azh7138m 大佬你好,我自行编译后体验了一下:通过 powershell 在 win 下以超管权限启动了,使用 postman 请求 api,但是 api 无任何返回,postman 一直在请求中
azh7138m
2019-08-18 16:09:04 +08:00
@solaro
https://i.loli.net/2019/08/18/SzOJ8Uw2MQabI9V.png

我这里没有问题
- 你提供 config 了吗
- 我有提供 release,可以不用自己编译
solaro
2019-08-18 16:17:09 +08:00
@azh7138m 哈哈可以了,不知道为什么第一次启动的时候,windows 防火墙放行之后,必须得到 powershell 里敲一下 enter,否则 无论怎么请求,都不显示任何信息,请求被拒,( tcping 的时候端口是开放的,但是就是不接收请求)
solaro
2019-08-18 16:54:05 +08:00
@azh7138m 请问:我如何 将 A 主机的端口段转发到 B 主机的端口段,config 怎么写呢?
例如:A 主机的 5000 到 10000 端口 全部转发到 B 的 5000 到 10000 端口,A 主机的 10000-20000 转发到 C 的 10000 到 20000 这样
solaro
2019-08-18 16:57:16 +08:00
@azh7138m 如果我 config 里这么写
```
{
"proxy": {
"3000": "127.0.0.1:10086",
"5000/10000": "192.168.2.205:5000/10000"
},
"APIPort": ":3001"
}
```
直接蹦掉了
```
2019/08/18 16:56:10 proxy 3000 to 127.0.0.1:10086
2019/08/18 16:56:10 lookup tcp/5000/10000: getaddrinfow: The specified class was not found.
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571106

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX