ligolo-ng

nicocha30GPL-3.0活跃维护

基于 TUN 虚拟网卡的隧道与内网横向移动工具,让渗透测试人员在拿下入口后轻松穿透多层网络、访问内网主机。

An advanced, yet simple, tunneling/pivoting tool that uses a TUN interface.

v0.9.2发布于 2026-09-26 08:02 UTC5,176star +11 / 7 天504fork同步于 2026-11-10 23:37 UTC

怎么上手

由 README 提炼,执行前请确认
README 未给出安装命令,请参考官方文档 https://docs.ligolo.ng/ 的 Quickstart
硬件要求按 README 说明

README 未说明具体硬件或显存要求;relay/proxy 服务端需要能创建 tun 接口(通常需 root 或相应权限),agent 端无需管理员权限。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 TUN 接口做隧道与内网穿透的轻量工具,让渗透测试摆脱 SOCKS 代理

基于 TUN 虚拟网卡的隧道与内网横向移动工具,让渗透测试人员在拿下入口后轻松穿透多层网络、访问内网主机。

核心能力

  • 用 TUN 接口转发流量,无需 SOCKS 或 proxychains
  • 基于 Gvisor 用户态网络栈,把 SYN 翻译成远端 connect()
  • 支持 TCP、UDP 和 ICMP echo 请求
  • agent 端无需 root 权限,可在 agent 上监听和绑定 socket
  • 支持多隧道、反向与绑定连接,断网后自动恢复隧道

容易踩的坑

