Giter Club home page Giter Club logo

webconsole's Introduction

欢迎大家踊跃报名,利用业余时间来拓展此项目,增加更多的功能服务大家。

常规部署

1、下载 go1.8.1.linux-amd64.tar.gz
2、tar zxvf go1.8.1.linux-amd64.tar.gz -C /usr/local
3、echo 'export PATH="/usr/local/go/bin:$PATH"' >> /etc/profile
4、source /etc/profile
5、cd /opt && git clone --recurse-submodules https://github.com/shibingli/webconsole.git && cd webconsole && git submodule update --init --recursive
6、cd /opt/webconsole/src/apibox.club/apibox
7、GOPATH=/opt/webconsole go install
8、设置开机自动启动
  cp /opt/webconsole/bin/webconsole  /etc/init.d/   && chmod   755 /etc/init.d/webconsole 
  chkconfig   --add  webconsole  &&  chkconfig webconsole   on  && service webconsole   start
  

下载 Golang

容器部署

1、下载并安装 Docker
2、cd /opt && git clone --recurse-submodules https://github.com/shibingli/webconsole.git && cd webconsole && git submodule update --init --recursive
3、cd /opt/webconsole/src/apibox.club/apibox
4、GOPATH=/opt/webconsole go install
5、cd /opt/webconsole
6、docker build -t webconsole:latest .
7、docker run -d -p 8080:8080 --restart=always --name webconsole webconsole:latest

安装 Docker

更新日志

2018.12.28

更新:

    1、更新核心js库
    2、合并 pczchen 提交的分支,支持 Docker 容器访问
    3、常规修复

2017.07.31

更新:

    1、更新 xTerm.js

2017.07.20

修证:

    1、修证UTF-8字符集展示BUG;
    2、修证大文件展示BUG。

    本次BUG由 @AEGQ 修证和贡献代码

2017.04.19

更新:
    1、删除 build.sh
    2、添加部署说明

2017.04.15

修证:
    1、修证一些页面的展示BUG。

更新:
    1、更新xTerm库。
    2、添加外部引用例子。

2017.04.11

更新:
    1、添加对 JSONP 的支持,解决 JQuery 跨域请求的需求。
    2、配置文件新增 JSONP 的支持。

感谢 @朱小四(weichat:juechengke) 提出需求。

2017.03.27

修证:
    1、修证粘贴字串的BUG。

更新:
    1、更新 xTerm 库。

2017.03.14

修证:

    1、修证 wss 协议适配 BUG

更新:
    1、删除根目录 golang 程序包。如果运行脚本,请自行下载对应 golang 包(go1.8.linux-amd64.tar.gz)放置根目录。

2017.02.27

修证:

    1、修改部分BUG
    2、更新 Golang 到 1.8 版本
    3、修证 Golang 1.8 版本中 url.Parse 解析地址 BUG
    4、替换 term.js 为 xterm.js
    5、更新对CJK(中文、日文、韩文)字符集和IME的支持
    6、更友好地支持 Linux 下主流程序,如:VIM、Tmux等

2016.05.25

修证:

    1、修证 log 目录不存在而引起的无法启动程序的 BUG
    2、Dockerfile 无法 Build 项目的 BUG 

2016.05.21

修证:

    1、SSH Session 退出异常 BUG

2016.05.17

新增:
    添加跨域白名单的支持。(conf/conf.json     cors_white_list:"127.0.0.1,www.xxx.com");

感谢 @玩蝴蝶的法师 提出的功能建议。

2016.05.13

修证:
    1、修证 Ubuntu 下无法使用 VIM 的 BUG;

替换:
    2、更换 Gorilla 的 Websocket 库。

感谢 @玩蝴蝶的法师 提出的建议和BUG。

2016.03.05

新增:
    1、增加 Dockerfile

2016.03.04 发布 v1.1

新增:
    1、增加命令行的启动、停止、状态查看功能. 如: ./apibox start/stop/status

2016.03.03

修证:
    1、修改独立模式时登陆JS验证问题.

新增:
    1、增加后台运行模式(conf/conf.json.  daemon:true/false);
    2、增加程序运行时的PID文件(log/apibox.pid);

