写点什么

sockfwd 一个数据转发的小工具

作者:Robert Lu
  • 2021 年 11 月 20 日
  • 本文字数:505 字

    阅读完需:约 2 分钟

最近在看 containerd 的代码,上手试的时候才发现它监听的是 unix socket,没法从外部访问 containerd。而我要验证的是从远端能不能访问 containerd、管理 containerd 的容器,所以需要一个从远端访问 unix socket 的工具。


网上搜了一圈,没有现成的实现,就自己写了 sockfwd

用法

Usage:  sockfwd [flags]
Flags: -d, --destination string 目的地址,即要转发到的地址 -s, --source string 源地址,即接收请求的地址 -q, --quiet 静默模式
复制代码

例子

将本地的 containerd 实例暴露到网络上:

./sockfwd -s tcp://127.0.0.1:8090 -d unix:///var/run/containerd.sock


将本地的127.0.0.1:8080端口暴露到0.0.0.0:8090端口上:

./sockfwd -s tcp://127.0.0.1:8090 -d unix://127.0.0.1:8090


将本地的服务暴露到网络上,需要格外注意是否有安全隐患!

其他碎碎念

最近在写 golang,发现如果仅仅是处理数据面的话,golang 提供的 goroute 再加 channel 就能够很优雅地处理数据转发,比如这篇文章写的 sockfwd。


但是如果涉及管控面,比如复杂的状态管理,信息跨线程/goroute 同步,那么 channel 的抽象能力还是不够的,需要写很多额外代码。

后续计划

可以加上支持 tls 认证来更加安全地转发数据。

发布于: 4 小时前阅读数: 6
用户头像

Robert Lu

关注

还未添加个人签名 2015.04.06 加入

阿里云高级开发工程师

评论

发布
暂无评论
sockfwd 一个数据转发的小工具