relay/proxy 服务端必须能创建 tun 接口,agent 端则不需要特权;agent 无特权时无法转发原始数据包,nmap SYN 扫描实际走 connect(),建议加 --unprivileged 或 -PE 避免误报;README 未给出具体安装命令,需按官方文档操作。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.9.2
  1. v0.9.2Ligolo-ng v0.9.2最新正式版2026-09-26 · 2026-09-26 08:02 UTC

    Changelog

    • e543732f4be6dc899096ae322ae620bf010bfbfc Merge pull request #196 from N1s0n/fix/agent-sni-hostname-parsing
    • c271794d6919caa03d758f5304e320042c27f240 fix(agent): parse host:port connect strings so TLS ServerName/SNI is set
  2. v0.9.1Ligolo-ng v0.9.12026-08-11 · 2026-08-11 09:32 UTC
    查看更新说明

    Changelog

    • bec34a6aed459e74e40caa0ae54d3808a7a7ee01 Merge pull request #193 from nicocha30/b-dosfixes
    • bcfd4cc9b4ceae52c32cf103e91573dce8dd99f1 fix dos issues reported by @BenTheCyberOne
  3. v0.9Ligolo-ng v0.92026-07-13 · 2026-07-13 17:27 UTC
    查看更新说明

    Ligolo-ng Changelog

    New Features & Enhancements

    • UDP Port Scanning: Implemented faster UDP port scanning by handling ICMP port unreachable messages.
    • Customization: Added configurable paths for the config file, history, and self-signed certificates.
    • TCP Connections: Implemented configurable in-flight TCP connections (#168).
    • Certificates: Implemented bind certificate fingerprint verification (#151).
    • Architecture: ARM64 binaries are now built by default (@desterhuizen).

    Bug Fixes

    • Memory Management: Fixed memory leaks across multiple core components (agent.go, relay.go, listeners.go, handlers.go, and handler.go) (@CarrotCultivator).
    • Networking: Fixed return traffic issues for the reverse UDP listener (@noderaven).
    • Code Quality: Resolved non-constant format string vet errors during the build process (@desterhuizen).

    Maintenance, Dependencies & CI/CD

    • Dependencies: Updated core dependencies and the ligolo-ng-web submodule.
    • CI Build: Updated the Go version used in the CI pipeline.

    Commits

    • 60fb207404d35a0674874220a5b93de1d2bdcfb0 update ligolo-ng-web
    • 3cffa3dd35245c4b2d13cbf572670cf337abbdca Merge pull request #190 from nicocha30/f-config
    • 437428a095aacfde8f74cca6a6c2e39e484703d4 remove retired readme
    • 1499252bae7d07a6f5cafefe5e3db141fcbfbb88 configurable paths for config, history and selfcerts
    • 21228ea713e948021eb09144de795157c804c94c Merge pull request #189 from nicocha30/f-icmpportunreachable
    • 9d6fb24f7de9aa78d202fc09e68e74815fac01d6 remove icmp handling in todo
    • 8e9e3c6e3dde5be1352b7d0fc3e56b65900197e7 feat: faster udp port scanning with icmp port unreachable handling
    • 5b4baa92a70e5a8c711a9ae2dc97ec52b1e6137b Merge pull request #188 from nicocha30/f-maxinflight
    • 11dc09d78032871ac6d3c36145816a4a56897bad implement configurable inflight tcp conns #168
    • 648c92ef839da547a29e5767163c55c5c8b76554 Merge pull request #187 from nicocha30/f-bindcertfingerprint
    • 8fe479b4f5b9aaaa3b744939c01c90f1858fea42 implement #151
    • cc147dff502a9eb4c83a92a1f1e23fd6fd6eca92 update go version in ci build
    • 0bfa7c4e62957ee19f6d1075e8455c500e804fe4 update deps
    • 26c383d044d29bf039caec1d224c5f3ee7ccfc81 Merge pull request #186 from desterhuizen/feat/arm64-builds
    • 3023430a28722b904f2d68242e495f9ac17f88c6 Merge pull request #185 from desterhuizen/fix/printf-vet-format-string
    • fb73cb6d2b3fb3b1b5f9d367597fefe169b95a52 Build arm64 binaries by default
    • 50664c708165b9da202f660a98f7a4162cc40c69 Fix non-constant format string vet errors
    • 1d5f466f6e50278b6382074a8943ba58968b88db Merge pull request #175 from CarrotCultivator/master
    • 34dfb7717d89cbaa5d1da9e0d09b7069264d1896 Merge pull request #183 from noderaven/fix/reverse-udp-tunnel-return-traffic
    • 860c838a126f309a015d7bfd62f2dc009b9dd732 fix reverse UDP listener return traffic
    • 9682c22ecc6392e47ebe4770834715262cca0928 Update relay.go for memleak
    • 601d1eca6d384f9080f434bac836a78c057f0144 Update handlers.go for memleak
    • 566614c472d0d2508a0844e3830fd4683217b170 Update listeners.go for memleak
    • 09da5eb3a65049c19900c4bd1fbd77da8181fbdf Update agent.go for memleak
    • 53d644c13a44726ea2b9df930d44381b2cac5122 Update handler.go for memleak
  4. v0.8.3Ligolo-ng v0.8.32026-02-15 · 2026-02-15 13:26 UTC
    查看更新说明

    Changelog

    • 913fe64e088d5db2185d392965bf4cd3dd1d9495 update websocket dependencies (close #156)
    • 3d60ed67d61a1bca0b1a669f7991ac114eb67410 update dependencies
    • 85562780d31ccd1479ce001aa09c17856a625a5c Merge pull request #172 from letmedr3am/dev
    • 47af91692353ab8d03623893f6fa26a01a83893b Enhanced Interface Management Commands
    • 01f6419dc0fc6e2d69fc82d72a9f9ba199827907 Improved Proxy Agent Recovery and Tunnel Management
    • 8eacc8aee5a904546618de0c18da2b264e519522 Enhanced Agent Reconnection and Recovery
    • 1f3c198169f1cbe206d13d846ce245b6eb1deb03 Merge pull request #167 from muzaffar1337/master
    • f094fbde67b72626aebe51a7e641a59399483d10 feat: add --api-laddr flag and fix TLS initialization bug
    • a4966ba1f87c0a257d93a10796187c467e63204b Merge pull request #165 from vipa0z/enhancement/improve-autoroute-ui
    • ad9f21ee297db6aac846eebd955c4330aab4a5d3 Merge pull request #166 from nicocha30/f-insecureconns
    • a170590d5b37795976602c510946fc1f9ddc1371 add file header
    • b00e0d9ec06d2972f359d5d7f844d1eff43d0255 feat: insecure websockets
    • 8624c3d31998a206839a9b5fc3c646d6ef114df6 autoroute enhancement:show existing routes for each interface when selecting which interface to attach a new route to.
  5. v0.8.2Ligolo-ng v0.8.22025-05-24 · 2025-05-24 19:04 UTC
    查看更新说明

    Changelog

    • 82bec5be5e2368dd85448525cd63cc8a90b9734e fix #146 (interface cleanup) - fix #148 (listeners api not working)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Ligolo-ng : Tunneling like a VPN

    Ligolo Logo

    An advanced, yet simple, tunneling tool that uses TUN interfaces.

    GPLv3 GitHub Sponsors GitHub Downloads (all assets, all releases)

    📑 Ligolo-ng Documentation (Setup/Quickstart)

    [!TIP] Ligolo-ng 0.8 added a lot of new features, including:

    • 🌐 API and a beautiful Web Interface thanks to L'ami du Raisin, allowing multiplayer!
    • ⚙️ Simple configuration file, to keep your tunneling/proxy settings
    • 🚦 Daemon mode, to run Ligolo-ng as a service
    • 🔗 Auto-bind, to automatically configure tunneling whenever a specific agent connects
    • 📶 Easy and automatic (autoroute) route and interface management on Windows, Linux, MacOS and BSD!
    • 💀 Agent kill, to remotely terminate an agent

    Please try it out!

    Ligolo Web

    Table of Contents

    Introduction

    Ligolo-ng is a simple, lightweight and fast tool that allows pentesters to establish tunnels from a reverse TCP/TLS connection using a tun interface (without the need of SOCKS).

    Features

    • Tun interface (No more SOCKS/Proxychains!)
    • Simple UI with agent selection and network information
    • Easy to use and setup
    • Automatic certificate configuration with Let's Encrypt
    • Performant (Multiplexing)
    • Does not require privileges on the agent
    • Socket listening/binding on the agent
    • Multiple platforms supported for the agent
    • Can handle multiple tunnels
    • Reverse/Bind Connection
    • Automatic tunnel/listeners recovery (in case of network issues)
    • Websocket support

    Demo

    Ligolo-ng-demo.webm

    How is this different from Ligolo/Chisel/Meterpreter... ?

    Instead of using a SOCKS proxy or TCP/UDP forwarders, Ligolo-ng creates a userland network stack using Gvisor.

    When running the relay/proxy server, a tun interface is used, packets sent to this interface are translated, and then transmitted to the agent remote network.

    As an example, for a TCP connection:

    • SYN are translated to connect() on remote
    • SYN-ACK is sent back if connect() succeed
    • RST is sent if ECONNRESET, ECONNABORTED or ECONNREFUSED syscall are returned after connect
    • Nothing is sent if timeout

    This allows running tools like nmap without the use of proxychains (simpler and faster).

    How to use - documentation - tutorial

    You will find the documentation for Ligolo-ng, as well as the steps to follow to get it up and running on the Ligolo-ng Documentation

    Does it require Administrator/root access ?

    On the agent side, no! Everything can be performed without administrative access.

    However, on your relay/proxy server, you need to be able to create a tun interface.

    Supported protocols/packets

    • TCP
    • UDP
    • ICMP (echo requests)

    Performance

    You can easily hit more than 100 Mbits/sec. Here is a test using iperf from a 200Mbits/s server to a 200Mbits/s connection.

    $ iperf3 -c 10.10.0.1 -p 24483
    Connecting to host 10.10.0.1, port 24483
    [  5] local 10.10.0.224 port 50654 connected to 10.10.0.1 port 24483
    [ ID] Interval           Transfer     Bitrate         Retr  Cwnd
    [  5]   0.00-1.00   sec  12.5 MBytes   105 Mbits/sec    0    164 KBytes       
    [  5]   1.00-2.00   sec  12.7 MBytes   107 Mbits/sec    0    263 KBytes       
    [  5]   2.00-3.00   sec  12.4 MBytes   104 Mbits/sec    0    263 KBytes       
    [  5]   3.00-4.00   sec  12.7 MBytes   106 Mbits/sec    0    263 KBytes       
    [  5]   4.00-5.00   sec  13.1 MBytes   110 Mbits/sec    2    134 KBytes       
    [  5]   5.00-6.00   sec  13.4 MBytes   113 Mbits/sec    0    147 KBytes       
    [  5]   6.00-7.00   sec  12.6 MBytes   105 Mbits/sec    0    158 KBytes       
    [  5]   7.00-8.00   sec  12.1 MBytes   101 Mbits/sec    0    173 KBytes       
    [  5]   8.00-9.00   sec  12.7 MBytes   106 Mbits/sec    0    182 KBytes       
    [  5]   9.00-10.00  sec  12.6 MBytes   106 Mbits/sec    0    188 KBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bitrate         Retr
    [  5]   0.00-10.00  sec   127 MBytes   106 Mbits/sec    2             sender
    [  5]   0.00-10.08  sec   125 MBytes   104 Mbits/sec                  receiver
    

    Caveats

    Because the agent is running without privileges, it's not possible to forward raw packets. When you perform a NMAP SYN-SCAN, a TCP connect() is performed on the agent.

    When using nmap, you should use --unprivileged or -PE to avoid false positives.

    Todo

    • Do not RST when receiving an ACK from an invalid TCP connection (nmap will report the host as up) ;
    • Add mTLS support.

    Credits

    • Nicolas Chatelain <nicolas -at- chatelain.me>
    • Jeremie Bedjai (Ligolo-ng-Web)