All Projects → flano-yuki → T2q2t

flano-yuki / T2q2t

Licence: mit
TCP/QUIC port forward tool

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to T2q2t

mocket
Reliable UDP server client for flaky networks
Stars: ✭ 21 (-19.23%)
Mutual labels:  tcp, quic
quic vs tcp
A Survey and Benchmark of QUIC
Stars: ✭ 41 (+57.69%)
Mutual labels:  tcp, quic
Reactor Netty
TCP/HTTP/UDP/QUIC client/server with Reactor over Netty
Stars: ✭ 1,743 (+6603.85%)
Mutual labels:  tcp, quic
Gsnova
Private proxy solution & network troubleshooting tool.
Stars: ✭ 509 (+1857.69%)
Mutual labels:  tcp, quic
Docker Nginx Http3
Alpine Linux image with Nginx 1.19.4 (mainline) with HTTP/3 (QUIC), TLSv1.3, 0-RTT, brotli, NJS support, and 10 MB size. All built on the bleeding edge for max performance. Built on the edge, for the edge.
Stars: ✭ 820 (+3053.85%)
Mutual labels:  quic
Bedrockframework
High performance, low level networking APIs for building custom servers and clients.
Stars: ✭ 697 (+2580.77%)
Mutual labels:  tcp
Chisel
A fast TCP/UDP tunnel over HTTP
Stars: ✭ 6,557 (+25119.23%)
Mutual labels:  tcp
Libnet
A portable framework for low-level network packet construction
Stars: ✭ 640 (+2361.54%)
Mutual labels:  tcp
Dpdk Ans
ANS(Accelerated Network Stack) on DPDK, DPDK native TCP/IP stack.
Stars: ✭ 925 (+3457.69%)
Mutual labels:  tcp
Simpleunitytcp
🖧 Simple Unity Project to show how TCP communication are builded in C# without multi-threading or Unity network (Unet) involved.
Stars: ✭ 22 (-15.38%)
Mutual labels:  tcp
Shootback
a reverse TCP tunnel let you access target behind NAT or firewall
Stars: ✭ 799 (+2973.08%)
Mutual labels:  tcp
Python Proxy
HTTP/HTTP2/HTTP3/Socks4/Socks5/Shadowsocks/ShadowsocksR/SSH/Redirect/Pf TCP/UDP asynchronous tunnel proxy implemented in Python 3 asyncio.
Stars: ✭ 692 (+2561.54%)
Mutual labels:  quic
Asyncrat C Sharp
Open-Source Remote Administration Tool For Windows C# (RAT)
Stars: ✭ 819 (+3050%)
Mutual labels:  tcp
Partisan
High-performance, high-scalability distributed computing with Erlang and Elixir.
Stars: ✭ 652 (+2407.69%)
Mutual labels:  tcp
Drainqueuecongestion
Congestion control algorithms evaluation on ns3
Stars: ✭ 23 (-11.54%)
Mutual labels:  quic
Elixir Socket
Socket wrapping for Elixir.
Stars: ✭ 642 (+2369.23%)
Mutual labels:  tcp
Inlets Operator
Add public LoadBalancers to your local Kubernetes clusters
Stars: ✭ 795 (+2957.69%)
Mutual labels:  tcp
Bigq
Messaging platform in C# for TCP and Websockets, with or without SSL
Stars: ✭ 18 (-30.77%)
Mutual labels:  tcp
Parallec
Fast Parallel Async HTTP/SSH/TCP/UDP/Ping Client Java Library. Aggregate 100,000 APIs & send anywhere in 20 lines of code. Ping/HTTP Calls 8000 servers in 12 seconds. (Akka) www.parallec.io
Stars: ✭ 777 (+2888.46%)
Mutual labels:  tcp
Zsocket
Zero-copy sockets for Linux in Golang
Stars: ✭ 776 (+2884.62%)
Mutual labels:  tcp

t2q2t

t2q2t is a port forward tool that converts between TCP and QUIC. (TCP/QUIC Proxy).

You can benefit from QUIC with any application protocol using t2q2t.

usecase overview are below:

t2q2t usecase

  • Client: listens on 0.0.0.0:2022 with TCP, and forwards to 192.168.0.1:22(server ip) with QUIC
  • Server: listen on 0.0.0.0:2022 with QUIC, and forward to 127.0.0.1:22 with TCP
# t2q2t <convert mode> <listen addr> <connect addr>

# on client side (TCP <-> QUIC)
$ ./t2q2t t2q 0.0.0.0:2022 192.168.0.1:2022

# on server side (QUIC <-> TCO)
$ ./t2q2t q2t 0.0.0.0:2022 127.0.0.1:22

You can use SSH with QUIC transport by running t2q2t on client and server.

build

$ git clone https://github.com/flano-yuki/t2q2t.git
$ cd ./t2q2t
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build t2q2t.go
$ go build ./t2q2t.go

You can also use the following Dockerfile to try it out in your Docker environmemnt.

# In the project root directory
$ docker build -t flano-yuki/t2q2t .
$ docker run -it -p 2022:2022 -p 2022:2022/udp --rm flano-yuki/t2q2t
tcp/quic port forward tool
  t2q2t <subcommand> <Listen Addr> <forward Addr>

  go run ./t2q2t.go t2q 0.0.0.0:2022 127.0.0.1:2022
  go run ./t2q2t.go q2t 0.0.0.0:2022 127.0.0.1:22

Usage:
  t2q2t [command]

Available Commands:
  help        Help about any command
  q2t         Listen by quic, and forward to tcp
  t2q         Listen by tcp, and forward to quic
  version     Print the version number of t2q2t

Flags:
  -h, --help      help for t2q2t
  -v, --verbose   verbose output

Use "t2q2t [command] --help" for more information about a command.

convert mode (sub command)

  • t2q: Listen by TCP, and connect to QUIC
  • q2t: Listen by QUIC, and connect to TCP

Note

This is a PoC.

t2q2t uses "t2q2t" as the ALPN identifier. It is not intended to communicate with other QUIC implementations.

TODO

  • Improve error handling
  • Improve connection management
  • (Output connection statistics)
  • Many other improvements
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].