大概的数据流向:

    浏览器--》WebSocket--》SSH--》Linux OS

代码地址

Git@OSC

Github

演示地址

程序包结构:

├── bin
│   └── apibox
├── conf
│   ├── ssl_cert.crt (默认不存在)
│   ├── ssl_cert.key (默认不存在)
│   ├── conf.json
│   └── mime.types
├── log
├── pkg
├── static
│   ├── images
│   └── scripts
└── template


运行环境要求:

1、Linux Kernel 3.x/x86_64 及更高版本
2、建议 Linux 发行版 CentOS 7.0+ / Ubuntu 14.04+
3、启用支持 SSL/TLS 模式访问时,需要生成对应的 SSL 证书文件且放置到 "conf" 文件夹下并配置 "conf.json" 文件
4、客户端要求使用 IE9、Chrome 40、Firefox 38、Safari 9 或更高版本的浏览器访问
5、服务器端需要对防火墙开启对应的外部访问端口。具体需要开放的端口请参考 "conf" 文件夹下的 "conf.json" 文件中的端口部分的配置
6、本程序只能对 Unix/Linux 类的操作系统,且支持 SSH 协议的 OS 进行远程操作
7、基于Go1.6+,原生支持 http2 


一、部署
1、将程序解压或下载至任一目录,运行 "build.sh" 编译可执行文件
2、然后运行 "bin" 文件夹下的 "apibox" 文件即可。如:"./apibox start/stop"
3、配置文件在 "conf" 文件夹下,核心配置文件为 "conf.json",部署的时候需要添加跨域白名单来支持其他机器的访问
4、后台运行可以配置 "conf" 文件夹下的 "conf.json" 文件,将 "daemon" 项配置为 "true" 
5、运行时日志文件存放在 "log" 文件夹下,以当天时期命名
6、也可以配置程序以 Nginx 的 fcgi 模式运行,以 Nginx 做为访问入口

二、使用 1、程序部署完成后,直接通过浏览器访问即可。如: http(s)://ip:port。

2、外部系统引用步骤:

1)、以 GET 或 POST 的方式,提交 "vm_addr" 参数至 "http(s)://ip:port/console/chksshdaddr" ,成功后可获取到加密后的 "en_addr" 信息。注:vm_addr 格式为: "ip:port" ,若不携带端口,默认端口为 "22" 。

    获取到的结果为 JSON 格式(注:以下数据为测试数据):

        成功:
            {
                "ok": true,
                "msg": "",
                "data": { "en_addr": "0b-nDgcazQKTmUw4oBLfxott", "sshd_addr": "192.168.220.173:22" }
            }

        失败:
            { "ok": false, "msg": "Unable to resolve host address.", "data": null }

2)、成功获取到加密的 en_addr 信息后,以 GET 或 POST 方式访问  "http(s)://ip:port/console/login/'en_addr'" 即可。注: "en_addr" 是通过第 1)步操作获取的数据。

JQuery Demo:

第一种方式(需要二次登陆,同一个域的情况,同样可以使用跨域的方式访问):

var protocol = (location.protocol === "https:") ? "https://" : "http://";
var addr = protocol + location.hostname + ((location.port) ? (":" + location.port) : "")

$.post(addr+"/console/chksshdaddr?rnd=" + Math.random(), {
    "vm_addr": "192.168.220.177:22"
}, function(data) {
    var json = data;
    if (typeof(data) != "object") {
        json = $.parseJSON(data);
    }
    if (json.ok) {
        location.href = addr + json.data.sshd_addr;
    }
});

第二种方式(直接输入远端的主机地址、用户名、密码,然后直接登陆。跨域的情况):

<button class="btn btn-primary" onclick="testDemo();">Test</button>

