简介:
ttyd 是一个简单的命令行工具,用于在 Web 上共享终端,简单点说就是可以实现在网页上使用SSH终端服务,并且该软件是免费开源的。
安装ttyd
ttyd作者已经提供编译好的二进制文件,直接下载即可使用,最新版下载地址为:
https://github.com/tsl0922/ttyd/releases,
这里以CentOS 7为例:
下载ttyd
1 | wget -O ttyd https://github.com/tsl0922/ttyd/releases/download/1.6.0/ttyd_linux.x86_64 |
添加执行权限
1 | chmod +x ttyd |
移动目录
1 | mv ttyd /usr/sbin |
通过上面的几个步骤,我们已经完成ttyd安装,输入命令ttyd -v可查看当前版本:
1 | [root@hosta29d0ffef5 ~]# ttyd -v |
运行ttyd
输入命令ttyd bash运行ttyd,注意防火墙需要放行7681端口,然后浏览器访问http://IP:7681即可打开WEB终端
1 | ttyd bash |
创建后台运行服务
上面ttyd并没有保持后台运行,访问7681也不需要任何密码验证,非常不安全,接下来我们为ttyd创建一个systemd服务并设置用户名、密码验证。
新建服务
创建一个ttyd.service文件:vi /etc/systemd/system/ttyd.service内容如下:
1 | [Unit] |
让daemon生效
创建完毕后输入命令:
1 | systemctl daemon-reload |
-c参数,是设置用户名、密码验证,格式为-c 用户名:密码, 上面用户名为xiaoz,密码为xiaoz.me,请自行修改为自己的用户名、密码。
-p参数,是设置端口号,格式为-p 端口号, 上面端口号为:17681,请自行修改为自己需要的端口号。
使用systemd命令来进行管理
服务创建后,我们可以使用systemd了,命令如下:
1 | #启动ttyd |
Nginx反向代理
如果您不喜欢通过IP + 端口的访问形式,也可以设置Nginx反向代理通过域名访问,配置如下:
如果是网站根目录
server{
listen 80;
charset utf-8;
server_name 192.168.43.160;
location / {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://192.168.43.160:17681;
}
}
如果是网站二级目录
location ~ ^/ttyd(.*)$ {
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_pass http://127.0.0.1:7681/$1;
}
注意上面的ttyd可以修改为自己想要的路径。