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

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

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

安装

wget -c -O ttyd https://github.com/tsl0922/ttyd/releases/download/1.5.2/ttyd_linux.x86_64 # 权限chmod u+x ttyd # -p 指定监听端口启动 ./ttyd -p 7077 bash
592e6f8d130678d36cd24dec65c1d39e.png

启动成功

26498f0b87652670c33a866b71f8750d.png

通过浏览器 访问ip和端口

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

示例

  • 启动时,开启登录验证
# 关键字 login ,默认校验启动应用的系统账户./ttyd -p 8087 login bash
7bf5c5a2bd0d70f1ec126934dbd96fa7.png

验证系统账户

  • 开启自定义账户登录验证
# -c (格式: username:password) ./ttyd -p 8087 -c admin:admin123 bash
9248aea6728ee22a404a74c704731d00.png

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

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

输入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 http://ttyd_proxy/;  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 端口

c85466e8856ba567510b84bb15e38673.png

通过 Nginx 代理访问

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: websocket_codetool是一种用于实现websocket服务的编程工具。websocket是一种全双工通信协议,它可以在浏览器和服务器之间进行双向通信,实现实时数据传输和交互。使用websocket_codetool可以方便地编写websocket服务端代码,实现与客户端的数据传输和处理。 websocket_codetool提供了一些基本的功能,在创建websocket服务时可以进行自定义设置。例如,可以指定websocket服务使用的端口号、协议类型和子协议等。同时,websocket_codetool也支持一些事件处理机制,可以在各种事件发生时触发相应的回调函数,例如连接建立事件、数据收发事件等。 使用websocket_codetool实现websocket服务的过程比较简单,只需要引入相应的库文件,并使用提供的API进行代码编写即可。例如,可以通过websocket_codetool提供的on函数来监听客户端的连接请求,并在连接建立时发送欢迎消息。在接收到客户端发送的数据时,可以使用websocket_codetool提供的send函数进行数据处理或者转发。 总之,使用websocket_codetool可以更加方便地编写实时数据交互的应用程序,复杂的网络编程变得简单易懂,提高了开发效率和代码质量。 ### 回答2: WebSocket是一种在Web浏览器和服务器之间进行实时双向通信的协议。WebSocket_codetool是一个用于实现WebSocket服务的软件工具包,它提供了一组用于处理WebSocket通信的接口和类。 使用WebSocket_codetool可以快速搭建一个WebSocket服务器,让客户端和服务器之间实现实时通信,比如基于WebSocket的聊天室、在线游戏、消息推送等应用。 WebSocket_codetool提供的接口包括实现WebSocket握手、连接管理、数据传输等,并且支持多协议,如HTTP、HTTPS、WS、WSS等。其实现基于Java语言和Netty框架,具有高并发、易扩展、高性能等优点。 WebSocket_codetool还支持自定义消息解码和编码方式,并且提供了多种编码格式,如二进制、JSON、文本等。同时,它还具有可靠性,可以自动进行心跳检测和断线重连等功能,确保数据传输的稳定性和可靠性。 WebSocket_codetool是一个非常优秀的WebSocket服务框架,它的出现简化了WebSocket服务的开发难度,让开发者可以更加专注于业务逻辑的实现。 ### 回答3: c语言是一种非常底层、高效的编程语言,常常用于嵌入式系统和网络编程。WebSocket是一种基于TCP协议的双向通信协议,可以在Web浏览器和服务器之间创建实时通信的连接,用于实现在线游戏、聊天室、股票行情等。 websocket_codetool是一种c语言开发的websocket服务库,可以方便地实现websocket服务。它提供了一套完整的API,包括创建websocket服务、处理连接请求、发送和接收消息等。同时,该库还提供了一些示例代码和文档,方便开发者快速上手。 使用websocket_codetool实现websocket服务,需要先安装该库,并按照文档说明进行开发。开发者需要自己编写处理逻辑,比如游戏逻辑、聊天室交互等,并在代码中调用websocket_codetool提供的API进行通信。 websocket_codetool的优势在于它是一种开源、免费的服务库,可以在自由软件协议下进行修改和使用。而且,由于使用了c语言的特性,它的运行效率非常高,可以满足对性能要求非常高的应用场景。最后,它还支持多平台,包括Windows、Linux等操作系统,可以方便地实现跨平台的websocket服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值