V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lwch
V2EX  ›  分享创造

内网穿透工具 natpass v0.6.0 版本发布,新增远程桌面功能

  •  
  •   lwch · 2021-11-05 10:30:40 +08:00 · 5181 次点击
    这是一个创建于 1115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址: https://github.com/lwch/natpass

    经过 1 个月的代码合并,远程桌面功能终于上线了,本次提供的远程桌面功能仅支持 windows 操作系统。使用了类似 VNC 的方式进行实现,无需开启 windows 远程桌面。下一步的目标是实现远程文件传输,这样就是一个完整的带内网穿透功能的 jump server 了。

    1. 较小的内存占用(约 20M 左右)
    2. 支持 tls 安全连接
    3. 支持多路异步 IO
    4. 支持虚拟链路层
    5. 支持链路和终端会话监控
    6. 支持 tcp 协议反向代理
    7. 支持 web shell
    8. 支持 web vnc

    dashboard 页面:

    dashboard

    linux 命令行效果图:

    linux_shell

    windows 命令行效果图:

    win_shell

    windows2008 远程桌面:

    win2008_vnc

    windows10 远程桌面:

    win10_vnc

    windows11 远程桌面:

    win11_vnc

    第 1 条附言  ·  2021-11-08 14:13:48 +08:00

    v0.6.1版本发布

    1. 修正vnc隧道的fps参数上限不起作用的问题
    2. vnc页面增加全屏功能
    33 条回复    2021-11-09 17:08:00 +08:00
    kknd22
        1
    kknd22  
       2021-11-05 10:35:00 +08:00
    nps 感觉不错
    楼主这个工具感觉是奔着堡垒机去的啊,点个赞!
    ThirdFlame
        2
    ThirdFlame  
       2021-11-05 10:38:14 +08:00
    hacker 专用

    这一般不敢运行客户端了。
    lwch
        3
    lwch  
    OP
       2021-11-05 10:39:46 +08:00
    @kknd22 带内网穿透功能的堡垒机,是不是很酷🆒🆒🆒
    lwch
        4
    lwch  
    OP
       2021-11-05 10:41:28 +08:00
    @ThirdFlame 创建连接是需要带上自定义的 secret 的,类似于 frp 的 stcp 但我实现了一部分应用层的功能,如 web shell 和 vnc
    ThirdFlame
        5
    ThirdFlame  
       2021-11-05 10:56:31 +08:00
    @lwch #4 我的意思是 一般 nps 你运行客户端 连接上了,也就能做个代理 做个端口映射,主机权限是没有的。

    你这个等于连主机权限都送人了。 除非是自己的服务端,否则是不敢去连的。

    你这个工具 hack 属性更强。
    dreamramon
        6
    dreamramon  
       2021-11-05 11:02:35 +08:00
    不错不错,给 lz star 了。
    lwch
        7
    lwch  
    OP
       2021-11-05 11:09:29 +08:00
    @ThirdFlame 可以考虑在远端的配置文件中提供禁用 shell 和 vnc 功能哈
    lwch
        8
    lwch  
    OP
       2021-11-05 11:09:53 +08:00
    @ThirdFlame 不过我自用的就无所谓了
    kknd22
        9
    kknd22  
       2021-11-05 13:28:22 +08:00
    @lwch 吊得飞起~,比 jumpserver 轻量多了
    xjngbla
        10
    xjngbla  
       2021-11-05 13:54:16 +08:00
    跟 win10 远程桌面有什么区别么
    lwch
        11
    lwch  
    OP
       2021-11-05 14:18:25 +08:00
    @xjngbla 内网穿透,我可以直接从办公室访问到家里的 win10 而且 win10 上不需要开远程桌面
    lwch
        12
    lwch  
    OP
       2021-11-05 14:20:25 +08:00
    @xjngbla 换句话说 jump server 更关心的是集中管理,而我这边可以做到跨网络的集中管理,我认为这样才真正符合 jump server 这个名词定义
    cweijan
        13
    cweijan  
       2021-11-05 14:55:13 +08:00
    远程桌面看起来很酷, 是什么原理
    yangheng4922
        14
    yangheng4922  
       2021-11-05 14:59:28 +08:00
    能支持 linux 的远程桌面么 或者 x11 窗口程序这种呢
    lwch
        15
    lwch  
    OP
       2021-11-05 15:00:18 +08:00
    @cweijan 跟 vnc 一样,定时截屏然后更新差量的区块
    anxn
        16
    anxn  
       2021-11-05 16:26:25 +08:00 via Android
    不错 契合我的需求了
    monkeyWie
        17
    monkeyWie  
       2021-11-05 17:05:18 +08:00
    牛 兄弟 牛!
    loveqianool
        18
    loveqianool  
       2021-11-05 17:47:46 +08:00
    有考虑增加批量执行功能吗?
    lwch
        19
    lwch  
    OP
       2021-11-05 17:49:34 +08:00
    @loveqianool 目前暂不考虑执行命令之类的功能,下一步的目标是提供远程文件传输
    cond0r
        20
    cond0r  
       2021-11-05 21:21:17 +08:00
    楼主是自己实现了 vnc server 的 go 库么,太强了
    lwch
        21
    lwch  
    OP
       2021-11-05 21:33:10 +08:00 via Android
    @cond0r 我封装了一套跟 vnc 类似的协议,其实核心功能还是截屏、算差量、压缩图片、传输
    cs8425
        22
    cs8425  
       2021-11-05 21:33:24 +08:00
    @cond0r #20
    下午有了翻下源码
    楼主自己实现了套截图+传送画面差分的东西
    概念类似 VNC 但应该不是走 VNC 协议就是
    lwch
        23
    lwch  
    OP
       2021-11-05 21:37:27 +08:00 via Android
    @cond0r 另外键鼠操作有 gorobot 库,只是那个库做跨平台编译比较麻烦,另外在无桌面的 linux 系统上使用这个库会报错,因此我做了条件编译,只有 windows 版本里面才会包含 gorobot 库
    cs8425
        24
    cs8425  
       2021-11-05 21:39:43 +08:00
    个人有点好奇
    楼主有没有测过"比对画面差异"这部份的效能?
    之前做过类似的东西(串流安卓装置画面)
    发现"比对画面差异"这个步骤快不起来
    "比对+传输"的延迟跟"压缩(转 png/jpg)+传输"的延迟几乎是一样的 Orz
    lwch
        25
    lwch  
    OP
       2021-11-05 22:07:16 +08:00 via Android   ❤️ 1
    @cs8425 具体没有做过,不过理论上更小的数据包能够提升更多的传输效率,我在实现差分计算的时候进行的是 RGBA8 字节比较,比较奇怪的是跟单字节比较性能提升了 4 倍而不是 8 倍。你这边的问题我想可能还是安卓设备的本身性能问题
    40EaE5uJO3Xt1VVa
        26
    40EaE5uJO3Xt1VVa  
       2021-11-05 23:29:52 +08:00
    我还以为是走偏门实现的 rdp 协议。结果还是截图。
    LowBi
        27
    LowBi  
       2021-11-06 08:11:01 +08:00 via Android
    看着不错啊
    kknd22
        28
    kknd22  
       2021-11-06 16:42:05 +08:00
    有个问题请教,什么情况下,可以两个无外网的客户端通过穿透服务器帮助实现端到端传输而不经穿透服务器中转?
    毕竟中转消耗穿透服务器太多资源
    lwch
        29
    lwch  
    OP
       2021-11-06 17:23:28 +08:00
    @kknd22 P2P 直连,但是这种方式对于某些 NAT 方式不起作用,至少我在办公室环境下试了很久都没有成功,所以就没实现这种模式。。。
    labulaka521
        30
    labulaka521  
       2021-11-07 21:22:10 +08:00
    为什么还用 github.com/go-bindata/go-bindata go1.16 已经可以内嵌文件了
    lwch
        31
    lwch  
    OP
       2021-11-08 09:08:00 +08:00 via Android
    @labulaka521 听说了,回头试一下哈
    cscjj1990
        32
    cscjj1990  
       2021-11-09 16:33:02 +08:00
    试过了确实不错,是否有考虑在 server 端开启 web 管理功能
    lwch
        33
    lwch  
    OP
       2021-11-09 17:08:00 +08:00
    @cscjj1990 在 server 端开放隧道功能是非常不安全的,未来也不会实现。server 端可能会增加白名单功能,允许指定来源 IP 进行连接,目前还有一些 BUG 需要修复,比如虚拟连接断开后统计数据被清空的问题等。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:50 · PVG 18:50 · LAX 02:50 · JFK 05:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.