首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
3,141 阅读
2
推荐31个docker应用,每一个都很实用
1,502 阅读
3
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
1,050 阅读
4
一条命令,永久激活!Office 2024!
680 阅读
5
优选 Cloudflare 官方 / 中转 IP
539 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
uni-app
docker部署
虚拟机
WordPress
群晖
CentOS
Vue
Java类库
Linux命令
防火墙配置
Mysql
脚本
Nginx
微醺
累计撰写
266
篇文章
累计收到
11
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
266
篇与
的结果
2023-02-17
网站都变成灰色了,它是怎么实现的?
每逢大事时,全网网站和APP都会出现变灰的画面,具体怎么实现可参照以下。 先来感受一下变灰后的效果。 这种灰色的效果怎么实现的呢?如何做到图片、文字、按钮都变灰的效果呢?方案1:换一套灰色的 UI,那显然成本太大了,用脚指头想一想就知道不太可能。方案2:用魔法!!不好意思,还真被你猜中了!在网页端按下 F12,打开开发者模式,用元素选择器定位到 HTML 标签上,在「样式」的面板中往下翻,就可以看到这样一段代码。代码-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);那这段代码是什么意思呢?直接把 filter grayscale 复制到搜索引擎里看一下。当参数为 0 的时候,颜色是正常的。然后依次试一下 60% 100% 可以看到图片逐渐变成灰黑色filter 函数可以用来改变图像的显示效果,用于 CSS 的 filter 属性。除了 grayscale 函数,可选项还有以下这些:可以看到,目前的主流浏览器版本都支持 grayscale 函数,比如说 PC 端的 Chrome、edge、Firefox、Opera、Safari 等等,除了 IE。 下面介绍几种让整个网页变黑的方法,直接贴代码第一种:修改CSS文件html { filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(100%); }第二种:在网页的标签内加入以下代码<style type="text/css"> html { filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(100%);} </style>第三种:修改标签加入内联样式<html style="filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(100%);">第四种:作者本人用的CSS代码body *{ -webkit-filter: grayscale(100%); /* webkit */ -moz-filter: grayscale(100%); /*firefox*/ -ms-filter: grayscale(100%); /*ie9*/ -o-filter: grayscale(100%); /*opera*/ filter: grayscale(100%); filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); filter:gray; /*ie9- */ }
2023年02月17日
97 阅读
0 评论
0 点赞
2023-02-17
vue项目中使用elementUI的el-tabs组件跳转卡死问题
解决方案1:在页面上使用了el-tabs元素的页面(log.vue),使用el-row el-col元素来包裹el-tabs元素,也可以解决页面卡死问题<tempalte> <div class="log-box"> <el-row> <el-col :span="24"> <el-tabs> <el-tab-pane>1111</el-tab-pane> <el-tab-pane>22222</el-tab-pane> </el-tabs> </el-col> </el-row> </div> </template>解决方案2:在el-tabs标签上面,加一个兄弟节点–空的块级元素<tempalte> <div class="log-box"> <div> </div> <el-tabs> <el-tab-pane>1111</el-tab-pane> <el-tab-pane>22222</el-tab-pane> </el-tabs> </div> </template>此块级元素,要占位dom内容,但不设置宽高,即不影响页面为主;解决方案3:降级elementUI版本到2.6.3,或者升级vue版本到2.6x+解决方案4:vue(2.5.2)版本过低时 elment版本过高,会出现这个问题,解决方法:终端输入 npm audit fix 命令执行即可
2023年02月17日
85 阅读
0 评论
0 点赞
2023-02-17
黑客都使用什么编程语言?
信息泄露、源码曝光等事件屡见不鲜,黑客组织好像从未消停过。例如近期发生的一系列与Lapsus$ 黑客组织有关的事件:英伟达员工信息泄露、核心数据被窃取,三星190GB的机密文件数据遭曝光、再到微软Bing和Cortana源码被窃取,黑客组织 Lapsus$ 活跃在各大网站,而其幕后主谋被曝是一名16岁的少年。据外媒报道,英国警方逮捕了与Lapsus$ 黑客组织有关联的7名嫌疑人。他们的年龄在16到21岁,现已经释放,警方表示调查还在继续,但警方并未透露这位主谋是否被抓。与此同时,自称是欧洲最大的黑客协会Chaos计算机俱乐部做了一份调查,其目的是研究黑客们都使用哪些编程语言。在受访者中,有近75%的人表示他们有5年或者5年以上的黑客经验,93%的人5年以上的编程经验。其中他们最常用的编程语言是Bash、Shell、PowerShell,有72.5%的人表示他们在过去一年使用过这些语言,并从事了黑客行动。其次是Python,有70%的受访黑客表示他们在过去一年使用了Python。有32.5%的人使用了C语言、JavaScript,HTML/CSS占比是30%,C++是27.5%,Go是22.5%。除了编程语言,黑客们都使用什么操作系统呢?其中95%的受访黑客表示过去一年使用了Linux,只有40%的人使用Windows,macOS是32%,还有17.5%的人使用BSD。IDE方面,60%的人使用了Vim,50%的受访者使用Visual Studio Code。在回答“这些编程语言是你在攻击过程中的重要组成部分”一题时,只有25%的人表示编程语言对他们从事黑客攻击很重要,32.5%的人表示不重要,42.5%的不认同这样的说法,甚至认为与编程语言的选择无关。最后值得一提的是,Chaos计算机俱乐部表示:这份调查只有43名黑客参与,所以以上结论并不具备一定的代表性,但由于这方面的主题调查比较稀少,所以希望能成为未来调查模型的一部分。参考链接:https://www.theregister.com/2022/03/24/hacker_language_study/
2023年02月17日
67 阅读
0 评论
0 点赞
2023-02-16
太强了,推荐7个牛哄哄 Spring Cloud 实战项目,拿来即用(附源码)
今天,推荐几个GitHub上7个非常火的开源微服务项目。这是我目前见过的最好的微服务项目。功能完整,代码结构清晰。值得推荐。微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。轻松阅读light reading cloud(轻松阅读)是一款图书阅读类APP,基于 SpringCloud 生态开发的微服务实践项目。涉及 SpringCloud-Gateway、Nacos、Hystrix、OpenFeign、Jwt、ElasticSearch 等技术栈的应用。项目的侧重点主要是基于实际业务场景使用微服务架构落地的思路,图+文的方式介绍每个服务或接口的原理以及为什么使用这种方式实现,想入门微服务的朋友可以试试。核心架构图:客户端:https://github.com/Zealon159/light-reading-cloud-clientapi:https://github.com/Zealon159/light-reading-cloudPiggyMetricsPiggyMetrics ,一个开源项目,适合微服务入门,可以指导开发者使用 Spring Boot、Spring Cloud 和 Docker 搭建微服务架构。该开源项目有一个典型的微服务实现案例 - 个人理财微服务系统。采用Spring Boot/Spring Cloud等技术栈,来实现微服务的开发、构建和治理。页面还很简洁,非常奈斯~PiggyMetrics 被分解为三个核心微服务,它们都是可独立部署的应用程序,围绕特定的业务领域进行组织。这个项目很适合积累微服务的实战经验。项目地址:https://github.com/sqshq/piggymetrics分布式电商项目基于 Spring Cloud 的分布式电商项目,目标打造顶级多模块,高可用,高扩展电商项目。目前这个项目使用分库设计方案,不同的模块依赖不同的数据库实例。技术栈基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架,有助于进一步学习Spring Cloud 技术栈。项目截图项目地址:https://github.com/SiGuiyang/spring-cloud-shopCloud-PlatformCloud-Platform是国内首个Spring Cloud微服务化RBAC的管理平台,核心采用Spring Boot 2.4、Spring Cloud 2020.0.0 & Alibaba,前端采用d2-admin中台框架。其具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。模块说明功能截图项目地址:https://gitee.com/geek_qi/cloud-platformSpringBlade 微服务开发平台SpringBlade 是一个由商业级项目升级优化而来的SpringCloud分布式微服务架构、SpringBoot单体式微服务架构并存的综合型项目,采用Java8 API重构了业务代码,完全遵循阿里巴巴编码规范。采用Spring Boot 2.4 、Spring Cloud 2020 、Mybatis 等核心技术,同时提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。部分界面截图项目地址:https://gitee.com/smallc/SpringBlade互联网云快速开发框架互联网云快速开发框架,微服务分布式代码生成的敏捷开发系统架构。项目代码简洁,注释丰富,上手容易,还同时集中分布式、微服务,同时包含许多基础模块和监控、服务模块。基于SpringBoot2.0的后台权限管理系统,界面简洁美观,核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。还被评为 2018 年度最受欢迎中国开源软件项目~项目地址:https://gitee.com/JeeHuangBingGui/jeeSpringCloudOnlineTaxi项目演示项目地址:https://github.com/OiPunk/OnlineTaxi
2023年02月16日
317 阅读
2 评论
0 点赞
2023-02-16
Docker部署 Mysql、redis、Rabbitmq、Vue、Java 项目
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。本文主要讲解如何在Linux环境下使用 Docker 部署前后端分离项目,其中涉及到使用 Docker 安装本人项目相关的一些环境 ,例如mysql、rabbitmq、redis,基于CenterOS7.0。Docker 环境安装1.安装 Docker 客户端# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装 Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start2.配置镜像加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://sq2b0kv9.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker安装 PortainerPortainer 是一个轻量级 Web 端的 Docker 管理 UI,Portainer 够轻松地管理不同的 Docker 环境(Docker 主机或集群)。Portainer 的部署和使用十分简单。Portainer 可以部署为 Linux 容器或 Windows 本机容器,也支持其他平台。Portainer 允许您管理所有 Docker 资源(容器、映像、卷、网络等)!它与独立的 Docker 引擎和 Docker 集群模式兼容。1.安装# 拉取官方镜像 docker pull portainer/portainer # 运行镜像到容器 docker run -d -p 9000:9000\ --restart=always\ -v /var/run/docker.sock:/var/run/docker.sock\ -m 20M --oom-kill-disable --memory-swap=-1\ --name portainer\ portainer/portainer2.访问页面访问地址:http://localhost:9000,第一次打开需要设置用户名、密码,docker 模式我一般选择 Local 本机模式。通过此工具我们可以更加简便的对镜像和容器进行操作和管理。登录页 面板页 安装 mysql# docker search mysql 可通过此命令查看可用版本 # 拉取mysql镜像,默认会拉取最新版本,我这里加上版本号 docker pull mysql:8.0.0 # 查看镜像是否拉取成功 docker images # 在/home/docker/mysql目录下创建mysql挂载目录 mkdir {data,logs,conf} # 运行容器 docker run -d -p 3306:3306 -v /home/docker/mysql/my.cnf:/etc/mysql/conf.d/mysqld.cnf -v /home/docker/mysql/data:/var/lib/mysql -v /home/docker/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=12345 --name mysql_test mysql:8.0.0说明:--name:容器名-e:配置信息,此处配置 mysql 的 root 用户登陆密码-d:后台运行容器,保证在退出终端后容器继续运行-p:端口映射,此处映射 主机 3306 端口 到 容器的 3306 端口-v:挂载目录此处需要注意不要直接挂载容器中的 mysql 配置文件目录,可能会将容器内的配置文件目录清空。个人建议将容器中的 my.cnf 文件复制出来进行选择性的修改,再挂载 mysql.cnf 文件即可。docker cp :用于容器与主机之间的数据拷贝。# 语法 docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- # 实例 docker cp 96f7f14e99ab:/etc/mysql/conf.d/mysqld.cnf /home/docker/mysql/my.cnf安装 redis因为 redis 默认配置只能够本地连接,不能进行远程访问,使用 Redis 客户端工具连接都会报错,因此需要手动挂载 redis 配置文件。# /home/docker/redis目录下新增挂载文件夹 mkdir {data,conf} # 下载最新版本的Redis镜像 docker pull redis # 新增redis配置文件 cd /home/docker/redis/conf touch redis.conf vim redis.conf添加以下内容#bind 127.0.0.1 protected-mode no appendonly yes requirepass 123456说明:bind 127.0.0.1 ,注释掉这部分,这是限制 redis 只能本地访问protected-mode:默认 yes,开启保护模式,限制为本地访问appendonly:redis 持久化(可选)requirepass:设置访问密码为 123456运行容器docker run --name myredis -p 6379:6379 -v /home/docker/redis/data:/data -v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf说明:--name:容器名称-p :表示将服务器的 6379(冒号前的 6379)端口映射到 docker 的 6379(冒号后的 6379)端口-d :表示以后台服务的形式运行 redis-v :挂载宿主机目录redis redis-server /etc/redis/redis.conf:表示运行 redis 服务器程序,并且指定运行时的配置文件经过以上步骤,便可以通过 redis 客户端工具进行连接,如果连接不上,检查安全组和服务器防火墙端口是否开放安装 rabbitmq# 拉取带图形化管理界面的镜像 docker pull rabbitmq:3.7.7-management # 根据下载的镜像创建和启动容器 docker run -d --name rabbitmq3.7.7 -p 5672:5672 -p 15672:15672 -v `pwd`/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin df80af9ca0c9说明:-d:后台运行容器;--name:指定容器名;-p:指定服务运行的端口(5672:应用访问端口;15672:控制台 Web 端口号);-v:映射目录或文件;--hostname :主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);-e:指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)Rabbitmq 访问地址:http://localhost:15672 至此,基本的运行环境都安装完毕,下面就是关键的打包步骤了。Vue 前端项目打包将 dist 下的所有文件目录拷贝到 SpringBoot 后端项目的 resources\static 目录下,static 目录需要新建。如果你的项目中用到了 shiro 或者 spring security 等安全框架,需要对静态资源放行。以上配置完成后,先在本地运行,再用 maven 进行打包。将 jar 包上传到服务器后,就要开始制作自己的镜像了,首先在与 jar 包同目录下新建 Dockerfile 文件。# 新建Dockerfile文件 touch Dockerfile # 编写Dockerfile文件 vim Dockerfile加入以下内容# Docker image for springboot file run # VERSION 0.0.1 FROM java:8 # VOLUME 指定了临时文件目录为/tmp。 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp VOLUME /tmp # 将jar包添加到容器中并更名为app.jar ADD demo-01.jar app.jar # 运行jar包 RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]执行 docker build -t [镜像名称] . ,至此镜像文件就制作完成了。docker images查看镜像是否存在。最后一步,创建并启动容器,docker run --name [容器名称] -d -p 80:8080 [镜像名]。
2023年02月16日
79 阅读
0 评论
0 点赞
2023-02-16
CentOS7离线安装Docker和卸载Docker步骤(亲测有效)
一、CentOS7离线安装 Docker 步骤1、docker 安装包下载地址https://download.docker.com/linux/static/stable/x86_64/2、将下载的 docker-18.06.3-ce.tgz 文件上传到 Centos7 服务器上(如上传到 /home/docker 目录下),并执行 tar 命令解压,如下图:tar -zxvf docker-18.06.3-ce.tgz3、将/home/docker 目录下解压出来的所有 docker 文件复制到 /usr/bin/ 目录下cp docker/* /usr/bin/4、将 docker 注册为 service,进入/etc/systemd/system/目录,并创建 docker.service 文件cd /etc/systemd/system/touch docker.service5、编辑 docker.service 文件,将以下内容复制到 docker.service 文件中注:以下内容中 --insecure-registry=192.168.3.10 此处改为你自己服务器 ipvim docker.service[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=192.168.3.10 ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target6、给 docker.service 文件添加执行权限chmod 777 /etc/systemd/system/docker.service7、重新加载配置文件注:每次修改 docker.service 这个文件时都要重新加载下。systemctl daemon-reload8、启动 Docker 服务systemctl start docker9、设置开机启动 Docker 服务systemctl enable docker.service10、验证 docker 是否启动成功查看 Docker 状态,显示 active(running)表示启动成功systemctl status docker查看 Docker 版本docker -v11、配置镜像加速器,默认是到国外拉取镜像速度慢,如下图:编辑 /etc/docker/目录下的 daemon.json 文件,将以下内容复制到 daemon.json 文件中vim /etc/docker/daemon.json{"registry-mirrors": ["http://hub-mirror.c.163.com"]}重启 docker,使其 daemon.json 文件配置生效service docker restart二、CentOS7 离线卸载Docker步骤1、删除服务取消开机自启systemctl disable docker取消注册文件rm -rf /etc/systemd/system/docker.service2、删除命令rm -rf /usr/bin/containerd rm -rf /usr/bin/containerd-shim rm -rf /usr/bin/ctr rm -rf /usr/bin/runc rm -rf /usr/bin/docker*3、删除配置rm -rf /etc/docker/4、删除镜像或容器rm -rf /var/lib/docker
2023年02月16日
91 阅读
0 评论
0 点赞
2023-02-16
Ubuntu18.04 安装 RabbitMQ (正确安装)
安装 erlang由于 rabbitMq 需要 erlang 语言的支持,在安装 rabbitMq 之前需要安装 erlangsudo apt-get install erlang-nox安装 Rabbitmq更新源sudo apt-get update安装sudo apt-get install rabbitmq-server启动、停止、重启、状态 rabbitMq 命令sudo rabbitmq-server start sudo rabbitmq-server stop sudo rabbitmq-server restart sudo rabbitmqctl status添加 admin,并赋予 administrator 权限添加 admin 用户,密码设置为 adminsudo rabbitmqctl add_user admin admin赋予权限sudo rabbitmqctl set_user_tags admin administrator赋予 virtual host 中所有资源的配置、写、读权限以便管理其中的资源sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'RabbitMQ GUID 使用1、官方提供的一个 web 管理工具(rabbitmq_management) 2、安装了 Rabbitmq 后,默认也安装了该管理工具,执行命令即可启动先定位到 rabbitmq 安装目录sudo rabbitmq-plugins enable rabbitmq_management浏览器访问 http://localhost:15672/ 使用刚刚创建的 admin 就可以登录,密码也为 admin
2023年02月16日
65 阅读
0 评论
0 点赞
2023-02-15
Ubuntu下使用ssmtp+mailutils配合163邮件配置自动发送邮件
安装 ssmtp mailutilsapt install -y ssmtp mailutils编辑配置ssmtp文件vim /etc/ssmtp/ssmtp.conf# cat /etc/ssmtp/ssmtp.conf | grep -v ^# root=postmaster #163邮箱smtp mailhub=smtp.163.com:465 hostname=ubuntu UseTLS=Yes #163邮箱 root=xxxxx@163.com #邮箱名 AuthUser=xxxxx #授权码 AuthPass=授权码 #注意这里是授权码,需要去邮件界面手动添加vim /etc/ssmtp/revaliases# cat /etc/ssmtp/revaliases | grep -v ^# root:123456@163.com:smtp.163.com:465 #用户名:发送邮箱地址:邮箱smtp地址:端口测试echo "hello world" | mail -s "title" 666666@qq.com配置定时任务crontab -e0 14 * * 1 cd /root/&&/root/sendMessage.sh
2023年02月15日
68 阅读
0 评论
0 点赞
2023-02-15
CentOS-Shell-监控公网IP-变化邮件报警
Shell监控公网IP-变化邮件报警公司用的动态公网IP,但是有时IP会改变,导致部分业务有问题,我们又不能及时发现,会造成一定的影响。现在使用shell监控公网的IP,如发生变化,立即邮件报警。CentOS邮件报警可以参考这个,默认是mailx安装邮件服务yum -y install mailx配置 mailx 文件进入qq邮箱首页,点击设置>账户,然后找到下图截取的地方(需要设置的,如图)设置完之后呢,就要把生成的授权码作为邮箱的password配置/etc/mail.rc文件【下面的配置qq是假的,别用】#设置发件人名称 set from=1832025651@qq.com #设置邮件服务器 set smtp=smtp.qq.com #填写自己邮箱地址 set smtp-auth-user=1832025651@qq.com #输入邮箱验证码 set smtp-auth-password=pfljngafoqaxecff #smtp的认证方式,默认是login set smtp-auth=login测试发送邮件echo "admin ,文件内容" | mail -s "标题" 你的qq@qq.com编写Shell脚本#!/bin/bash dirfile='/home/ip_change' new_ip=`curl icanhazip.com` #获取新公网ip mail_user=1794@qq.com #接收收邮件邮箱 mail_subject="IP已经发生变化,及时处理" #邮件主题 log="/var/log/tool.log" datetime=`date '+%Y-%m-%d %H:%M:%S'` #判断文件是否存在 if [ ! -f "$dirfile" ]; then touch "$file" echo "1.1.1.1" > $dirfile fi #判断new_ip是否获取 if [ ! -n "$new_ip" ]; then echo "$datetime 公网IP获取失败,检查'curl icanhazip.com' " >> $log exit 1 fi old_ip=`cat $dirfile` #查看旧ip # 判断两个IP是否相等 发邮件 if [ "$new_ip" = "$old_ip" ]; then echo "$datetime IP正常 - true " >> $log else echo $new_ip > $dirfile echo "IP已经发生变化, 新IP: $new_ip 旧IP: $old_ip !!! " | mail -s "$mail_subject" "$mail_user" echo "$datetime IP已经发生变化 - error 新IP :$new_ip 旧IP: $old_ip" >> $log fi然后设置定时任务执行,如下:crontab -e*/10 * * * * /data/shell/getIp/getIp.sh至此,每隔10分钟,自动获取最新公网ip,如果有更新,发送到目标邮箱。
2023年02月15日
102 阅读
0 评论
0 点赞
2023-02-15
Linux 怎么防止 ssh 被暴力破解
SSH 是一种广泛使用的协议,用于安全地访问 Linux 服务器。大多数用户使用默认设置的 SSH 连接来连接到远程服务器。但是,不安全的默认配置也会带来各种安全风险。具有开放 SSH 访问权限的服务器的 root 帐户可能存在风险。尤其是如果您使用的是公共 IP 地址,则破解 root 密码要容易得多。因此,有必要了解 SSH 安全性。这是在 Linux 上保护 SSH 服务器连接的方法。1、禁用root用户登录为此,首先,禁用 root 用户的 SSH 访问并创建一个具有 root 权限的新用户。关闭 root 用户的服务器访问是一种防御策略,可以防止攻击者实现入侵系统的目标。例如,您可以创建一个名为 exampleroot 的用户,如下所示:useradd -m exampleroot passwd exampleroot usermod -aG sudo exampleroot以下是上述命令的简要说明:useradd 创建一个新用户,并且-m参数在您创建的用户的主目录下创建一个文件夹。passwd 命令用于为新用户分配密码。请记住,您分配给用户的密码应该很复杂且难以猜测。usermod -aG sudo 将新创建的用户添加到管理员组。在用户创建过程之后,需要对 sshd_config 文件进行一些更改。您可以在 /etc/ssh/sshd_config 找到此文件。使用任何文本编辑器打开文件并对其进行以下更改:# Authentication: #LoginGraceTime 2m PermitRootLogin no AllowUsers examplerootPermitRootLogin 行将阻止 root 用户使用 SSH 获得远程访问。在 AllowUsers 列表中包含 exampleroot 会向用户授予必要的权限。最后,使用以下命令重启 SSH 服务:sudo systemctl restart sshd2、更改默认端口默认的 SSH 连接端口是 22。当然,所有的攻击者都知道这一点,因此需要更改默认端口号以确保 SSH 安全。尽管攻击者可以通过 Nmap 扫描轻松找到新的端口号,但这里的目标是让攻击者的工作更加困难。要更改端口号,请打开 /etc/ssh/sshd_config 并对文件进行以下更改:Include /etc/ssh/sshd_config.d/*.confPort 22099在这一步之后,使用 sudo systemctl restart ssh 再次重启 SSH 服务。现在您可以使用刚刚定义的端口访问您的服务器。如果您使用的是防火墙,则还必须在此处进行必要的规则更改。在运行 netstat -tlpn 命令时,您可以看到您的 SSH 端口号已更改。3、禁止使用空白密码的用户访问在您的系统上可能有您不小心创建的没有密码的用户。要防止此类用户访问服务器,您可以将 sshd_config 文件中的 PermitEmptyPasswords 行值设置为 no 。PermitEmptyPasswords no4、限制登录/访问尝试默认情况下,您可以根据需要尝试多次输入密码来访问服务器。但是,攻击者可以利用此漏洞对服务器进行暴力破解。通过指定允许的密码尝试次数,您可以在尝试一定次数后自动终止SSH 连接。为此,请更改 sshd_config 文件中的 MaxAuthTries 值。MaxAuthTries 35、使用 SSH 版本 2SSH 的第二个版本发布是因为第一个版本中存在许多漏洞。默认情况下,您可以通过将 Protocol 参数添加到 sshd_config 文件来启用服务器使用第二个版本。这样,您未来的所有连接都将使用第二个版本的SSH。Include /etc/ssh/sshd_config.d/*.conf Protocol 26、关闭TCP端口转发和X11转发攻击者可以尝试通过 SSH 连接的端口转发来访问您的其他系统。为了防止这种情况,您可以在 sshd_config 文件中关闭 AllowTcpForwarding 和 X11Forwarding 功能。X11Forwarding no AllowTcpForwarding no7、使用 SSH 密钥连接连接到服务器的最安全方法之一是使用 SSH 密钥。使用 SSH 密钥时,无需密码即可访问服务器。另外,您可以通过更改 sshd_config 文件中与密码相关的参数来完全关闭对服务器的密码访问。创建 SSH 密钥时,有两个密钥: Public 和 Private 。公钥将上传到您要连接的服务器,而私钥则存储在您将用来建立连接的计算机上。在您的计算机上使用 ssh-keygen 命令创建 SSH 密钥。不要将 密码短语字段 留空并记住您在此处输入的密码。如果将其留空,您将只能使用 SSH 密钥文件访问它。但是,如果您设置了密码,则可以防止拥有密钥文件的攻击者访问它。例如,您可以使用以下命令创建 SSH 密钥:ssh-keygen8、SSH 连接的 IP 限制大多数情况下,防火墙使用自己的标准框架阻止访问,旨在保护服务器。但是,这并不总是足够的,您需要增加这种安全潜力。为此,请打开 /etc/hosts.allow 文件。通过对该文件进行的添加,您可以限制 SSH 权限,允许特定 IP 块,或输入单个 IP 并使用拒绝命令阻止所有剩余的 IP 地址。下面您将看到一些示例设置。完成这些之后,像往常一样重新启动 SSH 服务以保存更改。Linux 服务器安全的重要性 所有服务器管理员都应该考虑数据和数据安全问题。服务器安全是一个非常敏感的问题,因为攻击的主要焦点是 Web 服务器,它们几乎包含有关系统的所有信息。由于大多数服务器都在 Linux 基础架构上运行,因此熟悉 Linux 系统和服务器管理非常重要。SSH 安全只是保护服务器的方法之一。可以通过停止、阻挡或减缓攻击来最大程度地减少您受到的伤害。除了提供 SSH 安全性之外,您还可以实施许多不同的方法来保护您的 Linux 服务器。--- EOF ---
2023年02月15日
104 阅读
2 评论
1 点赞
1
...
23
24
25
...
27