{"id":21425857,"url":"https://github.com/levitation-opensource/tcpoverudp2","last_synced_at":"2026-01-16T21:32:23.574Z","repository":{"id":90010603,"uuid":"283356588","full_name":"levitation-opensource/tcpoverudp2","owner":"levitation-opensource","description":"Reliably forwards TCP connections using UDP over two network interfaces in parallel.","archived":false,"fork":false,"pushed_at":"2026-01-15T11:34:56.000Z","size":107,"stargazers_count":6,"open_issues_count":8,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-01-15T16:27:19.813Z","etag":null,"topics":["reliability","reliable-networking","reliable-packets","reliable-protocol","reliable-udp","reliable-udp-library","tcp","tunnel","tunnel-client","tunnel-server","tunneling","tunneling-proxies","tunnels","udp"],"latest_commit_sha":null,"homepage":"http://www.simplify.ee/","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/levitation-opensource.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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},"funding":{"github":["levitation"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2020-07-29T00:18:20.000Z","updated_at":"2025-11-06T22:57:35.000Z","dependencies_parsed_at":"2023-05-30T22:15:26.171Z","dependency_job_id":null,"html_url":"https://github.com/levitation-opensource/tcpoverudp2","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/levitation-opensource/tcpoverudp2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levitation-opensource%2Ftcpoverudp2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levitation-opensource%2Ftcpoverudp2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levitation-opensource%2Ftcpoverudp2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levitation-opensource%2Ftcpoverudp2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/levitation-opensource","download_url":"https://codeload.github.com/levitation-opensource/tcpoverudp2/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levitation-opensource%2Ftcpoverudp2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28483220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["reliability","reliable-networking","reliable-packets","reliable-protocol","reliable-udp","reliable-udp-library","tcp","tunnel","tunnel-client","tunnel-server","tunneling","tunneling-proxies","tunnels","udp"],"created_at":"2024-11-22T21:38:25.024Z","updated_at":"2026-01-16T21:32:23.519Z","avatar_url":"https://github.com/levitation-opensource.png","language":"Perl","funding_links":["https://github.com/sponsors/levitation"],"categories":[],"sub_categories":[],"readme":"## tcpoverudp2 - TCP over dual UDP: Forward TCP connections using UDP over two network interfaces in parallel\r\n\r\nThe use case for this software is when you can use two network connections (for example, mobile or wifi), but both of them are unstable and have packet loss issues, and you still want to have a stable and fast internet.\r\n\r\nDo both of your available network links suffer from a high packet loss? Do you have a server account in public internet with perl scripting support? Then this tool can provide you a reliable fast TCP (for example, for web proxy + SSH) connectivity - by constantly duplicating all the packets over two interfaces and retrying slow transmissions on links of any quality.\r\n\r\nThe algorithm sends clones of all packets over two network interfaces concurrently in order to ensure that the forwarded connection works as reliably as possible regardless of intermittent packet loss in either of the interfaces - assuming that the packet loss on either of the interfaces usually happens at unrelated moments.\r\n\r\n### State \r\nReady to use. Maintained and in active use.\r\n\r\n### Usage\r\n\r\nClient script for Linux (Windows client example can be found in client.bat):\r\n\r\n\t./tcpoverudp2 --timeout=0.05 \\\r\n                     --tcp-listen-port=8128 8122 \\\r\n                     --udp-server-addr=your.public.server.com --udp-server-port=8120 \\\r\n                     --udp-send-local-addr1=192.168.1.20 --udp-send-local-addr2=192.168.2.15\r\n\r\nServer script (Windows client example can be found in server.bat):\r\n\r\n\t./tcpoverudp2 --udp-listen-port=8120 \\\r\n                    --tcp-forward-addr=public.web.proxy --tcp-forward-port=3128 \\\r\n                    --tcp-forward-addr=127.0.0.1 --tcp-forward-port=22\r\n\r\nFirewall configuration at server side (tcpoverudp2 needs to use \u003cins\u003etwo consecutive\u003c/ins\u003e UDP port numbers):\r\n\r\n    Open / forward the following __two__ UDP ports:\r\n\t1. udp-listen-port\r\n\t2. udp-listen-port + 1\r\n\r\n\r\n### Additional info:\r\n\r\nDeveloped by extending the tcpoverudp.pl *\"Forward TCP connections over UDP without root\" by Jan Kratochvil* by adding packet duplication over two network interfaces.\r\n\r\n**Summary:**        Forward TCP connections using UDP over two network interfaces in parallel (without root).\r\n\u003cbr\u003e**License:**    GNU General Public License ver 2\r\n\u003cbr\u003e**State:**      Ready to use. Maintained and in active use.\r\n\u003cbr\u003e**Source:**     https://github.com/levitation/tcpoverudp2\r\n\u003cbr\u003e**See also:**   Tcpoverudp     https://www.jankratochvil.net/project/tcpoverudp/\r\n\u003cbr\u003e**See also:**   Duat\t       http://code.google.com/p/duat/\r\n\u003cbr\u003e**Language:**   Perl\r\n\r\n\r\n[![Analytics](https://ga-beacon.appspot.com/UA-351728-28/tcpoverudp2/README.md?pixel)](https://github.com/igrigorik/ga-beacon)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevitation-opensource%2Ftcpoverudp2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flevitation-opensource%2Ftcpoverudp2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevitation-opensource%2Ftcpoverudp2/lists"}