Skip to content

A very liteweight tool to forward data over tcp, written in Go.

License

Notifications You must be signed in to change notification settings

slevinsc/forwarding

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

forwarding

A very liteweight tool to forward data over tcp, written in Go.

1 主要功能

本项目旨在实现下面几个功能,即

  • ** forwarding/forwarding_server.go 用于透明转发多个任意客户端之间的数据流**。运行后它会侦听一个TCP端口,多个客户端连上这个服务,这些客户端可以相互收发数据,数据对这个服务来说是无协议的。 你可以选择给部分客户端发数据,这种情况下需要在建立连接后与服务进行一次握手过程; 你也可以选择不进行握手而是连上之后直接收发数据,这种情况下,由于你没有握手,所以服务也不会知道你要发给哪一个客户端,所以会在全部客户端中进行广播,有点像一个群聊模型。 本服务的核心功能已经基本完成,可用于非苛刻条件下的生产环境

  • ** forwarding/forwarding_client.go 它负责转发任意两个服务之间的数据流**。本身不侦听TCP端口,而是作为客户端连上指定的TCP服务。它不关心协议,也没有握手过程。本服务的核心功能已经基本完成,可用于非苛刻条件下的生产环境

  • ** forwarding/forwarding_proxy.go** 这纯粹是无聊的玩意,感觉有了服务端转发和客户端转发,没有一个代理总是有点强迫。 这东西有其它现成的可以用,如 ssh 端口转发、sock5代理等等。 而且,咱这个只是个玩具,原样转发数据,没有别人的强大,不过可以偶尔用用。本服务的还未完成,暂时不要使用

forwarding_server 相当于多个"母"接口, forwarding_client 相当于两个"公"接口。 你可以把"母"接口放在公网,把局域网中运行的 forwarding_client 的其中一个"公"接口接到母接口上,另一个"公"接口连上局域网的某个TCP服务,这样就可以在其它网络访问这个局域网的那个TCP服务。注意,这一功能不能用于HTTP透明传输服务,因为forwarding_client只暴露两个"公"接口,而访问某个网站时通常需要很多的公接口。如果要支持HTTP类似的多连接,就需要让 forwarding_client 支持两个以上的"公"接口,也就是需要连接池,作者暂时没有计划去实现该功能。

具体还能干嘛? 你懂的,嘿嘿 ^=^

2 跨平台安全聊天应用 EChat

EChat 旨在实现常用平台的完全开源的聊天IM应用程序,如 Win PC/Mac OSX/Linux Ubuntu/iOS/Android/Terminal 。它的最高目标是安全性,表现在传输安全、存储安全、终端会话安全三个方面。

目前已经可以用于普通文本聊天,图片聊天、文件收发、音视频会议及文件分享功能等正在开发集成中。服务端使用 forwarding/forwarding_server.go 即可。 如果只是想使用,可以直接下载可执行程序,目前提供windows和mac两种系统的版本,绿色无污染。

可以直接下载二进制程序试玩一下哦:

Windows 最新版下载 https://github.com/dungeonsnd/forwarding/raw/master/EChat/dist/EChat-win.rar

Mac OSX 最新版下载 https://github.com/dungeonsnd/forwarding/raw/master/EChat/dist/EChat-osx.tar.xz

本来只是看看用Python及PyQT来开发一个几乎跨所有平台的简单的应用程序有多简洁, 所以原本就是一个无心之作(总共加起来估计花了三天时间吧),所以暂时还特别不完善。 但是作者和好友用起来之后发现有点意思,故亦希望有人来参与,使之完善起来。

如果发现BUG或建议,欢迎提交ISSUE 或者给作者发邮件。 欢迎吐槽,谢谢支持!

3 加星

喜欢的一定要给个 star 啊, 求星星, 求赞! 阁下的支持是作者们最大的动力!

4 author

author: jeffery

email: dungeonsnd at gmail dot com

About

A very liteweight tool to forward data over tcp, written in Go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 75.1%
  • Go 24.7%
  • Other 0.2%