All Projects → mwitkow → go-http-dialer

mwitkow / go-http-dialer

Licence: Apache-2.0 license
Go net.Dialer for HTTP(S) CONNECT Tunneling.

Programming Languages

go
31211 projects - #10 most used programming language
Protocol Buffer
295 projects
Makefile
30231 projects

Projects that are alternatives of or similar to go-http-dialer

tlstun
A socks tunnel client and server using websockets over http and tls
Stars: ✭ 36 (-34.55%)
Mutual labels:  tls, tunnel
Subnet
Simple, auditable & elegant VPN, built with TLS mutual authentication and TUN.
Stars: ✭ 1,040 (+1790.91%)
Mutual labels:  tls, tunnel
gost
GO Simple Tunnel - a simple tunnel written in golang
Stars: ✭ 8,395 (+15163.64%)
Mutual labels:  tls, tunnel
Ghostunnel
A simple SSL/TLS proxy with mutual authentication for securing non-TLS services
Stars: ✭ 1,296 (+2256.36%)
Mutual labels:  tls, tunnel
Trojan Go
Go实现的Trojan代理,支持多路复用/路由功能/CDN中转/Shadowsocks混淆插件,多平台,无依赖。A Trojan proxy written in Go. An unidentifiable mechanism that helps you bypass GFW. https://p4gefau1t.github.io/trojan-go/
Stars: ✭ 4,049 (+7261.82%)
Mutual labels:  tls, tunnel
Go Http Tunnel
Fast and secure tunnels over HTTP/2
Stars: ✭ 2,786 (+4965.45%)
Mutual labels:  tls, tunnel
iot security
《密码技术与物联网安全——mbedtls开发实战》示例代码
Stars: ✭ 111 (+101.82%)
Mutual labels:  tls
Artalk.Xmpp
This repository contains an easy-to-use and well-documented .NET (Framework and Core 3.1, .Net 5 and .Net 6) assembly for communicating with an XMPP server. It supports basic Instant Messaging and Presence funtionality as well as a variety of XMPP extensions.
Stars: ✭ 42 (-23.64%)
Mutual labels:  tls
MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 3,309 (+5916.36%)
Mutual labels:  tls
ap-kcp
用于穿透恶劣网络环境的高性能可靠传输协议,基于 KCP 优化和修改,使用 Rust 实现
Stars: ✭ 121 (+120%)
Mutual labels:  tunnel
XAsyncSockets
XAsyncSockets is an efficient Python/MicroPython library of managed asynchronous sockets.
Stars: ✭ 28 (-49.09%)
Mutual labels:  tls
tlssocks
secure socks5 over tls / tcp
Stars: ✭ 24 (-56.36%)
Mutual labels:  tls
p3y
A single binary reverse proxy written in go. It was developed for use in Kubernetes, to wrap services like Prometheus with simple BasicAuth and TLS encryption.
Stars: ✭ 15 (-72.73%)
Mutual labels:  tls
sslcli
Pretty awesome command-line client for public SSLLabs API
Stars: ✭ 17 (-69.09%)
Mutual labels:  tls
tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (-21.82%)
Mutual labels:  tunnel
edgevpn
⛵ The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens
Stars: ✭ 223 (+305.45%)
Mutual labels:  tunnel
cert-sync
Dynamic provision for istio ingressgateway certificates.
Stars: ✭ 22 (-60%)
Mutual labels:  tls
netxduo
Azure RTOS NetX Duo is an advanced, industrial-grade TCP/IP network stack designed specifically for deeply embedded real-time and IoT applications
Stars: ✭ 151 (+174.55%)
Mutual labels:  tls
SSL-TLS-ECDSA-timing-attack
Timing Attack on TLS' ECDSA signature
Stars: ✭ 41 (-25.45%)
Mutual labels:  tls
CycleTLS
Spoof TLS/JA3 fingerprints in GO and Javascript
Stars: ✭ 362 (+558.18%)
Mutual labels:  tls

HTTP CONNECT tunneling Go Dialer

Travis Build Go Report Card GoDoc Apache 2.0 License

A net.Dialer drop-in that establishes the TCP connection over an HTTP CONNECT Tunnel.

Why?!

Some enterprises have fairly restrictive networking environments. They typically operate HTTP forward proxies that require user authentication. These proxies usually allow HTTPS (TCP to :443) to pass through the proxy using the CONNECT method. The CONNECT method is basically a HTTP-negotiated "end-to-end" TCP stream... which is exactly what net.Conn is :)

But, really, why?

Because if you want to call gRPC services which are exposed publicly over :443 TLS over an HTTP proxy, you can't.

Also, this allows you to call any TCP service over HTTP CONNECT... if your proxy allows you to ¯\(ツ)/¯

Supported features

  • unencrypted connection to proxy (e.g. http://proxy.example.com:3128
  • TLS connection to proxy (customizeable) (e.g. https://proxy.example.com)
  • customizeable for Proxy-Authenticate, with challenge-response semantics
  • out of the box support for Basic auth
  • appropriate RemoteAddr remapping

Usage with gRPC

License

go-http-dialer is released under the Apache 2.0 license. See the LICENSE file for details.

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].