slince/spike

一个快速的逆向代理,帮助您将本地服务暴露到互联网上

维护者

详细信息

github.com/slince/spike

源代码

问题

安装次数: 608

依赖项: 0

建议者: 0

安全: 0

星标: 664

关注者: 38

分支: 117

开放问题: 5

类型:项目

0.1.1 2018-08-22 08:41 UTC

This package is auto-updated.

Last update: 2024-08-25 23:01:30 UTC


README

Software License Build Status Coverage Status Latest Stable Version Scrutinizer

Spike 是一个基于 ReactPHP 的快速逆向代理,可以帮助您将本地服务暴露到互联网上。

简体中文

安装

通过 composer 安装

composer global require slince/spike

服务器和本地机器都需要安装此软件。

示意图

配置服务器

需要一台可以访问的公网机器。假设已经准备好了。启动服务器有两种方式

基于默认配置

使用以下命令启动服务器

$ spiked --address=127.0.0.1:8088

上述命令可以创建一个基本服务。如果您想自定义更多信息,应基于配置文件启动服务器。

基于配置文件。

  • 创建配置文件

执行以下命令来创建它。

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

支持 Yaml、Xml、Ini 和 Json(默认)文件。使用以下命令获取帮助。

$ spiked init -h
  • 打开配置文件并修改参数。

  • 执行以下命令来启动服务。

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

配置客户端

您首先需要为客户端创建一个配置文件。

  • 执行以下命令来创建它
$ spike init --dir=/home/conf --format=json

使用以下命令获取此命令的帮助

$ spike init -h
  • 打开配置文件并修改参数。

  • 启动客户端服务。

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

隧道

隧道的定义仅在客户端,服务器无需任何配置,以便实现最简化的配置。

现在支持 http 和 tcp 隧道

打开客户端配置文件并修改 "tunnel" 参数。

  • 添加 HTTP 隧道
{
    "protocol": "http",
    "serverPort": 8086,
    "proxyHosts": {
        "www.foo.com": "127.0.0.1:80",
        "www.bar.com": "192.168.1.101:8080"
    }
}

重启客户端服务。访问 "http://www.foo.com:8086",服务将被转发到本地的 "127.0.0.1:80";注意将 "www.foo.com" 解析到服务器 IP。

  • 添加 TCP 隧道

基于 tcp 的服务可以使用隧道,例如:mysql、redis、ssh 等;以下是一个代理 mysql 服务的示例

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

执行以下命令来访问本地的 mysql 服务。

$ mysql -h SERVER IP -P 8087

客户端认证

默认情况下,服务器不启用认证。如果您想启用此功能,应基于配置文件启动服务器。

  • 启用认证

打开服务器配置文件并修改 "auth" 参数,然后重启服务。

目前仅支持简单的用户名密码认证,以后将添加更多认证方法。

  • 修改客户端身份信息

打开客户端配置文件并修改 "auth" 参数。保持与服务器相同的参数。

配置日志

默认情况下打开控制台和文件两种日志形式;第一种将日志打印到控制台;第二种将所有日志写入指定的文件;默认日志级别为 "info";您可以在配置文件中调整此设置。

列出命令

$ 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.md

许可证

MIT 许可证。见 MIT