艰苦条件下快速搭建WebShell(网页终端)

作者: 乘风御上者 分类: PHP 发布时间: 2019-09-18 09:30

标题开头用“艰苦环境”此言非虚哦,项目部署在内网环境中,连接服务器需要先使用远程软件连接上另一台电脑,通过另台电脑ssh软件连接到服务器(centos7)。服务器对外只开通5678一个端口,并且最近中转电脑已经关闭。

当前只能通过已经搭建的web站,利用其shell定时执行功能,繁琐的执行一些系统命令。搭建一个网页终端就显得非常有必要。

网上找到不少网页终端软件,它们最大问题还是在安装上。要么是依赖python的各种组件的蹊跷版本,要么就是配置不易或启动报错。

在定时任务中执行shell,查看执行结果的回显,麻烦可想而知。还好,经过我不懈努力,让公司大佬给解决了该问题。

大佬扔我一个 GoTTY ,去 Github 查看是 Go语言写的。PHPer有些抵触其他语言的东西,不过,真香!

作者有编译好的 执行文件 ,找到amd64.tar.gz就直接扔到centos上解压,里面就一个可执行文件:

# 解压文件
tar -zxvf gotty.amd64.tar.gz
# 提升权限
chmod -R 0777 gotty
# 和gotty同级目录下执行
vim .gotty

文件 .gotty 内容:

// 设置监听端口
port = “9000”
// 是否启用 TSL/SSL 自己用就关了
enable_tls = false
// 设置shell窗口字体大小或颜色等
preferences {
font_size = 5
background_color = “rgb(16, 16, 32)”
}

# 同样给与一定权限
chmod -R 0777 .gotty
# 以上配置完毕即可执行
./gotty -r -w  bash -i
# 注意:执行完成会返回一个目录名
栗子:/5fs46s6df48

正常情况此时访问 127.0.0.1:9000/5fs46s6df48 即可看到终端界面,注重安全的可以在配置文件配置 使用账号密码登录方式。

但是由于服务器只能访问5678端口,所以就使用Nginx做反向代理。需要注意的是,作为其他站点的反向代理,也就是某个域名或IP下的目录时,会发生终端需要的js或css等文件访问不到,从而导致终端显示失败。

解决办法也非常简单:

1、配置Nginx将js或css访问同样设置代理。

2、在Nginx中新建一个server,内部完全做代理,指向 http://127.0.0.1:9000/5fs46s6df48 这样所有内容都指向新站点,就不会有资源无法访问的问题,但是必须设置本地hosts 将新站点的域名 指向服务器IP。

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表回复