{"id":28042534,"url":"https://github.com/novemus/wormhole","last_synced_at":"2026-04-17T22:03:20.440Z","repository":{"id":154182376,"uuid":"605519604","full_name":"novemus/wormhole","owner":"novemus","description":"A tool for forwarding a remote TCP service to a local interface via UDP tunnel.","archived":false,"fork":false,"pushed_at":"2026-01-28T09:18:51.000Z","size":288,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-28T09:19:03.450Z","etag":null,"topics":["cpp-library","dpi-bypassing","forwarding","ios","linux","network-security","network-tool","obfuscation","tcp","tunneling","udp","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/novemus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-23T10:30:01.000Z","updated_at":"2026-01-28T09:16:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"8afdaa3f-0063-49e6-9c79-a6d558127fa0","html_url":"https://github.com/novemus/wormhole","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/novemus/wormhole","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fwormhole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fwormhole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fwormhole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fwormhole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/novemus","download_url":"https://codeload.github.com/novemus/wormhole/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/novemus%2Fwormhole/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28844761,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T10:53:21.605Z","status":"ssl_error","status_checked_at":"2026-01-28T10:53:20.789Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp-library","dpi-bypassing","forwarding","ios","linux","network-security","network-tool","obfuscation","tcp","tunneling","udp","windows"],"created_at":"2025-05-11T14:48:50.839Z","updated_at":"2026-04-17T22:03:20.425Z","avatar_url":"https://github.com/novemus.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\nThe [wormhole](https://github.com/novemus/wormhole) is the tool for forwarding TCP services via multiprotocol (UDP/TCP/SSL) safe tunnel. The original purpose of this utility is to extend the capabilities of the [plexus](https://github.com/novemus/plexus) tool and provide NAT/DPI-tolerance transport tunnel for private services. The UDP/TCP tunnels implemented with the [tubus](https://github.com/novemus/tubus) library and the SSL tunnel uses the OpenSSL. The `tubus` library provides the ability to obfuscate the transport channel using a pre-shared key. This can be useful to protect the tunnel from possible attacks. Note that the obscuration is not a full-fledged encryption. Applications should take care of the encryption of transmitted data.\n\n## Build\n\nYou can download [prebuild packages](https://github.com/novemus/wormhole/releases) for Debian and Windows platforms.\n\nProject depends on `boost` and `tubus` library. Clone repository and run the following commands:\n\n```console\n$ cd ~\n$ git clone https://github.com/novemus/wormhole.git\n$ cd ~/wormhole\n$ [CMAKE_PREFIX_PATH=...] cmake -B ./build -DCMAKE_BUILD_TYPE=Release [-DBOOST_ROOT=...] [-DBUILD_SHARED_LIBS=ON] [-DWORMHOLE_SKIP_TEST_RULES=OFF]\n$ cmake --build ./build --config Release --target all\n$ cmake --build ./build --target install\n```\n\n## Using\n\nLaunch following command with your arguments on the host that exports some service:\n```console\n$ export WORMHOLE_SECRET=\u003c64-bit-number\u003e\n$ wormhole --purpose=export --service=\u003cip:port\u003e --gateway=\u003cip:port\u003e --faraway=\u003cip:port\u003e\n```\n\nLaunch following command with your arguments on the host that imports alien service:\n```console\n$ export WORMHOLE_SECRET=\u003c64-bit-number\u003e\n$ wormhole --purpose=import --service=\u003cip:port\u003e --gateway=\u003cip:port\u003e --faraway=\u003cip:port\u003e\n```\n\nMain command line options:\n\n`--purpose` - how to use the application in relation to the specified service: **export|import**\n\n`--service` - endpoint to map the service being imported or endpoint of the service being exported: **ip:port**\n\n`--gateway` - endpoint of the transport tunnel on the local public interface: **ip:port**\n\n`--faraway` - endpoint of the transport tunnel on the remote public interface: **ip:port**\n\n`--quality` - tunnel protocol and connection schema: **udp:client|udp:server|udp:mutual|tcp:client|tcp:server|tcp:mutual|ssl:client|ssl:server|ssl:mutual|any:either**\n\nEnvironment:\n\n`WORMHOLE_SECRET` - pre-shared key to obscure the UDP/TCP tunnel, 64-bit number\n\n`WORMHOLE_CERT` - path to the host SSL certificate, PEM file\n\n`WORMHOLE_KEY` - path to the host SSL private key, PEM file\n\n`WORMHOLE_CA` - path to the CA certificate, PEM file\n\n## Library\n\nThe `wormhole` library API is described in the [wormhole.h](https://github.com/novemus/wormhole/blob/master/wormhole.h) header.\n\n## Bugs and improvements\n\nFeel free to [report](https://github.com/novemus/wormhole/issues) bugs and [suggest](https://github.com/novemus/wormhole/issues) improvements. \n\n## License\n\nThe `wormhole` is licensed under the Apache License 2.0, which means that you are free to get and use it for commercial and non-commercial purposes as long as you fulfill its conditions. See the LICENSE.txt file for more details.\n\n## Copyright\n\nCopyright © 2023 Novemus Band. All Rights Reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovemus%2Fwormhole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovemus%2Fwormhole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovemus%2Fwormhole/lists"}