All Projects → slince → Spike

slince / Spike

📣 A fast reverse proxy written in PHP that helps to expose local services to the internet

Projects that are alternatives of or similar to Spike

Tcptunnel
将本地内网服务器映射到公网。
Stars: ✭ 72 (-87.63%)
Mutual labels:  proxy, reverse-proxy, tunnel, nat
Sidedoor
SSH connection daemon for Debian/Raspbian/Ubuntu/etc
Stars: ✭ 97 (-83.33%)
Mutual labels:  proxy, reverse-proxy, tunnel, nat
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 (-57.39%)
Mutual labels:  proxy, reverse-proxy, tunnel, nat
Lanproxy
lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面、http代理、https代理、socks5代理...)。技术交流QQ群 678776401
Stars: ✭ 4,784 (+721.99%)
Mutual labels:  proxy, reverse-proxy, tunnel, nat
Frp
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Stars: ✭ 51,746 (+8791.07%)
Mutual labels:  proxy, reverse-proxy, tunnel, nat
Python Proxy
HTTP/HTTP2/HTTP3/Socks4/Socks5/Shadowsocks/ShadowsocksR/SSH/Redirect/Pf TCP/UDP asynchronous tunnel proxy implemented in Python 3 asyncio.
Stars: ✭ 692 (+18.9%)
Mutual labels:  proxy, tunnel, nat
Lunnel
fast reverse-proxy
Stars: ✭ 293 (-49.66%)
Mutual labels:  proxy, reverse-proxy, tunnel
Mr2
Mr.2 can help you expose local server to external network. Support both TCP/UDP, of course support HTTP. Zero-Configuration.
Stars: ✭ 1,102 (+89.35%)
Mutual labels:  proxy, tunnel, nat
Inlets Pro
Secure TCP and HTTP tunnels that work anywhere
Stars: ✭ 179 (-69.24%)
Mutual labels:  proxy, tunnel, nat
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 (-0.69%)
Mutual labels:  proxy, reverse-proxy, tunnel
Otunnel
peer-to-peer tunnel tool
Stars: ✭ 224 (-61.51%)
Mutual labels:  proxy, reverse-proxy, tunnel
FastTunnel
expose a local server to the internet. 高性能跨平台的内网穿透解决方案 远程内网计算机 域名访问内网站点 反向代理内网服务 端口转发 http代理
Stars: ✭ 815 (+40.03%)
Mutual labels:  tunnel, nat, reverse-proxy
Frpc Android
Android,安卓版frpc,一个快速反向代理,可帮助您将NAT或防火墙后面的本地服务器暴露给Internet。
Stars: ✭ 205 (-64.78%)
Mutual labels:  proxy, tunnel, nat
tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (-92.61%)
Mutual labels:  tunnel, nat, reverse-proxy
anytunnel
内网穿透,内网穿透代理服务器,商用内网穿透代理系统,内网穿透平台,内网穿透多用户会员系统。
Stars: ✭ 115 (-80.24%)
Mutual labels:  tunnel, nat, reverse-proxy
Annon.api
Configurable API gateway that acts as a reverse proxy with a plugin system.
Stars: ✭ 306 (-47.42%)
Mutual labels:  proxy, reverse-proxy
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 (+595.7%)
Mutual labels:  proxy, tunnel
Udpspeeder
A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction, possible for All Traffics(TCP/UDP/ICMP)
Stars: ✭ 3,699 (+535.57%)
Mutual labels:  proxy, tunnel
Telepresence
Local development against a remote Kubernetes or OpenShift cluster
Stars: ✭ 4,491 (+671.65%)
Mutual labels:  proxy, tunnel
Service Proxy
API gateway for REST and SOAP written in Java.
Stars: ✭ 355 (-39%)
Mutual labels:  proxy, reverse-proxy

Software License Build Status Coverage Status Latest Stable Version Scrutinizer

Spike is a fast reverse proxy built on top of ReactPHP that helps to expose your local services to the internet.

简体中文

Installation

Install via composer

composer global require slince/spike

Both the server and local machine need to install this.

Schematic diagram

Configure the server

A public machine that can be accessed on the internet is needed. Assuming already. There are two ways to start the server

Based on defaults

Use the following command to start the server

$ spiked --address=127.0.0.1:8088

The above command can create a basic service. If you want to customize more information, you should start the server based on the configuration file.

Based on the configuration file.

  • Creates a configuration file

Execute the following command to create it.

$ spiked init --dir=/home/conf --format=json

Yaml,Xml,Ini and Json(default) files are supported. Use the following command for help.

$ spiked init -h
  • Open the configuration file and modify the parameters.

  • Executes the following command to start the service.

 $ spiked --config=/home/conf/spiked.json

Configure the client.

You should first create a configuration file for the client.

  • Execute the following command to create it
$ spike init --dir=/home/conf --format=json

Use the following command for help about this command

$ spike init -h
  • Open the configuration file and modify the parameters.

  • Start the client service.

$ spike --config=/home/conf/spike.json

Tunnel

The definition of the tunnel only in the client, the server does not need to do any configuration, so as to achieve the most simplified configuration.

Now supports both http and tcp tunnels

Open the configuration file for the client and modify the parameters for "tunnel".

  • Add an HTTP tunnel
{
    "protocol": "http",
    "serverPort": 8086,
    "proxyHosts": {
        "www.foo.com": "127.0.0.1:80",
        "www.bar.com": "192.168.1.101:8080"
    }
}

Restarts the client service. Visit "http://www.foo.com:8086", the service will be forwarded to the local "127.0.0.1:80"; Note that resolve "www.foo.com" to the server IP.

  • Add a TCP tunnel

The services based on the tcp can use the tunnel, such as: mysql, redis, ssh and so on; The following is an example of proxy mysql service

{
    "protocol": "tcp",
    "serverPort": 8087,
    "host": "127.0.0.1:3306"
}

Execute the following command to visit the local mysql service.

$ mysql -h SERVER IP -P 8087

Client authentication

The authentication is not enabled on the server based on defaults.You should start the server based on configuration file, if you want to enable this.

  • Enable authentication

Open the configuration file for the server and modify parameters for "auth" and restart the service.

Currently only supports a simple user name password authentication, more authentication methods will be added later.

  • Modify the client identity information

Open the configuration file for the client and modify parameters for "auth". Keep the same parameters as the server.

Configure log

The default to open the console and file two forms of the log; the first will print the logs to the console; the second will write all the logs to the specified file; Default log level is "info"; You can adjust this in the configuration file.

List Commands

$ spike list
   _____   _____   _   _   _    _____
  /  ___/ |  _  \ | | | | / /  | ____|
  | |___  | |_| | | | | |/ /   | |__
  \___  \ |  ___/ | | | |\ \   |  __|
   ___| | | |     | | | | \ \  | |___
  /_____/ |_|     |_| |_|  \_\ |_____|
  
  Spike Client 0.0.1
  
  Usage:
    command [options] [arguments]
  
  Options:
    -h, --help            Display this help message
    -q, --quiet           Do not output any message
    -V, --version         Display this application version
        --ansi            Force ANSI output
        --no-ansi         Disable ANSI output
    -n, --no-interaction  Do not ask any interactive question
    -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
  
  Available commands:
    help        Displays help for a command
    init        Create a configuration file in the specified directory
    list        Lists commands
    list-proxy  Lists all supported proxy hosts by the client

Changelog

See CHANGELOG.md

License

The MIT license. See MIT

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