请选择 进入手机版 | 继续访问电脑版

萝卜头IT论坛

了解更多
搜索
查看: 1755|回复: 10
收起左侧

【开源】Python实现简单的TCP内网穿透|实现远程桌面

[复制链接]
发表于 2022-3-22 14:29:01 | 显示全部楼层 |阅读模式
以前用ngrok总觉得非常麻烦,又要编译又要安装证书。
而且经常莫名其妙断开。
后来自己用Python自己写了个支持TCP穿透的工具。

Feature:

  • 使用简单,双端只要有Python3.8以上就可以直接运行。
  • 轻量级,用了asyncio实现协程,资源使用极低,使用一个TCP连接的情况下客户端内存占用仅仅12.6M
  • 比较稳定,支持断线自动重连。服务器进程常驻。
  • 多用户,一个客户端支持多个TCP端口穿透。一个服务器端支持多个客户端,互不影响。
  • 可能有未知bug,小孩子不懂,写着玩的。


项目地址:
https://github.com/zgxkbtl/Alley

使用方法:

以反代出本地的3389端口为例。
3389是Windows远程桌面的服务端口。

由于NAT的限制,无法直接连接家庭PC的网络。
这里将本地3389代理到公网IP上的21354 。
通过访问21354可以连接本地PC的远程桌面。

1. 在公网服务器上启动 server.py,默认会监听9876端口,不用输入任何参数。

Screenshot 2022-03-21 231929.png


出现上图的字样代表启动成功。
如果出现其他字样代表可能除了一些问题,具体是什么我也不知道,欢迎反馈。

2. 在本地启动client.py

  1. python .\client.py --host '127.0.0.1'
复制代码
这里127.0.0.1应该填写公网服务器的IP地址。
成功后在client端应该会显示:

  1. ('127.0.0.1', 9876)
  2. 2022-03-21 23:22:47,275 - proactor_events.py[line:623] - DEBUG: Using proactor: IocpProactor
  3. 2022-03-21 23:22:47,278 - client.py[line:101] - INFO: {"type": "CONNECTOR", "local_addr": "127.0.0.1", "local_port": "3389", "remote_addr": "0.0.0.0", "remote_port": "21354"}
复制代码


而在server端应该会显示:

  1. INFO:root:Alley server listening on ('0.0.0.0', '9876')
  2. DEBUG:asyncio:Using proactor: IocpProactor
  3. INFO:root:Received '{"type": "CONNECTOR", "local_addr": "127.0.0.1", "local_port": "3389", "remote_addr": "0.0.0.0", "remote_port": "21354"}' from ('127.0.0.1', 7783)
  4. INFO:root:{"type": "CONNECTOR", "local_addr": "127.0.0.1", "local_port": "3389", "remote_addr": "0.0.0.0", "remote_port": "21354"}
  5. INFO:root:listening endpoint on : ('0.0.0.0', '21354')
  6. INFO:root:ping
  7. INFO:root:ping
  8. INFO:root:ping
  9. INFO:root:ping
  10. INFO:root:ping
  11. INFO:root:ping
复制代码


3. 接着可以测试连接是否正常了

Untitled.png


其他:

可以在client的代码中更改这一部分。
按照格式定义本地的端口和服务器的端口即可。

  1. async def run():
  2.     messages = [
  3.   {
  4.     'type': "CONNECTOR",
  5.     'local_addr':'127.0.0.1',
  6.     'local_port':'3389',
  7.     'remote_addr':'0.0.0.0',
  8.     'remote_port':'21354'
  9.   },
  10.     ]
复制代码



回复

使用道具 举报

发表于 2022-3-22 16:26:04 | 显示全部楼层
强,学习一下,谢谢分享
回复

使用道具 举报

发表于 2022-3-22 20:56:40 | 显示全部楼层
frp (https://github.com/fatedier/frp/) 值得拥有。
回复

使用道具 举报

发表于 2022-3-22 21:46:59 | 显示全部楼层
这个不应该去吾爱发帖吗
回复

使用道具 举报

发表于 2022-3-22 22:00:16 | 显示全部楼层
坛子里人才济济,膜拜技术大佬!
回复

使用道具 举报

发表于 2022-3-23 14:24:19 | 显示全部楼层
这个可以有,希望能把开源进行到底!!
回复

使用道具 举报

发表于 2022-3-24 07:15:07 来自手机 | 显示全部楼层
学习一下                 
回复

使用道具 举报

发表于 2022-3-25 19:44:40 | 显示全部楼层
显卡太棒了                     
回复

使用道具 举报

联系我们(Contact)|手机版|萝卜头IT论坛 ( 苏ICP备15050961号-1 )

GMT+8, 2022-12-4 07:10 , Processed in 0.139950 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表