
基于HTTP和HTTPS的终端工具。WeTTy是ajaxterm和anyterm的替代方案,但功能更强大,因为它使用xterm.js(完全用JavaScript编写的终端仿真实现),并通过websockets而非Ajax通信,响应速度更快。
WeTTy允许用户通过Web浏览器访问终端,支持本地和远程服务器的SSH连接,适用于需要通过Web界面管理服务器、进行远程终端操作的场景。
bash$ git clone https://github.com/krishnasrinivas/wetty.git $ cd wetty $ yarn $ yarn build
使用yarn或npm:
yarn global add wetty.jsnpm i -g wetty.js如需自动登录功能,需安装sshpass(程序其他功能无需此依赖):
apt-get install sshpassyum install sshpassWeTTy可作为独立服务运行或集成到其他Node脚本中(API文档见API Doc)。
bash$ node index.js
在浏览器中访问 http://yourserver:3000/wetty 即可登录,或访问 http://yourserver:3000/wetty/ssh/<username> 预先指定用户名。
/bin/login(可指定用户名)localhost通过 --help 标志可查看所有参数。
服务端口
默认端口为3000,可通过 --port 或 -p 修改:
bashnode index.js --port 8080 # 或 -p 8080
SSH主机
login 程序而非SSHlocalhost--sshhost 指定远程主机:bashnode index.js --sshhost remote.example.com
默认用户
通过 --sshuser 指定默认SSH用户,可通过访问 http://yourserver:3000/ssh/<username> 覆盖:
bashnode index.js --sshuser defaultuser
未指定时,用户连接时需手动输入用户名。
SSH端口
默认SSH端口为22,可通过 --sshport 修改:
bashnode index.js --sshport 2222
URL前缀
默认URL前缀为 /wetty,可通过 --base 修改(不可设为 /ssh/${something},以免破坏用户名匹配):
bashnode index.js --base /terminal
HTTPS配置
建议使用HTTPS,可通过两种方式实现:
--sslkey 和 --sslcert:bashnode index.js --sslkey key.pem --sslcert cert.pem
生成自签名证书(无CA证书时):
bashopenssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 30000 -nodes
非root用户运行时,可通过URL参数传递密码实现自动登录(注意安全风险):
http://yourserver:3000/wetty/ssh/<username>?sshpass=<password>
Nginx
在Nginx配置中添加:
nginxlocation /wetty { proxy_pass http://127.0.0.1:3000/wetty; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 43200000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; }
Apache
在Apache配置中添加:
apacheRewriteCond %{REQUEST_URI} ^/wetty/socket.io [NC] RewriteCond %{QUERY_STRING} transport=websocket [NC] RewriteRule /wetty/socket.io/(.*) ws://localhost:3000/wetty/socket.io/$1 [P,L] <LocationMatch ^/wetty/(.*)> DirectorySlash On Require all granted ProxyPassMatch http://127.0.0.1:3000 ProxyPassReverse /wetty/ </LocationMatch>
WeTTy提供Docker化版本,支持快速部署。修改 docker-compose.yml 配置目标主机后运行:
bash$ docker-compose up -d
访问 [localhost|$(boot2docker ip)]:PORT 即可。默认用户名为 term,密码为 term(未修改 SSHHOST 时)。
Docker版本中,所有标志可通过环境变量设置(如 SSHHOST、SSHPORT 等)。如需使用官方镜像,移除 build: . 配置。
init.d
bash$ sudo yarn global add wetty.js $ sudo cp ~/.config/yarn/global/node_modules/wetty.js/bin/wetty.conf /etc/init $ sudo start wetty
systemd
bash$ yarn global add wetty.js $ cp ~/.config/yarn/global/node_modules/wetty.js/bin/wetty.service ~/.config/systemd/user/ $ systemctl --user enable wetty $ systemctl --user start wetty
默认端口为3000,如需修改端口或重定向日志,修改配置文件最后一行,例如:
systemdexec sudo -u root wetty -p 80 >> /var/log/wetty.log 2>&1
WeTTy支持所有https://github.com/xtermjs/xterm.js#browser-support%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。






探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务