Web 登录 Linux 终端C 语言源码
#源码介绍
小伙伴们中午好,今天给大家带来一款能够通过 Web 登录 Linux 终端的开源项目。采用 C 语言实现,算上依赖库体积不到 100KB,可用于嵌入式 Linux 设备。拥有 Web 管理界面,用此项目可以方便地远程维护 Linux 设备,感兴趣的小伙伴自行下载啦。别忘了加群讨论哦。
下面附上一些说明,其他的说明我会放到文件夹里面。
# 说明
API 路径
/cmd/:devid?wait=10
wait 参数为可选,默认等待 30s,如果不关心命令执行结果,可设置为 0
请求消息格式
{
“username”: “test”,
“password”: “test”,
“cmd”: “echo”,
“params”: [“hello rtty”]
}
其中 username、cmd 必须提供。password、params 为可选项。params 为一个 JSON 数组。
如果命令执行完成,服务器将返回 json 格式的命令执行结果:
{
“code”: 0,
“stdout”: “aGVsbG8gcnR0eQo=”,
“stderr”: “”
}
响应中的 stdout 和 stderr 是经过 base64 编码的。
如果任何一步操作失败,服务器都将返回 json 格式的错误信息:
{
“err”: 1002,
“msg”: “device offline”
}
所有错误码如下
1001 invalid format
1002 device offline
1003 timeout
1 operation not permitted
2 not found
3 no mem
4 sys error
5 stdout+stderr is too big
# Example
## [Shell](/tools/sendcmd.sh)
## Jquery
“`javascript
var data = {username: ‘test’, password: ‘test’, cmd: ‘echo’, params: [‘hello rtty’]};
$.post(‘http://your-server:5913/cmd/test’, JSON.stringify(data), function(r) {
if (r.stdout) {
console.log(window.atob(r.stdout))
} else {
console.log(r)
}
});
“`
## Axios
“`javascript
var data = {username: ‘test’, password: ‘test’, cmd: ‘echo’, params: [‘hello rtty’]};
axios.post(‘http://your-server:5913/cmd/test’, data).then(function(r) {
var resp = r.data;
if (resp.stdout) {
console.log(window.atob(resp.stdout))
} else {
console.log(resp)
}
});
# 直接在设备里面安装
opkg update
opkg list | grep rtty
opkg install rtty-nossl
# 自己编译
## 更新feed
./scripts/feeds update packages
./scripts/feeds install -a -p packages
***如果您的openwrt中的rtty不是最新版本,您可以从这里获取最新的package***
https://gitee.com/zhaojh329/rtty/tree/openwrt-package
## 在menuconfig中选择rtty,然后重新编译固件。
Utilities —>
Terminal —>
<*> rtty-mbedtls…………….. Access your terminals from anywhere via the web
< > rtty-nossl………………. Access your terminals from anywhere via the web
< > rtty-openssl…………….. Access your terminals from anywhere via the web
< > rtty-wolfssl…………….. Access your terminals from anywhere via the web
# 配置
配置服务器参数
uci add rtty rtty # 如果是第一次配置
uci set rtty.@rtty[0].host=’your server host’
uci set rtty.@rtty[0].port=’your server port’
你可以给你的设备自定义一个ID。如果未指定,RTTY将使用指定的网络接口的MAC地址作为其ID
uci set rtty.@rtty[0].id=’your-device-id’
给你的设备添加一个描述
uci set rtty.@rtty[0].description=’My device’
使用SSL
uci set rtty.@rtty[0].ssl=’1′
认证
uci set rtty.@rtty[0].token=’your-token’
保存配置并应用
uci commit
/etc/init.d/rtty restart
#效果展示

#源码已上传阿里云oss,请看右侧下载
源码已上传阿里云OSS不限速下载
会员用户请登录后使用右侧高速下载通道
普通用户请支付相关费用使用高速下载通道
提示:未登录用户为游客购买,购买记录缓存在浏览器内七天,建议注册后再操作可享受永久下载权限
#小二有话说
为了提升小伙伴们的体验感,小二开通了阿里云oss下载,超过100mb的文件小二会放到阿里云oss里,小于100mb的小二会放到高速网盘下,小伙伴们可以开通会员后免费不限速下载哦,或者花两元购买资源[会员专享资源5元],网站的盈利都会用来给大家提升体验感,望大家理解小二,欢迎入群讨论[QQ群:825433992]
12580Code - 网站源码_App源码_Pc源码_游戏源码 » Web 登录 Linux 终端C 语言源码