<script type="text/javascript">
    //注意,如果远程主机的访问地址是以IP形式出现的,可以忽略此步骤,直接调用 login 方法。具体登陆地址端口请根据实际情况更改.
    var testDemo = function() {
        $.ajax({
            url: "http://a.com:8081/console/chksshdaddr?rnd=" + Math.random(),
            method: "POST",
            data: {
                "vm_addr": "172.16.18.223:22",
            },
            dataType: "jsonp",
            cache: false,
        }).done(function(data) {
            var json = data;
            if (typeof(data) != "object") {
                json = $.parseJSON(data);
            }
            if (json.ok) {
                console.log("en_addr:", json.data.sshd_addr);
                login(json.data.sshd_addr, "shibingli", "cloud123456");
            } else {
                alert("登陆失败,请确认您的主机信息。");
            }
        }).fail(function() {
            alert("未知失败,请联系管理员。");
        });
    };


    //注意,如果远程主机的访问地址是以域名或主机形式出现的,可以执行上面步骤后,再调用本方法。具体登陆地址端口请根据实际情况更改.
    var login = function(enVMAddr, username, password) {
        $.ajax({
            url: "http://a.com:8081/console/login?rnd=" + Math.random(),
            method: "POST",
            data: {
                "vm_addr": enVMAddr,
                "user_name": username,
                "user_pwd": password
            },
            dataType: "jsonp",
            cache: false,
        }).done(function(data) {
            var json = data;
            if (typeof(data) != "object") {
                json = $.parseJSON(data);
            }
            if (json.ok) {
                location.href = "http://a.com:8081" + json.data;
            } else {
                alert("登陆失败,请确认您的登陆信息。");
            }
        }).fail(function() {
            alert("未知失败,请联系管理员。");
        });
    };
</script>

webconsole's People

Contributors

aegq avatar jim3ma avatar os4uinfo avatar pczchen avatar shibingli avatar taomaree avatar xsxnet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webconsole's Issues

命令中文问题

通过xterm输入中文,例如cat xxx.log|grep "用户未登陆",服务器返回一堆感觉是ls /的东西

