Coder Social home page Coder Social logo

wireboy.socket.p2psocket's Introduction

Wireboy.Socket.P2PSocket

项目简介

这是一个开发中的4.0版本,本次开发将重新设计代码结构,使用.Net6框架,采用async...await进行开发,项目不一定能编译通过,仅供大家参考以及了解项目进度

开发计划

  1. 客户端与服务端代码重构,合并在同一sdk中,修改内部设计。
  2. 增加管道概念,多个外部网络连接允许使用同一管道进行通讯,避免多次打洞造成失败率提升的问题。
  3. 增账号功能,允许获取同一账号下的设备列表。
  4. 完善授权功能。
  5. 完善安全检测,增加蜜罐端口、ip限制、双端口辅助连接等。
  6. 增加客户端的wpf运行界面
  7. 增加打洞Nat检测、延迟校准等能力,提升tcp打洞成功率
  8. 增加quick以及kcp协议支持(客户端-客户端,客户端-服务端)
  9. 增加udp打洞的实现

wireboy.socket.p2psocket's People

Contributors

756616071 avatar bobowire avatar crazyning avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wireboy.socket.p2psocket's Issues

提交一个功能/项目的改进建议

在使用过程中有了更好的想法?请在这里告诉我们.
在这里描述你的想法,例如:在使用xxx的时候,我发现这样做能更舒服...

提供一个改进意见;
p2p直连可能是个坑,公司内的防火墙分分钟把你卡死,建议不做考虑。

建议完善服务端,双击运行客户端自动连接服务端反馈主机信息,确定连接端口,服务端登记并通过web后台显示在线详情。

P2P服务器端运行一段时间后挂掉

Bug的描述
P2P服务器端一直运行在服务器,Windows Server 2008,客户端不进行任何连接,一段时间后,P2P服务器端挂了,打印日志显示别人的IP有进行尝试连接,并且有“非法的TCP数据包”,猜测应该是别人在对网络上的主机进行端口扫描造成的吧,毕竟有很多人的电脑挂机就是为了扫描网络上的主机。

其它想说的
非常感谢楼主能编写并开源这个非常棒的项目: 👍 !另外群加了几次一直没加进去

支持mac os吗?

如果支持的话,建议你编译一个mac os 版本并发布,这样会方便新手用户或不想弄编译环境的用户。

部分机器无法P2P打洞互联的可能性

Bug的描述

有部分客户端之间无法P2P打洞互联,但是其中一个客户端和其他客户端是能P2P互联的,另外一个客户端和其他所有的也无法互联,但是程序启动显示是正常连上服务器的

操作步骤
抓包发现,无法互联的哪个客户端发包到其他端,都是被直接拒绝也就是RST ACK 包,即使端口复用成功的包发过来也是直接被拒绝,这样肯定是连不上了,我是在两台机器都是装了WIRESHARK里面看的到包的通讯,所以并不是路由器的防火墙拦截

你所期望的结果

  1. 打开 '...'
  2. 输入 '....'
  3. 点击 '....'
  4. 成功连接远程桌面

bug截图
这个都传不上图片,需要图片的加我QQ 993924551传

其它想说的
关于bug的其它想法,可以在这里说明

所以其实这个程序的功能并不只是远程控制是么?

我大概看了一下视频,就是将两个本地PC通过服务器进行流量中转,例如将PC机A的端口x与服务器S进行通信并S开放出y,相当于将A的x映射到S的y端口,然后B连接S的y相当于连接了A的x?如果是这样的话远程控制应该就只是其中的一个功能了
感觉像是个轻型VPN?给AB之间提供一个通信隧道

提问,安卓的手机怎么能远程?

在使用过程中有了更好的想法?请在这里告诉我们.
在这里描述你的想法,例如:在使用xxx的时候,我发现这样做能更舒服...
安卓的手机能远程么?

Release版本能不能弄个编译好的

