在这里让我们一起学习,一起提高!

SSH 防爆破:动态拉黑恶意IP 不指定

jed , 2025-1-20 09:53 , 服务器技术 , 评论(0) , 阅读(12) , Via 本站原创
前言
SSH(Secure Shell)是用于安全远程登录和管理服务器的协议,但其广泛使用也使其成为攻击者暴力破解的目标。SSH爆破攻击是指攻击者通过不断尝试用户名和密码组合,试图破解服务器的登录凭证。这种攻击不仅会消耗服务器资源,还可能导致系统被入侵。因此,采取有效的措施防止SSH爆破攻击至关重要。

实现方式
在Linux系统中,/etc/hosts.allow和/etc/hosts.deny文件用于控制对服务的访问权限。这两个文件的规则基于TCP Wrapper机制,允许系统管理员定义哪些IP地址或主机可以访问特定服务(如SSH)。

Linux服务器Inode清理优化 不指定

jed , 2024-9-20 10:13 , 服务器技术 , 评论(0) , 阅读(142) , Via 本站原创

for i in /*; do echo $i; find $i |wc -l|sort -nr; done

查找文件数量多的目录,进行清理
在Ubuntu 20.04上安装NVIDIA CUDA Toolkit的步骤如下:

确保你的系统已经安装了NVIDIA的官方驱动。

打开终端,并且添加NVIDIA的CUDA存储库的公钥:

sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub


添加CUDA存储库到你的系统:

echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list


更新软件包列表:

sudo apt update

安装CUDA Toolkit(你可以根据需要安装特定版本的CUDA Toolkit,例如cuda-11-2):

sudo apt install cuda-toolkit-11-2


配置环境变量。将以下内容添加到你的.bashrc或.profile文件中:

export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}


重新加载环境变量:

source ~/.bashrc


或者使用.profile文件的话使用source ~/.profile。

验证安装:

nvcc --version

以上步骤会安装CUDA Toolkit以及NVIDIA驱动,如果你已经安装了驱动,则不需要再次安装。请确保在执行这些步骤之前你已经备份了重要数据,并且你有足够的权限来修改系统设置。
最近在使用 apt-install 命令安装一些包时发现巨卡顿,一个原因肯定是自己家的网速有点慢了,当然最重要的原因还是 apt 源是国外的。网上看到了许多博主的换源过程,但发现他们的操作稍微有点复杂,而且需要修改 source 源文件,为了防止手残导致源文件出错,我直接使用 echo (输出命令)在终端修改源文件,添加源。

依次输入下面几行命令就可以成功将 apt 的源更换为国内的了,

sudo su
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >  /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>  /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >>  /etc/apt/sources.list
apt-get update
apt-get upgrade

使用代理加速docker pull 不指定

jed , 2024-6-7 09:45 , 服务器技术 , 评论(0) , 阅读(312) , Via 本站原创
创建配置目录和文件
docker pull是由守护进程dockerd执行,因此代理需添加在dockerd的systemd配置中。

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo touch /etc/systemd/system/docker.service.d/proxy.conf


编辑proxy.conf文件


[Service]
Environment="HTTP_PROXY=socks5://192.168.2.103:10808"
Environment="HTTPS_PROXY=socks5://192.168.2.103:10808"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"



socks5://192.168.2.103:10808替换为你的本地代理

重载systemd并重启docker服务


sudo systemctl daemon-reload
sudo systemctl restart docker



参考

https://zhuanlan.zhihu.com/p/678307663
https://blog.csdn.net/qf0129/article/details/135729862

centos 安装nodejs 环境 不指定

jed , 2024-1-24 11:47 , 服务器技术 , 评论(0) , 阅读(496) , Via 本站原创
下载源码

wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz


解压源码

tar xvf node-v8.11.4-linux-x64.tar.xz


创建node目录

cd /usr/local/
mkdir node


复制程序

cd node-v8.11.4-linux-x64/
mv * /usr/local/node/


建立连接

ln -s /usr/local/node/bin/node /usr/local/bin/node
ln -s /usr/local/node/bin/npm /usr/local/bin/npm


测试一下

node -v
npm -v

示例一:


namespace service.threads;

//服务主线程
main = function(serviceName){
  import service;
  import thread.event;
  import fsys.log;
  import console;
  import sys.volume;
  import process;
  import fsys.dirWatcher;
  import fsys.dlg.dir;
  
  service.msgbox("服务已启动");
  console.open();
  //取所有分区信息
  var drives = sys.volume.getLogicalDrives()
  for(i,drv in drives){
    var info = sys.volume.getInfo( drv );
    if(info){
       var watchDir = info.drive;
       watcher = fsys.dirWatcher( watchDir )
       for( filename,action in watcher.eachChanges() ){
           fsys.log.print( watchDir + "\" + filename," -> ",action,'\r\n')
        console.log( watchDir + "\" + filename," -> ",action,'\r\n')
           }
      }
    
    }

}

//注意这也是一个独立的线程,用户控制服务停止或启动时都会触发此函数
control = function(control,eventType,pEventData){
    import service;
    import thread.event;
    
    var evtTask = thread.event("NT.SERVICE.CONTROL." + owner.serviceName,false);
    
    if( control == 0x1/*_SERVICE_CONTROL_STOP*/ ){  
        //控制线程中更新srvStatus,第一个参数只要指定需要更新的字段就行了
        service.updateStatus({currentState = 0x3/*_SERVICE_STOP_PENDING*/},owner.serviceName);
        evtTask.set();//使事件对象切换为有信号状态,使wait函数退出  
    }
    
    return 0x0/*_NOERROR*/
}



