龙空技术网

通过浏览器实现 Linux 终端访问 - ttyd 介绍

凌晨在珠海 3391

前言:

现时咱们对“控件通过nginx访问”大约比较注意,兄弟们都需要了解一些“控件通过nginx访问”的相关知识。那么小编同时在网络上网罗了一些对于“控件通过nginx访问””的相关知识,希望你们能喜欢,你们快快来了解一下吧!

大家都知道xshell等运维终端工具都是使用ssh的22端口。有的时候,服务器只允许开放一个业务端口对外,比如 tomcat的8080端口,若想通过这个端口访问服务器执行一些shell命令该如何做呢?

今天就为大家介绍一个开源的命令行工具:ttyd ()。它是一个可以自定义访问端口,并 通过浏览器实现终端访问 的开源工具,使用起来也非常非常简单。

安装

wget -c -O ttyd  # 权限chmod u+x ttyd # -p 指定监听端口启动 ./ttyd -p 7077 bash

启动成功

通过浏览器 访问ip和端口

大家看到了吗,几个步骤即可实现浏览器终端访问,下面我再演示一些用法。

示例启动时,开启登录验证

# 关键字 login ,默认校验启动应用的系统账户./ttyd -p 8087 login bash

验证系统账户

开启自定义账户登录验证

# -c (格式: username:password) ./ttyd -p 8087 -c admin:admin123 bash

校验自定义账户 admin 进行登录

使用 lrzsz 上传和下载文件

# 先在服务器上安装 lrzsz,(lrzsz是一个非常好用、简单的上传下载命令,rz 上传、sz 下载,如果你还不知道它,赶紧百度下,大大提高工作效率)yum install lrzsz

输入rz 命令后,打开了一个文件上传控件,选择一个文件上传即可

补充通过 Nginx 代理 ttyd

实际的生产环境中,应用的访问基本都是通过 Nginx 进行代理访问的。ttyd 是基于websocket,需要 Nginx 开启websocket代理功能,必须明确设置Upgrade 和Connection 标题。

1)编辑 nginx.conf,在http区域内一定要添加下面配置

http {  # 增加map map $http_upgrade $connection_upgrade {  default upgrade;  '' close;  }}

2) 编辑vhosts下虚拟主机的配置文件,在location匹配配置中添加如下内容

proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade";

举例:在 conf/vhost/ 新增配置 ttyd.conf

upstream ttyd_proxy{  server 10.24.247.102:7077; } server {  listen 8087;  server_name 10.24.247.102;  access_log /root/ttyd_eccess.log;  proxy_set_header Host $host:$server_port;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header REMOTE-HOST $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  location /ttyd {  proxy_pass ;  proxy_set_header Host $host:$server_port;  proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade;  proxy_set_header Connection "upgrade"; } }

3)访问 8087 端口

通过 Nginx 代理访问

怎么样,是不是很方便,关键是不受ssh的限制,远程运维起来是不是方便多了 ~

标签: #控件通过nginx访问