微信网站开发制作公司,手机直播网站开发,成品网站源码,视觉设计工资一般多少参考官方对API使用方法的定义#xff1a;https://ehang-io.github.io/nps/#/
1、首先必须要在配置文件中开启 auth_key 并配置一个合适的密钥 2、修改脚本中的可变量参数#xff0c;以适配自己的环境
#!/bin/bash
# 脚本使用说明#xff1a;# 脚本名称#xff1a;npc_cr…参考官方对API使用方法的定义https://ehang-io.github.io/nps/#/
1、首先必须要在配置文件中开启 auth_key 并配置一个合适的密钥 2、修改脚本中的可变量参数以适配自己的环境
#!/bin/bash
# 脚本使用说明# 脚本名称npc_create.sh
# 编写人清瞳清
# 编写时间2023-12-10
# 描述这是一个用于自动注册创建 NPC 的脚本。# 定义变量
download_urlwww.qingtongqing.cc
download_port8080
port8081
npcnamelinux_amd64_client.tar.gz# 下载软件
wgetnpc() {echo -e \033[33m正在下载npc软件......\033[0mmkdir -p /data/npcif wget -q -P /data/npc http://$download_url:$download_port/$npcname; thenecho -e \033[32mnpc软件下载成功......\033[0melseecho -e \033[31mnpc软件下载失败......\033[0mexit 1fi
}# 解压软件
tarxzf() {echo -e \033[33m正在解压npc软件......\033[0mif tar -xzf /data/npc/$npcname -C /data/npc cp /data/npc/npc /usr/bin; thenecho -e \033[32mnpc软件解压安装成功......\033[0melseecho -e \033[31mnpc软件解压安装失败......\033[0mexit 1fi
}# 从配置文件中获取 auth_key
config_auth_keyqingtongqingc # 请将此处替换为实际的配置文件中的 auth_key# 获取当前时间戳以秒为单位
timestamp$(date %s)# 将配置文件中的 auth_key 和当前时间戳拼接起来
concatenated_string${config_auth_key}${timestamp}# 对拼接后的字符串进行 MD5 哈希加密
new_auth_key$(echo -n $concatenated_string | md5sum | awk {print $1})# 随机生成16位的字符串作为密钥
random_variable$(cat /dev/urandom | tr -dc a-zA-Z0-9 | fold -w 16 | head -n 1)# 随机生成20000-40000之间的端口号
random_port$((20000 RANDOM % 20001))# 添加客户端
insert_data() {echo -e \033[33m正在添加客户端......\033[0mresponse$(curl -s --request POST \--url http://$download_url:$port/client/add \--data auth_key$new_auth_keytimestamp$timestampremark$random_portupvkey$random_variableconfig_conn_allow1compress0crypt0)if [[ $response *success* ]]; thenecho -e \033[32m客户端添加成功......\033[0melseecho -e \033[31m客户端添加失败......\033[0mexit 1fi
}# 获取最后一个客户端ID和密钥
get_last_client_info() {response$(curl -s --request POST \--url http://$download_url:$port/client/list \--data auth_key$new_auth_keytimestamp$timestampsearchorderascoffset0limit300)#search代表搜索条件order代表排序顺序offset代表偏移量limit代表限制返回结果的数量如果存在数量很多出现分页的情况下建议把数值调大get_last_client_id$(echo $response | grep Id | awk -F : {print $2} | tail -n 1 | tr -d ,)#取出返回结果中的Id字段然后取最后一行然后去掉逗号#get_last_client_key$(echo $response | grep VerifyKey | tail -n 1 | tr -d , | awk -F : {print $2})#取出返回结果中的Addr字段然后取最后一行然后去掉逗号和空格然后以冒号为分隔符取第二个字段#get_last_client_addr$(echo $response | grep Addr | tail -n 1 | tr -d , | awk -F : {print $2})
}# 添加TCP隧道
insert_tcp() {echo -e \033[33m正在添加TCP隧道......\033[0m#随机生成固定范围的端口号取决于配置文件中对端口适用范围的限制如无限制请修改取值范围以免发生冲突if curl -s --request POST \--url http://$download_url:$port/index/add \--data auth_key$new_auth_keytimestamp$timestamptypetcpclient_id$get_last_client_idremark$random_variableport$random_porttarget22local_pathstrip_prepassword /dev/null; thenecho -e \033[32mTCP隧道添加成功......\033[0melseecho -e \033[31mTCP隧道添加失败......\033[0mexit 1fi
}# 在Linux主机内添加NPS客户端
add_nps() {echo -e \033[33m正在添加本机NPS客户端......\033[0mif npc -server$download_url:8024 -vkey$random_variable -typetcp /var/log/npc.log thenecho -e \033[32m本机NPS客户端添加成功......\033[0melseecho -e \033[31m本机NPS客户端添加失败......\033[0mexit 1fi
}# 输出客户端的相关信息
add_success() {echo -e \033[32m添加成功: \033[0mecho 服务器名称: $random_port_clientecho 服务器地址: $download_urlecho 客户端ID: $get_last_client_idecho 客户端端口: $random_portecho 客户端密钥: $random_variableecho -e \033[35m快捷登录方式为 ssh $download_url $random_port\033[0m
}# 主函数
main() {wgetnpctarxzfinsert_dataget_last_client_infoinsert_tcpadd_npsadd_success
}main3、测试结果如下也可按自己喜欢的方式更改输出结果