All Projects → longXboy → Lunnel

longXboy / Lunnel

Licence: apache-2.0
fast reverse-proxy

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Lunnel

Lanproxy
lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面、http代理、https代理、socks5代理...)。技术交流QQ群 678776401
Stars: ✭ 4,784 (+1532.76%)
Mutual labels:  proxy, reverse-proxy, tunnel, ngrok
Tcptunnel
将本地内网服务器映射到公网。
Stars: ✭ 72 (-75.43%)
Mutual labels:  proxy, reverse-proxy, tunnel, ngrok
Pyngrok
A Python wrapper for ngrok
Stars: ✭ 159 (-45.73%)
Mutual labels:  reverse-proxy, tunnel, ngrok
Otunnel
peer-to-peer tunnel tool
Stars: ✭ 224 (-23.55%)
Mutual labels:  proxy, reverse-proxy, tunnel
Fasttunnel
NAT 内网穿透 远程内网计算机 域名访问内网站点 反向代理内网服务 花生壳 端口转发 http代理 微信 小程序 expose a local server behind a NAT or firewall to the internet like ngrok and frp. NAT ssh proxy tunnel reverse-proxy
Stars: ✭ 248 (-15.36%)
Mutual labels:  proxy, reverse-proxy, tunnel
Awesome Network Stuff
Resources about network security, including: Proxy/GFW/ReverseProxy/Tunnel/VPN/Tor/I2P, and MiTM/PortKnocking/NetworkSniff/NetworkAnalysis/etc。More than 1700 open source tools for now. Post incoming.
Stars: ✭ 578 (+97.27%)
Mutual labels:  proxy, reverse-proxy, tunnel
Spike
📣 A fast reverse proxy written in PHP that helps to expose local services to the internet
Stars: ✭ 582 (+98.63%)
Mutual labels:  proxy, reverse-proxy, tunnel
Sidedoor
SSH connection daemon for Debian/Raspbian/Ubuntu/etc
Stars: ✭ 97 (-66.89%)
Mutual labels:  proxy, reverse-proxy, tunnel
Frp
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Stars: ✭ 51,746 (+17560.75%)
Mutual labels:  proxy, reverse-proxy, tunnel
Ahri
Ahri is an intranet sharing tool. Like VPN
Stars: ✭ 205 (-30.03%)
Mutual labels:  proxy, tunnel
Frpc Android
Android,安卓版frpc,一个快速反向代理,可帮助您将NAT或防火墙后面的本地服务器暴露给Internet。
Stars: ✭ 205 (-30.03%)
Mutual labels:  proxy, tunnel
Go Http Tunnel
Fast and secure tunnels over HTTP/2
Stars: ✭ 2,786 (+850.85%)
Mutual labels:  proxy, tunnel
Awesome Anti Gfw
突破网络审查和封锁的开源工具清单。
Stars: ✭ 198 (-32.42%)
Mutual labels:  proxy, tunnel
Janus
An API Gateway written in Go
Stars: ✭ 2,249 (+667.58%)
Mutual labels:  proxy, reverse-proxy
Fq Book
📖《这本书能让你连接互联网》详细阐述代理、隧道、VPN运作过程,并对GFW策略如:地址端口封锁、服务器缓存投毒、数字验证攻击、SSL连接阻断做相关的原理说明
Stars: ✭ 2,393 (+716.72%)
Mutual labels:  proxy, tunnel
Inlets Pro
Secure TCP and HTTP tunnels that work anywhere
Stars: ✭ 179 (-38.91%)
Mutual labels:  proxy, tunnel
Icmptunnel
Transparently tunnel your IP traffic through ICMP echo and reply packets.
Stars: ✭ 2,753 (+839.59%)
Mutual labels:  proxy, tunnel
wsp
HTTP tunnel over Websocket
Stars: ✭ 85 (-70.99%)
Mutual labels:  tunnel, reverse-proxy
Open Proxy
一键部署被墙网站反向代理; 免翻墙访问被禁网站
Stars: ✭ 274 (-6.48%)
Mutual labels:  proxy, reverse-proxy
FastTunnel
expose a local server to the internet. 高性能跨平台的内网穿透解决方案 远程内网计算机 域名访问内网站点 反向代理内网服务 端口转发 http代理
Stars: ✭ 815 (+178.16%)
Mutual labels:  tunnel, reverse-proxy

中文 | English

Lunnel

lunnel 是一款简单易用的内网NAT穿越、反向代理软件,支持 HTTP, HTTPS, UDP, TCP、Unix socket 协议。

Feature

  1. 隧道连接默认使用 TCP、KCP 自动切换模式,隧道传输协议可以任意替换。
  2. 支持 AES、TLS 加密,客户端与服务器端建立隧道只需一次密钥交换握手,建立连接速度更快。
  3. 自建隧道连接池,保证高并发下的访问通畅。
  4. 单个连接支持多路并发(类似http 2.0),更节省资源。

QuickStart

为 docker daemon 配置 HTTP API 访问

  1. 修改服务端配置:
server_domain: example.com
port: 8080
aes:
  secret_key: password
tls:
  cert: ./example.crt
  key: ./example.key
  1. 在公网启动服务端程序:sudo ./lunnelSer -c ./config.yml
  2. 修改客户端配置并保存:
server_addr: <your_server_ip>:8080
tunnels:
  docker:
    schema: http
    local: unix:///var/run/docker.sock
    host: docker.exmpale.com
aes:
  secret_key: password
enable_compress: true
  1. 在本地启动客户端程序:./lunnelCli -c ./config.yml
  2. 在浏览器中访问 docker.example.com 即可通过 http api 来控制 docker

为 2048 小程序反向代理

  1. 使用上一例中服务端的配置并启动服务端程序:sudo ./lunnelSer -c ./config.yml
  2. 使用 docker 启动 2048 程序,并运行在本地 32768 端口:docker run -d -p 32768:80 daocloud.io/sakeven/2048
  3. 修改客户端配置并保存:
server_addr: <your_server_ip>:8080
tunnels:
  2048:
    schema: http
    local: http://127.0.0.1:32768
    http_host_rewrite: www.2408.com
tls:
  trusted_cert: ./cacert-example.pem
server_name:  example.com
  1. 在本地启动客户端程序:./lunnelCli -c ./config.yml
  2. 通过观察客户端日志,找到外网公开访问地址后在浏览器中访问(因为本例没有为该代理隧道指定 host,所以由服务端分配远程公开访问地址)

Q&A

Q: 在示例配置中客户端使用的是 TLS 加密方式,需要 CA 签发的 SSL 证书,如果没有的话怎么办?
A: 可以使用 OpenSSL 自签名证书,请参考:基于 OpenSSL 自建 CA 和颁发 SSL 证书OpenSSL 生成 SSL 证书
或者您也可以在客户端以及服务端配置文件中指定 aes.secret_key 从而使用 aes 加密。

Q: 启动程序的时候为何报错 found character that cannot start any token
A: YAML 格式的配置文件每一行的开头不允许出现 tab 字符,请将所有的 tab 换成空格。

Config Reference

TODO

  • [x] 持久化客户端获得的远公开访问地址,不再因为暂时失联而重新分配公开访问地址
  • [x] 使用 HTTP API 实时修改客户端的代理隧道支持,不需要重启客户端
  • [ ] 优化隧道连接池算法
  • [ ] 底层传输协议支持 QUIC
  • [ ] 提供 Dashboard 管理界面,开放 HTTP 接口
  • [ ] 集成raft一致性协议,服务端可横向伸缩扩展
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].