{"data":"g"}
{"data":"rep "\u0007\u0007\u0007\u0008\u0008\u0008\u0008\u0008\u0008\u001b[K\r(arg: 1) \u001b[K"}
{"data":"\u0008\u0008\u00087) \r\u001b]0;root@fe38d2d32cb4: /xxx/package\u0007root@fe38d2d32cb4:/xxx/package# \u0007"}

然后控制台都是一些目录名

登陆后,报错

failed: Error during WebSocket handshake: Unexpected response code: 403

How to manage multiple machines through webconsole?

Hi @shibingli , I want to access all the machines in the LAN through webconsole, how to manage multiple machines through webconsole? Thanks.
All the machines are in a local area network, only one machine can communicate with the outside network. I want to provide the function of Web terminal through this machine. Can this function be implemented through webconsole? Thanks.

自行编译中的问题,还有一些建议

  • install.sh 脚本有问题,主要是go install的时候有问题,我把src下面的依赖全删了,然后重新go get ./... 后成功
  • 既然已经用go1.6了,那建议用godep来管理依赖包,1.6已经支持了
  • 横向的导航栏,其实可以改成纵向的,一般显示器都是宽屏的

都是一些建议,很不错的项目,我愿意参与,不过前端技术太渣。

按照步骤install的时候报错了

clone的是最新的master代码;
remote: Compressing objects: 100% (43/43), done.
remote: Total 19017 (delta 24), reused 35 (delta 18), pack-reused 18955
Receiving objects: 100% (19017/19017), 7.83 MiB | 1.56 MiB/s, done.
Resolving deltas: 100% (13553/13553), done.
Submodule path 'src/golang.org/x/tools': checked out '8b178a93c1f5b5c8f4e36cd6bd64e0d5bf0ee180'
[root@centos7 webconsole]# ls
conf Dockerfile LICENSE README.md src static template
[root@centos7 webconsole]# cd /opt/webconsole/src/apibox.club/apibox
[root@centos7 apibox]# GOPATH=/opt/webconsole go install

apibox.club/website

../website/console.go:35: undefined: ssh.InsecureIgnoreHostKey

docker部署一直访问失败

你好,请问一下我用的是v2版本的那个branch,通过docker build的镜像去docker run之后启动是成功的,登录页面也能访问,但是在页面上调用http://10.0.0.151:32771/console/chksshdaddr 接口的时候一直都是404,点击登录按钮调用的http://10.0.0.151:32771/console/login 接口也一直都是404,不是很清楚原因在哪里。
然后通过docker pull了两个版本的镜像分别是shibingli/webconsole:latest和shibingli/webconsole:v2,v2的镜像也是同样的问题,而latest则是发现登录成功了,但是http://10.0.0.151:32772/console/sshws/iTigtW5fH3eaftrV03UfI7wMRH5e-Ve-QGY=?cols=145&rows=9 这个websocket报了403,所以没法操作。conf.json下的cors_white_list也已经添加并重启了容器 仍然是403

点击“退出”按钮后,ssh连接没有断开

@shibingli

问题描述

点击右上角的“退出”按钮后,页面可以正常调整到login页面,但目标主机上的ssh连接并没有断开。
多次点击左上角的“刷新”按钮,后台会出现多个ssh连接,之前的都没有断开。

环境信息

浏览器:chrome,跟浏览器没关系。
OS:Centos7.3

现象

点击退出后,页面退出到login了,但在目标机器通过who命令查看,仍然在登陆状态。
1

[root@localhost ~]# who
root     :0           2018-06-30 18:14 (:0)
root     pts/0        2018-06-30 18:14 (:0)
root     pts/1        2018-06-30 18:57 (192.168.81.128)
root     pts/2        2018-06-30 18:58 (192.168.81.128)

如果多次点击刷新按钮,会产生多个连接。

[root@localhost ~]# netstat -anp | grep :22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1049/sshd           
tcp        0      0 192.168.81.129:22       192.168.81.128:36604    ESTABLISHED 48775/sshd: root@no 
tcp        0      0 192.168.81.129:22       192.168.81.128:36616    ESTABLISHED 48826/sshd: root@no 
tcp        0      0 192.168.81.129:22       192.168.81.128:36598    ESTABLISHED 48763/sshd: root@no 
tcp6       0      0 :::22                   :::*                    LISTEN      1049/sshd          

请问下,logout时未断开连接,是漏掉的逻辑?还是有意为之?(不主动断开连接,而是等待操作系统TMOUT生效,或ssh超时生效?)

建议

希望能给出编译的方法, 没有研究过 Go 的编译方法.
要不很多人都得去研究 Go 的编译才能使用你的东东哦.

登录进去黑屏是什么问题呢?

我使用的是默认配置,远端是centos7的docker容器.进去之后, w 能看到client端已经ssh登录进来了.但是页面是一片黑,什么也不显示.是不是有某些默认配置项需要修改呢?
能在readme里说明下配置参数的意义吗?

目前的登录感觉不够安全,及一些需求

  1. 目前每次请求的加密串都是通过IP,用户名与密码加密的,这样就会有一个问题,每次登录后只要有这个加密串不管在哪台物理机都可以随意登录,session是30分钟,没有试过30分过后这个key还可以登录否,希望多一些安全控制。
    2.能否支持ssh_key 登录,目前只支持用户名密码登录,我这边是有自己修改通过ssh_key登录,希望大神能提供配置2种方式选择。
    3.日志记录不会根据日期分割,必须重启API才可以。
    4.审计功能,用户执行的命令记录。现在是有修改对websocket的输入进行记录,但是感觉比较low,希望webconsole能提供一个配置审计的功能。

运行所有部署环节,并且没有报错,但是并没有bin目录生成

root@zxin10-desktop:/opt/gopath/src/github.com/webconsole_demo/webconsole# ./build.sh

==> Golang is already installed.

==> Please run the /opt/gopath/src/github.com/webconsole_demo/webconsole/bin/apibox.

root@zxin10-desktop:/opt/gopath/src/github.com/webconsole_demo/webconsole# ll
total 76
drwxr-xr-x 9 root root 4096 4月 20 01:11 ./
drwxr-xr-x 3 root root 4096 4月 20 01:01 ../
-rwxr-xr-x 1 root root 689 4月 20 01:08 build.sh*
drwxr-xr-x 2 root root 4096 4月 20 01:08 conf/
-rw-r--r-- 1 root root 179 4月 20 01:08 Dockerfile
drwxr-xr-x 9 root root 4096 4月 20 01:08 .git/
-rw-r--r-- 1 root root 261 4月 20 01:08 .gitignore
-rw-r--r-- 1 root root 1065 4月 20 01:08 .gitmodules
-rw-r--r-- 1 root root 10721 4月 20 01:08 LICENSE
drwxr-xr-x 3 root root 4096 4月 20 01:11 pkg/
-rw-r--r-- 1 root root 8599 4月 20 01:08 README.md
drwxr-xr-x 5 root root 4096 4月 20 01:08 src/
drwxr-xr-x 4 root root 4096 4月 20 01:08 static/
drwxr-xr-x 3 root root 4096 4月 20 01:08 template/
drwxr-xr-x 2 root root 4096 4月 20 01:08 .vscode/

右边滚动条无法拖动

版本最新版,只能通过鼠标滚轮,鼠标不能拖动呢!chrome版本 WIN 62.0.3202.94(正式版本)(64 位) 版本应该还算较新吧。。。

还是请教几个问题,谢谢

1、下载 go1.8.1.linux-amd64.tar.gz
2、tar zxvf go1.8.1.linux-amd64.tar.gz -C /usr/local
3、echo 'export PATH="/usr/local/go/bin:$PATH"' >> /etc/profile
4、source /etc/profile
这部分是安装go 我现在环境是已经安装了go的,而且也是开发了几个go实例 所以go环境没有问题
5、cd /opt && git clone --recurse-submodules https://github.com/shibingli/webconsole.git && cd webconsole && git submodule update --init --recursive
6、cd /opt/webconsole/src/apibox.club/apibox
7、GOPATH=/opt/webconsole go install
这部分只不过是获取代码 和 更新子模块
后面GOPATH我也是按照我自己的代码路径来的 为啥什么都没有返回 也没有报错 也没有bin目录产生?
还有一个问题 请问程序在开发环境怎么搭建运行?

谢谢 麻烦了 ~
@shibingli

docker build error

Step 4 : RUN cd /go/src/apibox.club/apibox/ && go install -v
---> Running in 3c46820b1ce1
../utils/dbutils.go:5:2: no buildable Go source files in /go/src/github.com/go-sql-driver/mysql
../website/console.go:14:2: no buildable Go source files in /go/src/github.com/gorilla/websocket
../website/console.go:15:2: cannot find package "golang.org/x/crypto/ssh" in any of:
/usr/local/go/src/golang.org/x/crypto/ssh (from $GOROOT)
/go/src/golang.org/x/crypto/ssh (from $GOPATH)
../utils/utils.go:22:2: cannot find package "golang.org/x/text/encoding" in any of:
/usr/local/go/src/golang.org/x/text/encoding (from $GOROOT)
/go/src/golang.org/x/text/encoding (from $GOPATH)
../utils/utils.go:23:2: cannot find package "golang.org/x/text/encoding/japanese" in any of:
/usr/local/go/src/golang.org/x/text/encoding/japanese (from $GOROOT)
/go/src/golang.org/x/text/encoding/japanese (from $GOPATH)
../utils/utils.go:24:2: cannot find package "golang.org/x/text/encoding/korean" in any of:
/usr/local/go/src/golang.org/x/text/encoding/korean (from $GOROOT)
/go/src/golang.org/x/text/encoding/korean (from $GOPATH)
../utils/utils.go:25:2: cannot find package "golang.org/x/text/encoding/simplifiedchinese" in any of:
/usr/local/go/src/golang.org/x/text/encoding/simplifiedchinese (from $GOROOT)
/go/src/golang.org/x/text/encoding/simplifiedchinese (from $GOPATH)
../utils/utils.go:26:2: cannot find package "golang.org/x/text/encoding/traditionalchinese" in any of:
/usr/local/go/src/golang.org/x/text/encoding/traditionalchinese (from $GOROOT)
/go/src/golang.org/x/text/encoding/traditionalchinese (from $GOPATH)
../utils/utils.go:27:2: cannot find package "golang.org/x/text/encoding/unicode" in any of:
/usr/local/go/src/golang.org/x/text/encoding/unicode (from $GOROOT)
/go/src/golang.org/x/text/encoding/unicode (from $GOPATH)
../utils/utils.go:28:2: cannot find package "golang.org/x/text/transform" in any of:
/usr/local/go/src/golang.org/x/text/transform (from $GOROOT)
/go/src/golang.org/x/text/transform (from $GOPATH)

Uncaught SyntaxError: Unexpected token :

jsonp跨域提交post请求失败,服务端返回的json对象如下:
{
"ok": true,
"msg": "",
"data": "/console/main/wkpe2VrDtSBXQwrWp8Es8px0ROjhjJh379Wb91WqE6wx"
}
该json对象不能被js处理从而报错“Uncaught SyntaxError: Unexpected token :”,
请问我该怎么处理此类问题?

服务器响应403

控制台输入账号密码后,在终端的页面js报错:WebSocket connection to 'ws://192.168.91.128:8080/console/sshws/g7CrqekJ-Q-Jljlgc67hu0zRldZdwi4R2estCxqTKw==?cols=125&rows=64' failed: Error during WebSocket handshake: Unexpected response code: 403,请问这是什么原因照成的呢?

webconsole没有生成

一,centos 7.2
1,yum -y install go
2, go版本
[root@devel apibox]# go version
go version go1.8.3 linux/amd64
二,生成webconsole步骤如下
1,ssh.InsecureIgnoreHostKey报错
[root@devel apibox]# GOPATH=/root/webconsole go install

apibox.club/website

../website/console.go:35: undefined: ssh.InsecureIgnoreHostKey

2,根据网上方案解决,
删除crypto
[root@devel apibox]# rm -rf /root/webconsole/src/golang.org/x/crypto
You have new mail in /var/spool/mail/root
[root@devel apibox]# cd /root/webconsole/src/golang.org/x/
重新下载crypto
[root@devel x]# git clone https://github.com/golang/crypto.git
Cloning into 'crypto'...
remote: Counting objects: 3984, done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 3984 (delta 9), reused 23 (delta 6), pack-reused 3919
Receiving objects: 100% (3984/3984), 2.95 MiB | 296.00 KiB/s, done.
Resolving deltas: 100% (2507/2507), done.
[root@devel x]# cd -
/root/webconsole/src/apibox.club/apibox
重新安装
[root@devel apibox]# GOPATH=/root/webconsole go install
结果没有
[root@devel apibox]# ll /root/webconsole/conf/
total 8
-rw-r--r-- 1 root root 889 Dec 11 09:25 conf.json
-rw-r--r-- 1 root root 3956 Dec 11 09:25 mime.types
不知道问题出在哪,盼回复,谢谢!

通过nginx转发问题

请教下,我想通过nginx进行连接,webconsole把fcgi设置为true,正常启动,那么nginx中应该怎么设置呢,现在我是可以看到webconsole的初始化界面,但是当我连接其他服务器时,会报500错误,并且日志中没有详细信息,界面报:WebSocket connection to 'ws://192.168.0.11:8081/console/sshws/TMs0RynNtQloNKDBksDp8krEE3-Gj6S3nq4a1tYsxMlK6MrDiRs7inkYUQa4Mw==?cols=149&rows=15' failed: Error during WebSocket handshake: Unexpected response code: 500
nginx中的设置为:
`
server {
listen 8081;
server_name localhost;

location / {
fastcgi_pass 192.168.0.11:8080;
include fastcgi_params;

}

}
`

ws 403 ? ( 浏览器chome 50+)

Request URL:ws://XXXXXXXXXXXXXX/console/sshws/4AnM1ZFyEabNmWfmiklO6XqevNea7m7Zsv419uNtt3Ee?cols=125&rows=12
Request Method:GET
Status Code:403 Forbidden

输入密码后无法连接

[ERROR] 2016/05/22 17:52:58 console.go 122 apibox.club/website.SSHWebSocketHandler [Upgrade WebScoket Error: websocket: origin not allowed]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.