示例二:


namespace service.threads;

//服务主线程
main = function(serviceName){
  import service;
  import thread.event;
  import fsys.log;
  import console;
  import win.ui;
  import fsys.dirWatcher;
  import fsys.dlg.dir;
  
  //用win.form创建一个线程外包对象
  var winform = win.form();
  winform.messageOnly();//告诉他不需要显示窗口,只保留能处理消息的功能
  var watchDir = "C:";
  //创建监视线程
  winform.thrdWatcher = fsys.dirWatcher.thread(
    function(filename,action,actionText){
      fsys.log.print( watchDir + "\" + filename," -> ",action,'\r\n')
      console.log( watchDir + "\" + filename," -> ",action,'\r\n')
    }, watchDir);
  win.loopMessage();

}

//注意这也是一个独立的线程,用户控制服务停止或启动时都会触发此函数
control = function(control,eventType,pEventData){
    import service;
    import thread.event;
    
    var evtTask = thread.event("NT.SERVICE.CONTROL." + owner.serviceName,false);
    
    if( control == 0x1/*_SERVICE_CONTROL_STOP*/ ){  
        //控制线程中更新srvStatus,第一个参数只要指定需要更新的字段就行了
        service.updateStatus({currentState = 0x3/*_SERVICE_STOP_PENDING*/},owner.serviceName);
        evtTask.set();//使事件对象切换为有信号状态,使wait函数退出  
    }
    
    return 0x0/*_NOERROR*/
}

Python中的Web框架 不指定

jed , 2023-12-20 15:30 , 服务器技术 , 评论(0) , 阅读(491) , Via 本站原创
Python中有许多优秀的Web框架,例如Flask、Django等。这些框架可以帮助我们快速搭建Web应用程序,并实现接口功能。

from flask import Flask
from flask import request
from flask import jsonify

app = Flask(__name__)

# 处理GET请求
@app.route('/api', methods=['GET'])
def api_get():
    # 获取请求参数
    param = request.args.get('param')
    
    # 处理请求参数
    result = {'param': param}
    
    # 返回响应数据
    return jsonify(result)

# 处理POST请求
@app.route('/api', methods=['POST'])
def api_post():
    # 获取请求数据
    data = request.json
    
    # 处理请求数据
    result = {'data': data}
    
    # 返回响应数据
    return jsonify(result)

if __name__ == '__main__':
    app.run()

上面的代码演示了如何使用Flask框架搭建一个简单的接口。其中,@app.route装饰器用于指定接口的URL路径和HTTP请求方法。使用request对象可以获取请求参数和请求数据,使用jsonify函数可以将Python对象转换为JSON格式的响应数据。

python 不指定

jed , 2023-11-17 07:59 , 服务器技术 , 评论(0) , 阅读(542) , Via 本站原创
下载文件 (已下载 297 次)


pip install selenium

pip install pymysql

taskschd.msc

https://www.python.org/ftp/python/3.10.7/python-3.10.7-amd64.exe

https://googlechromelabs.github.io/chrome-for-testing/


下载文件 (已下载 290 次)


=====逆向=========
pip install pyExecJs

pip install curl_cffi

pip install lxml

pip install loguru

python 不指定

jed , 2023-11-17 07:58 , 服务器技术 , 评论(0) , 阅读(484) , Via 本站原创
https://googlechromelabs.github.io/chrome-for-testing/
分页: 1/81 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]