本版
查看: 12527|回复: 10

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

[复制链接]

Honor Moderator

楼主(1#)
发表于 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端口,不用输入任何参数。




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

2. 在本地启动client.py

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

  1. ('127.0.0.1', 9876)
    2022-03-21 23:22:47,275 - proactor_events.py[line:623] - DEBUG: Using proactor: IocpProactor
    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')
    DEBUG:asyncio:Using proactor: IocpProactor
    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)
    INFO:root:{"type": "CONNECTOR", "local_addr": "127.0.0.1", "local_port": "3389", "remote_addr": "0.0.0.0", "remote_port": "21354"}
    INFO:root:listening endpoint on : ('0.0.0.0', '21354')
    INFO:root:ping
    INFO:root:ping
    INFO:root:ping
    INFO:root:ping
    INFO:root:ping
    INFO:root:ping


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




其他:

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

  1. async def run():
    messages = [
    {
    'type': "CONNECTOR",
    'local_addr':'127.0.0.1',
    'local_port':'3389',
    'remote_addr':'0.0.0.0',
    'remote_port':'21354'
    },
    ]



有人找乐子,有人照镜子

[Lv.7]特大萝卜

沙发(2#)
发表于 2022-3-22 16:26:04 | 只看该作者
强,学习一下,谢谢分享

[Lv.8]超级萝卜

板凳(3#)
发表于 2022-3-22 20:56:40 | 只看该作者
frp (https://github.com/fatedier/frp/) 值得拥有。

Intern Moderator

地板(4#)
发表于 2022-3-22 21:46:59 | 只看该作者
这个不应该去吾爱发帖吗

[Lv.8]超级萝卜

躺平王者

5#
发表于 2022-3-22 22:00:16 | 只看该作者
坛子里人才济济,膜拜技术大佬!

Super Moderator

实习版主

6#
发表于 2022-3-23 14:24:19 | 只看该作者
这个可以有,希望能把开源进行到底!!

[Lv.7]特大萝卜

7#
发表于 2022-3-24 07:15:07 来自手机 | 只看该作者
学习一下

Super Moderator

8#
发表于 2022-3-25 19:44:40 | 只看该作者
显卡太棒了

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

GMT+8, 2026-10-18 21:09 , Processed in 0.07 second(s), 20 queries , Gzip On.

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