不是熟悉windows平台的开发,没有.net开发环境,只想直接用,下载P2PSocket-V2.0.5之后,发现没有说明文档里面的那些文件,不是很方便啊,感谢

经过转发的TCP是否被限速,

Is your feature request related to a problem? Please describe.
转发的TCP流是否被限速,最好是不要限速
管道通讯是否指可以通过管道设置和取消指定TCP打洞对象和端口,是否可以通过管道获取本机CLIENTID,
服务器配置文件如果要求客户authcode登录是否用以下格式方便编辑,
[USER]
CLIENT1=PSW01
CLIENT2=PSW02
是否支持服务端 管道通讯添加登录客户端
Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

NTLM Authentication

请问使用该程序进行 http 服务内网穿透是否支持穿透 NTLM Authentication?

配置文件中设置的都是P2P打洞的模式,为啥在服务器日志里面还是看到 通知客户端建立中转模式隧道

1.client配置文件能不能用以下来表示P2P打洞,这样可用写配置文件的方式操作这个文件
3008=1@[4222]:30000
2.这个程序从原理来讲,起一个代理服务器的作用,按道理其实是可以访问打洞另一方的局域网的资源的比如打洞另外一方的局域网的一台设备IP的指定端口 比如 以下的表示
3008=1@[4222#192.168.0.1]:80
本地的3008的端口访问重定向到4222这个ID的机器的局域网的192.168.0.1 这个IP的 80端口上
3.client能否开个监听UDP端口,接受 端口添加 改变,删除 操作。这样比管道方便的多
4.我明明全部设置的p2p打洞模式,为啥在服务器日志里面还有看到通知客户端建立中转模式
5.能否关闭日志,节省点资源

Add readme.md in english

this lib is amazing, but the docs is in chinese and the translator isn't good, is possible add a Readme.md in english?

提交一个功能/项目的改进建议

经过实际测试,在2台电脑之间,五个线程连接互相发送数据是很稳定的,基本上总速度在1M以上,但是,如果一对多个电脑,1台电脑同时对多个电脑同时各建立5个连接,传输速度马上就降低到卡死

两个客户端互相打洞,仅仅是因为端口不同,连接成功的比例相差很多

[PortMapItem]
3000->1@[9139]:8080
3009->1@[9139]:30000
3002->1@[9139]:5900

这个是客户端A的端口设置,映射了客户端9139的3个端口到本地,在网络不变的情况下,访问本地3002端口来访问远程5900 端口 这个是VNC的端口 连接成功率100%,访问其他两个端口,就算是LOG里面提示了端口复用成功,p2p隧道连接成功,也是马上接着连接断开这一句输出,很难连上是不是在处理连接的地方有不一样呢,客户端9139的端口设置是0-0 全部开的,客户端A的日志如下,可以看到连接上马上就断开了,另外两个端口一个是APACHE的端口,一个也是HTTP服务器的端口

:46:26:4125 >> 正在建立P2P模式隧道 token:ac30be18-a10c-4c5a-8904-f7e22d67a53a client:9139 port:30000
23:46:26:4395 >> 命令:0x0201 正尝试建立P2P模式隧道 token:ac30be18-a10c-4c5a-8904-f7e22d67a53a
23:46:26:4675 >> 命令:0x0201 P2P模式隧道,已连接到服务器,等待下一步操作 token:ac30be18-a10c-4c5a-8904-f7e22d67a53a
23:46:26:5205 >> 命令:0x0201 P2P模式隧道,端口复用成功 port:56379 token:ac30be18-a10c-4c5a-8904-f7e22d67a53a
23:46:26:5205 >> 命令:0x0201 P2P模式隧道,连接成功 token:ac30be18-a10c-4c5a-8904-f7e22d67a53a
23:46:26:5475 >> 正在建立P2P模式隧道 token:134d0c7b-7c96-41bb-8ff6-7a6389f01cbc client:9139 port:30000
23:46:27:4436 >> Tcp连接已被断开 49.84.56.39:25872
23:46:27:4436 >> 命令:0x0201 正尝试建立P2P模式隧道 token:134d0c7b-7c96-41bb-8ff6-7a6389f01cbc
23:46:27:4766 >> 命令:0x0201 P2P模式隧道,已连接到服务器,等待下一步操作 token:134d0c7b-7c96-41bb-8ff6-7a6389f01cbc
23:46:27:4766 >> Tcp连接已被断开 127.0.0.1:56378
23:46:27:4766 >> 正在建立P2P模式隧道 token:5b9a57cf-404c-4e5e-be18-576674d92653 client:9139 port:30000
23:46:27:9756 >> 命令:0x0201 正尝试建立P2P模式隧道 token:5b9a57cf-404c-4e5e-be18-576674d92653
23:46:28:0036 >> 命令:0x0201 P2P模式隧道,已连接到服务器,等待下一步操作 token:5b9a57cf-404c-4e5e-be18-576674d92653
23:46:28:0256 >> 命令:0x0201 P2P模式隧道,端口复用成功 port:56381 token:134d0c7b-7c96-41bb-8ff6-7a6389f01cbc
23:46:28:0256 >> 命令:0x0201 P2P模式隧道,连接成功 token:134d0c7b-7c96-41bb-8ff6-7a6389f01cbc
23:46:28:0486 >> 命令:0x0201 P2P模式隧道,端口复用成功 port:56384 token:5b9a57cf-404c-4e5e-be18-576674d92653
23:46:28:0486 >> 命令:0x0201 P2P模式隧道,连接成功 token:5b9a57cf-404c-4e5e-be18-576674d92653
23:46:28:0496 >> Tcp连接已被断开 49.84.56.39:25873
23:46:28:0496 >> Tcp连接已被断开 127.0.0.1:56380
23:46:28:0696 >> Tcp连接已被断开 127.0.0.1:56382
23:46:28:0696 >> Tcp连接已被断开 49.84.56.39:25874
23:46:28:5816 >> 正在建立P2P模式隧道 token:47a30faa-ac45-4b4b-8bc2-f929be566a8d client:9139 port:30000
23:46:28:6096 >> 命令:0x0201 正尝试建立P2P模式隧道 token:47a30faa-ac45-4b4b-8bc2-f929be566a8d
23:46:28:6376 >> 命令:0x0201 P2P模式隧道,已连接到服务器,等待下一步操作 token:47a30faa-ac45-4b4b-8bc2-f929be566a8d
23:46:28:6946 >> 命令:0x0201 P2P模式隧道,端口复用成功 port:56386 token:47a30faa-ac45-4b4b-8bc2-f929be566a8d
23:46:28:6946 >> 命令:0x0201 P2P模式隧道,连接成功 token:47a30faa-ac45-4b4b-8bc2-f929be566a8d
23:46:28:7196 >> Tcp连接已被断开 49.84.56.39:25875
23:46:28:7196 >> Tcp连接已被断开 127.0.0.1:56385

家里和公司的电脑,上下载带宽都挺高的,但是实际远程桌面拷贝文件速度大约在5兆左右,有时甚至只有一兆不到

两地地理距离3KM。上下载带宽远高于现在这个速度,我先排除是带宽上限的问题。两处的电脑配置也比较高,最近两年的游戏本,也可以排除电脑性能的问题。我选择拷贝的是单一大文件,所以也可以排除是小文件读取速度问题,且都是固态,本地读写500M/S没问题。所以这个P2P的速度不是由本身带宽决定的吗。还想要知道拷贝文件这种方式测量p2p的带宽有没有问题,有没有更好的方式能够测量这两处的延迟以及带宽,两边都不是公网IP没法直接ping。能否开发一个小工具,能够让我们检测网络连接质量的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.