背景: 因为服务实在太多,在本地搭建一套费时费力还影响电脑性能,所以想直连测试环境,测试环境在内网,终端访问需要通过跳板机操作。
尝试过的解决方案: 1.开白名单:运维说出现了安全问题,所以关闭了访问,再加上人手不够,运维当下没时间想其它办法解决此问题。 2.ssh 端口转发:mysql、redis、其它第三方服务都能连了,结果 redis cluster 却使用不了了,用的是 ioredis 包,泪崩中。。。 3.ssr:经了解,ssr 只能代理 http 或者 socket 数据,mysql redis 这种 tcp 连接的不知道能不能代理 4.修改代码:感觉这种方法也不太好。
实在是想不出其它的方法能够解决这个问题,还望各位走过路过,留下一点小小的建议,感激不尽,如果有好建议的,麻烦写个简短的步骤,或者多加一两句描述,我好有方向去学习探索。
谢谢,弯腰,鞠躬!
1
alfchin 2019-04-24 23:07:15 +08:00 via Android
frp
|
2
celeron533 2019-04-24 23:11:03 +08:00 2
这个是 VPN 被设计发明出来的原始用途啊
|
3
corvofeng 2019-04-24 23:23:29 +08:00 via Android
我觉得有两种方式解决:
1 用 open VPN 类似的工具, 我理解中它的原理是虚拟一个网卡, 再修改路由表, 内网 IP 走 open vpn 的这个虚拟网卡 2. 建一个 ss 代理, 用 proxychains 这个工具来启动程序, 可以代理 tcp 连接,这个我确定可以 上面两种就是我日常能接触到的代理方式了, 关于第二种你可以用 openssh 建立一个 socks5 的端口, 然后再用 proxychains 启动程序。 要是有不对的也请大家指出哈 |
4
ofnh 2019-04-24 23:29:57 +08:00 via Android
nginx 可以转发 tcp
|
5
tomczhen 2019-04-24 23:44:53 +08:00
内网部署一个 zerotier 节点,配置路由表就行了,当然,前提是保证能够打洞成功。需要访问内网的机器也需要安装 zerotier,并且网段不冲突,连通之后就等同在一个内网。
其他二 /三层 vpn 也可以,原理一样,不过需要公网 ip。 |
6
unixeno 2019-04-24 23:45:40 +08:00 via Android
为啥不用 vpn 呢
|
7
Tsingchengliu 2019-04-25 00:55:10 +08:00 via Android
frp 可以做到吧
|
8
9hills 2019-04-25 01:08:28 +08:00 via iPhone
你说的 ssr 里面,socket 和 tcp 的区别是什么
|
9
ETiV 2019-04-25 01:32:45 +08:00
redis cluster,如果你不是特别要测试客户端库的 redis cluster 功能
要不要试试 https://github.com/eleme/corvus 这个 redis 中间件,它背后是 redis cluster,对外提供单点 redis 的服务 这样你 ssh 只暴露 1 个端口(单机 redis 协议)就可以了 * 会损失一些不被支持的 指令( keys 啊啥的) |
10
cyssxt 2019-04-25 08:15:08 +08:00 via iPhone
隧道?
|
11
mattx 2019-04-25 08:48:38 +08:00 via iPhone
本地跑 docker
|
12
doopsky 2019-05-14 22:46:52 +08:00
1、ssr 提供 http 和 socks5 这两种代理协议,不是 socket ;
2、http 协议在 OSI 模型中属于应用层(第七层),TCP (传输层控制协议)和 socks 协议 属于传输层(第四层); 3、https://github.com/cnlh/nps/ |
13
tomjamescn 2019-07-18 13:23:17 +08:00 via iPhone
用 ssh tunnel,也就是你说的 ssh 端口转发。redis cluster 用不了的原因是因为 redis cluster 底层协议第一步会定位 key 所在的 ip,你可以让运维把所有 ip 和端口都发给你,然后,都加入转发即可。
|