当前位置: 首页 > Linux

一个强大的TCP-UDP工具---flynet

时间:2023-04-06 11:57:00 Linux

前言前段时间做项目,因为对tcp/udp的了解比较多,所以趁着打铁干脆自己写了个工具加强一下相关知识热的。另外,由于本人对Golang不是很在行,所以顺便多了解一下Golang。介绍flynet是一个用Golang语言编写的命令行工具。目前支持的功能包括:Http代理本地Socks5代理C/S方式Socks5代理,支持TCP/UDP内网穿透...项目目前分为client端和server端,除了http两端和本地socks5代理支持,其他功能需要两端配合使用。如何使用Windows和Linux用户可直接在Releases页面下载对应版本,其他平台可下载源码自行编译。Windows下命令行进入对应目录,.\win-client.exe...or.\win-server.exe...Linux下同理,./linux-server...or./linux-客户。..在下文中由server...或client...表示。尝试运行后,如果输出如下信息,则表示成功:Usage:flynet[options]-M,--modechoosewhichmodetorun.模式必须是['http','socks5','socks5-tcp','socks5-udp','forward']-L,--listen选择要监听或转发的端口-S,--server客户端连接到的服务器地址-V,--verbose输出详细信息-l,--log输出详细信息到日志文件-H,--help显示详细用法将错误报告和建议邮寄到或者github:https://github.com/asche910/flynetHttpproxyhttpproxy直接在本机上开启Http代理,client和server都支持,命令如下:server-Mhttp-L8848或者client-Mhttp-L8848表示本地8848端口开启了Http代理服务,如果没有信息输出,则表示启动成功。毕竟,Linux的一大理念是:没有消息就是好消息。当然,如果你还想看新闻,可以在后面加上-V或者--verbose参数,这样会输出很多新闻。或者可以加上-l或--log参数启动日志文件,运行目录下会生成一个flynet.log文件。本地Socks5代理在本机启用socks5代理也很简单。客户端和服务器都支持它。命令如下:server-Msocks5-L8848或者client-Msocks5-L8848,表示在本机8848端口开启。安装好socks5代理,然后Chrome就可以用SwitchyOmega很好的上网了。C/S模式下的socks5代理——TCP前面的那个是本地的socks5代理,这个是client和server相互配合的socks5代理,中间通过tcp协议传输。自由使用。使用方法如下:serverserver-Msocks5-tcp-L8888clientclient-Msocks5-tcp-L8848-Sasche.top:8888这里的例子假设我的服务器域名是asche.top,然后客户端在8848端口启用socks5代理,然后将流量以TCP的形式转发到服务器的8888端口,服务器请求对应的目标网站,然后将请求结果返回给客户。如果可能,对中间流量进行加密以确保传输的安全性。C/S模式下的Socks5proxy-UDP和上面的tcp非常相似,不同的是这里使用UDP包进行传输。毕竟UDP在某些方面有其自身的优势,一些重要的协议主要使用udp传输,比如DNS协议。下面介绍具体用法:serverserver-Msocks5-udp-L53clientclient-Msocks5-udp-L8848-Sasche.top:53这里也以域名asche.top和53端口为例,客户端在8848端口开启socks5代理,所有流量通过udp传输到服务器的53端口。服务器收到请求后进行解析,然后将所有请求发送到目标网站,然后将结果以udp返回给客户端。同样,中间传输也被加密。内网穿透内网穿透,即NAT穿透,是网络连接的术语。电脑在局域网时,外网和内网的电脑节点需要连接和通信,有时不支持内网穿透。也就是说,端口映射可以让外网的计算机找到内网的计算机,提高下载速度,简单来说就是让外网访问内网的机器。这个工具在这里做的是将内网的某个端口映射到服务器的某个端口,这样通过访问服务器的某个端口就可以间接访问到内网的端口。方法如下:Serverserver-Mforward-L88888080Clientserver-Mforward-L80-Sasche.top:8888同样假设服务器域名是asche.top,那么做的就是映射客户端的80端口到服务器的8080端口上,中间的数据传输是由服务器监听8888完成的。然后我们访问asche.top:8080,我们看到的应该是客户端80端口上的内容。Epilogue项目目前功能比较有限,未来应该会增加更多的功能。另外,地址位于flynet,希望大家多多支持!