{"eid":"github-arkq","name":"wg-tcp-tunnel","domain":"github.com","resolved_by":"platform","topics":["egress"],"n_records":1,"best_vorder":3,"review":null,"aliases":["github.com","wg-tcp-tunnel","wg-tcp-tunnel (arkq)"],"records":[{"rid":"egress/wg-tcp-tunnel","card":{"rid":"egress/wg-tcp-tunnel","eid":"github-arkq","topic":"egress","slug":"wg-tcp-tunnel","provider":"wg-tcp-tunnel (arkq)","url":"https://github.com/arkq/wg-tcp-tunnel","domain":"github.com","category":"tool (wireguard transport)","tier":"free","verdict":"paid-only","vorder":3,"grp":"paid","confidence":"documented","binding":"none","identity_kind":"anonymous","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"cli","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-23T00:00:00.000Z","verified_basis":"live","checked_on":"2026-10-23","stale_on":"2026-11-22","n_evidence":4,"usd_month":null,"usd_per_tb_month":0.0,"summary":"no service and no account; source under MIT","duplicate_of":null,"n_unknown":2},"record":{"topic":"egress","slug":"wg-tcp-tunnel","provider":"wg-tcp-tunnel (arkq)","url":"https://github.com/arkq/wg-tcp-tunnel","category":"tool (wireguard transport)","tier":"free","free_tier":{"stated":"no service and no account; source under MIT","unit":"none","metered_on":"none","source_url":"https://github.com/arkq/wg-tcp-tunnel","read_on":"2026-10-23","notes":""},"per_object_cap":{"stated":"not applicable","bytes":null,"source_url":"https://github.com/arkq/wg-tcp-tunnel","notes":""},"retention":{"stated":"not applicable","days":null,"source_url":"https://github.com/arkq/wg-tcp-tunnel","notes":""},"egress":{"terms":"not applicable; the software states no volume; ingress: tcp","metered":false,"free_allowance":"none published","price_per_tb":null,"source_url":"https://github.com/arkq/wg-tcp-tunnel"},"interface":["cli"],"interface_detail":"wg-tcp-tunnel --src-tcp/--dst-udp on one end, --src-udp/--dst-tcp on the other","tooling":"cmake plus Boost.Asio; systemd and Termux runit units in tree","chaining":"composes with any TCP forwarder that hands over a raw stream, including an ngrok TCP endpoint, and with a plain public-IP host.","limits":[],"limits_note":"","binding":"none","binding_note":"the constraint is a public-IP server at the far end, outside the vocabulary; the build can also reach the far end through ngrok","identity_cost":{"kind":"anonymous","detail":"no account; a public-IP server and a client","country":"None"},"reliability_note":"source-built only; no release artefacts; the ngrok path inherits ngrok's connection accounting","confidence":"documented","confidence_note":"a measured run through the ngrok path would raise it, and would be the first measurement of a hosted tunnel carrying WireGuard","evidence":[{"url":"https://github.com/arkq/wg-tcp-tunnel","date":"2026-10-23","proved":"the purpose sentence, both invocations, and the Endpoint rewrite"},{"url":"https://github.com/arkq/wg-tcp-tunnel","date":"2026-10-23","proved":"\"-DENABLE_NGROK=ON ... --ngrok-api-key=KEY --ngrok-dst-tcp-endpoint=ENDPOINT\"; the tunnel can use an NGROK endpoint as its destination"},{"url":"https://github.com/arkq/wg-tcp-tunnel","date":"2026-10-23","proved":"tags v1.1.2 latest, no GitHub release objects, last commit 2026-08-28; 38 stars"},{"url":"https://github.com/arkq/wg-tcp-tunnel","date":"2026-10-23","proved":"build options -DENABLE_WEBSOCKET and -DENABLE_RUNIT (Termux service)"}],"verdict":"paid-only","verified_at":"2026-10-23T00:00:00.000Z","price_per_tb_month":"USD 0","notes":"The only wrapper that ships a mode for a hosted forwarder by name: with -DENABLE_NGROK=ON the client dials an ngrok TCP endpoint instead of the server's IP. That is the shortest documented path from a free hosted tunnel to a WireGuard datagram, and it costs one ngrok connection from the free monthly allowance. No release object exists, so a deployment builds from source with Boost and CMake.","extras":{"wg_path":"none","wg_detail":"\"This project is a simple UDP-over-TCP tunneling. The main purpose of it is to allow WireGuard to work over TCP\"; server '--src-tcp=0.0.0.0:51820 --dst-udp=127.0.0.1:51820', client '--src-udp=127.0.0.1:51822 --dst-tcp=<SERVER-IP>:51820' with Endpoint = 127.0.0.1:51822","ingress":"tcp","volume_tib_month":null,"volume_stated":"not applicable; the software states no volume","bytes_transit":"yes","transit_note":"the far end forwards into the local WireGuard listener","hosting_requirement":"a host on a public address running the server half, or an ngrok TCP endpoint in its place","last_release":"v1.1.2 tag, no release object, last commit 2026-08-28","stars":38}},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"},{"path":"$.price_per_tb_month","kind":"price-per-tb","num":0.0,"unit":"TB","per":"month","currency":"USD","usd":0.0,"fx_date":null,"parse":"ok"}],"unknown":[["$.per_object_cap.stated","not-applicable"],["$.retention.stated","not-applicable"]],"history":[],"drift":[]}]}