Linux VPS一键屏蔽指定国家所有的IP访问

说明:对于屏蔽指定国家所有的IP的手动教程已经讲了,查看:Linux VPS使用ipset快速屏蔽指定国家的IP访问,虽然步骤很简单,但为了更白的小白,博主写了个一键脚本,这里分享下。

提示:据一些同学需求,博主也发了个白名单教程,查看:使用ipset设置防火墙端口白名单,只让指定国家访问

使用

本脚本适用于CentOSDebianUbuntu等常用系统。

使用root运行以下命令:

wget https://www.moerats.com/usr/shell/block-ips.sh
chmod +x block-ips.sh
./block-ips.sh

封禁ip时会要求你输入国家代码,代码查看:点击进入。记住所填参数均为小写字母。比如JAPAN (JP),我们就输入jp这个参数。

演示

1、封禁IP
请输入图片描述

2、查看封禁列表
请输入图片描述

3、解封IP
请输入图片描述

总结

一键屏蔽可以有效帮我们暂时防止一些CC攻击等,或者你不想让哪国的人进入博客也可以用,注意屏蔽cn的时候需谨慎,不然你SSH就上不去了。

 

转自:https://www.moerats.com/archives/585/

Centos8和RockyLinux 重启网卡命令

在centos8和现在刚出的RockyLinux里面通过 systemctl start network 已经不行了,提示找不到network,因为命令改变了,同样centos8上最小化安装ifconfig 这个命令也没了,不过ip a 查看IP地址还可以

通用的命令

ifdown ens33  关闭网卡名叫ens33的网卡

ifup ens33      开启网卡名叫ens33的网卡

查看IP地址

ip a

Centos8和RockyLinux 管理网卡新命令 nmcli

 

connectionc都可以

 

1、重载网卡 ,重启网卡之前一定要重新载入一下配置文件,不然不能立即生效

nmcli connection reload 

2、开启网卡

nmcli c up ens33

3、关闭网卡

nmcli c down ens33

4、显示网卡的配置信息和运行状态

nmcli

5、查看网卡的状态

nmcli device status

6、查看所有网卡设备详细信息

nmcli device show

7、查看ens33网卡设备详细信息

nmcli device show ens33

8、直接添加一个IP地址10.0.0.200

nmcli c modify ens33 +ipv4.address 10.0.0.200/8
使其生效
nmcli c up ens33

OVH独立服务器/VPS添加新IP

若添加单个IP

cd /etc/sysconfig/network-scripts/

vi ifcfg-eth0:0

DEVICE="eth0:0"
ONBOOT=yes
BOOTPROTO=static
IPADDR="你的IP"
NETMASK="255.255.255.255"
BROADCAST="你的IP"

如果还有其他IP

vi ifcfg-eth0:1

设置完成后重启网络

service network restart

centos8/rocky Linux8的网卡重启命令:

nmcli connection reload 

查看网卡绑定情况
ip addr show eth0

CentOS 7 配置静态 IP 地址

在 CentOS 7 上配置静态 IP 地址需要编辑网络配置文件。请按照以下步骤进行操作:

  1. 打开终端或通过 SSH 连接到 CentOS 7 服务器。
  2. 使用文本编辑器打开网络配置文件。在 CentOS 7 上,网络配置文件位于 /etc/sysconfig/network-scripts/ 目录下,文件名通常以 ifcfg-ensX 的形式表示(X 为数字)。例如,编辑文件 ifcfg-ens33
    cd /etc/sysconfig/network-scripts/
    vi ifcfg-ens33
  3. 在编辑器中,您会看到类似以下的配置内容:
    TYPE=”Ethernet”
    PROXY_METHOD=”none”
    BROWSER_ONLY=”no”
    BOOTPROTO=”dhcp”
    DEFROUTE=”yes”
    IPV4_FAILURE_FATAL=”no”
    IPV6INIT=”yes”
    IPV6_AUTOCONF=”yes”
    IPV6_DEFROUTE=”yes”
    IPV6_FAILURE_FATAL=”no”
    IPV6_ADDR_GEN_MODE=”stable-privacy”
    NAME=”ens33”
    UUID=”xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  4. BOOTPROTO 的值从 dhcp 修改为 static,表示使用静态 IP 地址。在 BOOTPROTO 行下方添加以下配置项,以设置静态 IP 地址、子网掩码、网关地址和 DNS 服务器的值:
    IPADDR=”192.168.31.66”
    NETMASK=”255.255.255.0”
    GATEWAY=”192.168.31.1”
    DNS1=”8.8.8.8”
  5. 保存并关闭文件。在 vi 编辑器中,按下 Esc 键,然后输入 :wq 并按回车键保存退出。
  6. 重启网络服务使配置生效。在终端中执行以下命令:
    systemctl restart network
  7. 检查 IP 地址是否已生效。您可以使用以下命令之一来验证 IP 地址是否已设置为静态:
    ip addr show ens33 # 或者 ip addr show eth0(取决于您的网络接口名称)
  8. 如果一切正常,您应该能够看到您设置的静态 IP 地址已应用于相应的网络接口。
    请注意,这些步骤仅适用于 CentOS 7。如果您使用的是其他 Linux 发行版或操作系统,请参考相应的文档或手册进行配置。另外,在进行任何网络配置更改之前,请确保您具有足够的权限,并备份相关的网络配置文件以防意外情况发生。

Debian 12 / Ubuntu 24.04 安装 Nginx

Nginx (Engine X) 是一个高性能的 HTTP 和反向代理 Web 服务器(软件),它占有内存少,并发能力强,驱动了超过 1/3 的互联网网站。

在本文中,我们将介绍如何在 Debian 12 和 Ubuntu 24.04 系统上安装 Nginx。

准备

适用系统

本教程适用于以下 Linux 发行版:

  • Debian 12
  • Debian 11
  • Debian 10
  • Ubuntu 24.04
  • Ubuntu 22.04
  • Ubuntu 20.04

IDC 防火墙

一些服务器提供商可能为服务器预装了防火墙、有网络访问限制,例如国外的 Google Cloud,国内的阿里云、腾讯云等等,此类情况需要去管理面板放行 Nginx 暴露的端口 80、443。

系统

确保当前用户有 sudo 执行权限;且 80、443 端口没有被其它程序(如 Apache) 占用、或者防火墙工具(如 UFW)屏蔽。

安装 Nginx

1. 更新系统

运行以下命令更新一下系统,

apt update && apt upgrade

2. 安装 Nginx

Nginx 在 Debian / Ubuntu 的默认软件仓库中,可以使用 apt 一键安装,

apt install nginx

3. 检查 Nginx 运行状态

在安装完成后,系统会自动启动 Nginx,使用以下命令检查 Nginx 运行状态,

systemctl status nginx
Debian 12 / Ubuntu 24.04 安装 Nginx插图

表示 Nginx 安装成功。在浏览器输入、访问服务器 IP,

Debian 12 / Ubuntu 24.04 安装 Nginx插图1

会看到默认的 Nginx 欢迎页面,这个页面是 Nginx 自带的,用来告诉用户 Web 服务器已经正确运行。

Nginx 基础管理

下面介绍 Nginx 作为一个 Linux 系统上的软件,如何进行基础的管理。

停止 Nginx,

systemctl stop nginx

启动 Nginx,

systemctl start nginx

重启 Nginx,

systemctl restart nginx

重载配置,

systemctl reload nginx

默认情况下,服务器启动时会自动启动 Nginx。如果不希望这样,可以输入:

systemctl disable nginx

重新允许 Nginx 在启动时自动启动,

systemctl enable nginx

在实际使用的时候,修改配置后,使用重载配置或重启命令;Nginx 因为各种原因停止,使用启动命令,这些情况比较常见。

卸载 Nginx

首先停止正在运行中的 Nginx,

systemctl stop nginx

如果要删除 Nginx 服务,保留配置文件,运行

apt remove nginx

要删除 Nginx 服务以及配置文件,运行

apt purge nginx

删除与 Nginx 相关的依赖包,

apt autoremove

删除 Nginx 相关的文件或目录(如果存在),

rm -rf /etc/nginx /etc/nginx/

检查是否卸载完成,

nginx -v

Uptime Kuma 安装教程:一款易于使用的自托管 VPS 在线时间监控

一、Uptime Kuma 介绍

主要特性:

  • 监控 HTTP(s) / TCP / HTTP(s) 关键字 / HTTP(s) Json 查询 / Ping / DNS 记录 / 推送 / Steam 游戏服务器 / Docker 容器的正常运行时间
  • 精美、反应式、快速的 UI/UX
  • 通过 Discord、Gotify、Slack、Pushover、电子邮件 (SMTP) 和 90 多种通知服务发送通知,请单击此处查看完整列表
  • 20 秒间隔
  • 多种语言
  • 多个状态页面
  • 将状态页面映射到特定域
  • 平图
  • 证书信息
  • 2FA 支持

二、Uptime Kuma 安装方法

使用 Docker 安装(推荐):

docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Uptime Kuma 现已在 http://localhost:3001 上运行

不使用 Docker 进行安装:

要求:

  • 平台
    • ✅ 主要 Linux 发行版,例如 Debian、Ubuntu、CentOS、Fedora 和 ArchLinux 等。
    • ✅ Windows 10 (x64)、Windows Server 2012 R2 (x64) 或更高版本
    • ❌ Replit / Heroku
  • Node.js 14 / 16 / 18 / 20.4
  • npm >= 7
  • git
  • pm2 – 用于在后台运行 Uptime Kuma

安装方法:

# Update your npm to the latest version
npm install npm -g

git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

# Option 1. Try it
node server/server.js

# (Recommended) Option 2. Run in background using PM2
# Install PM2 if you don't have it:
npm install pm2 -g && pm2 install pm2-logrotate

# Start Server
pm2 start server/server.js --name uptime-kuma

更多 PM2 指令:

# If you want to see the current console output
pm2 monit

# If you want to add it to startup
pm2 save && pm2 startup

至此已经完成了 Uptime Kuma 的安装,可以正常使用了。

 

 

Uptime Kuma 是一款用于监测网络服务和服务器可用性的开源工具。它具有以下特点和功能,下面是对 Uptime Kuma 的评测介绍:

1. 监测多种网络服务: Uptime Kuma 可以监测多种网络服务,包括网站、API、数据库、DNS等,确保这些服务的正常运行。

2. 监测多个服务器: 它可以同时监测多个服务器,适用于企业或个人管理的多个服务器场景。

3. 实时通知: 当监测到服务不可用或出现故障时,Uptime Kuma 可以通过电子邮件、短信或Slack等方式及时通知管理员,帮助快速响应问题。

4. 可视化仪表盘: Uptime Kuma 提供直观的仪表盘,展示各项监测指标和历史记录,让管理员可以轻松地查看服务的可用性情况。

5. 定时检测: 工具可以根据管理员的设置,定时检测网络服务的可用性,以确保持续监测。

6. 开源和自定义性: Uptime Kuma 是开源的,用户可以根据需要自定义和扩展功能,以适应不同的监测需求。

7. 轻量级和易部署: 它是一个轻量级的监测工具,易于安装和配置,不需要复杂的设置。

8. 社区支持: Uptime Kuma 拥有一个活跃的社区,用户可以获得来自社区的支持和解决方案。

总的来说,Uptime Kuma 是一个功能强大且灵活的网络服务监测工具,适用于企业和个人,可帮助他们及时发现和解决网络服务中的问题,确保服务的高可用性。

CentOS 7 修改系统时间或时区

0x00 修改系统时间

安装在虚拟机上的CentOS7的时间分为系统时间和硬件时间。二者都修改,重启系统(init 6 )才会永久生效。

修改步骤如下

1.修改系统时间

查看当前系统时间

date

修改当前系统时间

date -s "2022-7-11 18:20:30“

 

2.修改硬件时间

查看硬件时间

hwclock --show

修改硬件时间

hwclock --set --date "2022-7-11 18:20:30"

同步系统时间和硬件时间

hwclock --hctosys

保存时钟

clock -w

重启系统(init 6)后便发现系统时间被修改了

 

0x01 修改时区

方法1

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

 

方法2

使用timedatectl命令

timedatectl list-timezones |grep Shanghai
timedatectl set-timezone Asia/Shanghai

Centos7查看CPU使用率、内存使用率、磁盘使用率

一、查看CPU使用率

1. top 命令

Centos7查看CPU使用率、内存使用率、磁盘使用率插图
top命令可以看到总体的系统运行状态和cpu的使用率 。
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
注:99.0 id,表示空闲CPU,即CPU未使用率,100%-99.0%=1%,即系统的cpu使用率为1%。

2、vmstat

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值

Centos7查看CPU使用率、内存使用率、磁盘使用率插图1
包括服务器的CPU使用率,
内存使用,
虚拟内存 交换情况,
IO读写情况
相比top,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况,
而不是单单看到各个进程的CPU使用率和内存使用率。

运行示例

一般vmstat工具的使用是通过

两个数字参数来完成的
第一个参数: 采样的时间间隔数,单位是秒,
第二个参数: 采样的次数
Centos7查看CPU使用率、内存使用率、磁盘使用率插图2

在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

Centos7查看CPU使用率、内存使用率、磁盘使用率插图3

参数详解

Linux 内存监控vmstat命令输出分成六个部分:

1、进程procs

    r:在运行队列中等待的进程数 。
    b:在等待io的进程数 。

2、内存memoy:

    swpd:现时可用的交换内存(单位KB)。 
    free:空闲的内存(单位KB)。
    buff: 缓冲去中的内存数(单位:KB)。
    cache:被用来做为高速缓存的内存数(单位:KB)。

swap交换页面

    si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
    so: 从内存交换到磁盘的交换页数量,单位:KB/秒。

io块设备:

    bi: 发送到块设备的块数,单位:块/秒。
    bo: 从块设备接收到的块数,单位:块/秒。

system系统:

    in: 每秒的中断数,包括时钟中断。
    cs: 每秒的环境(上下文)转换次数。

cpu中央处理器:

    cs:用户进程使用的时间 。以百分比表示。
    sy:系统进程使用的时间。 以百分比表示。
    id:中央处理器的空闲时间 。以百分比表示。

常见诊断:

1、如:r经常大于4且id经常小于40,表示中央处理器的负荷很重。
2、如:bi,bo长期不等于0,表示物理内存容量太小。

每个参数的具体意思如下:

参数:r

表示运行队列(就是说多少个进程真的分配到CPU),
我测试的服务器目前CPU比较空闲,没什么程序在跑,
当这个值超过了CPU数目,就会出现CPU瓶颈 了。
这个也和top的负载有关系,
一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。
top的负载类似每秒的运行队 列。
如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

b

表示阻塞的进程,这个不多说,进程阻塞

swpd

虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,
如果不是程序内存泄露的原因,
那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free

空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

buff

Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,本机大概占用300多M

cache

cache直接用来记忆我们打开的文件,给文件做缓冲,
我本机大概占用300多M
(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,
是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

si

每秒从磁盘读入虚拟内存的大小,如果这个值大于0,
表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
我的机器内存充裕,一切正常。

so

每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi

块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,
默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,
但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,
磁盘写入速度差不多140M每秒

bo

块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。
bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

in

每秒CPU的中断次数,包括时间中断

cs

每秒上下文切换次数,
例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,
这个值要越小越好,太大了,要考虑调低线程或者进程的 数目,
例如在apache和nginx这种web服务器中,
我们一般做性能测试时会进行几千并发甚至几万并发的测试,
选择web服务器的进程可以由进程或 者线程的峰值一直下调,压测,
直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。
系统调用也是,每次调用系统函数,我们的代码就会进入内核 空间,导致上下文切换,
这个是很耗资源,也要尽量避免频繁调用系统函数。
上下文切换次数过多表示你的CPU大部分浪费在上下文切换,
导致CPU干正经事的 时间少了,CPU没有充分利用,是不可取的。

us

用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,
可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

sy

系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id

空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,
us是用户CPU使用率,sy是系统CPU使用率。

wt

等待IO CPU时间。

3、sar

sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。

命令示例:

例如每1秒采集一次CPU使用率,共采集5次。

# sar -u 1 5
Centos7查看CPU使用率、内存使用率、磁盘使用率插图4

进程队列长度和平均负载状态

例如每1秒采集一次,共采集5次。

Centos7查看CPU使用率、内存使用率、磁盘使用率插图5
runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(System load average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

4、dstat

事先安装

[root@DcServer ~]# yum install  dstat -y

每秒cpu使用率情况获取

Centos7查看CPU使用率、内存使用率、磁盘使用率插图6

最占cpu的进程获取

Centos7查看CPU使用率、内存使用率、磁盘使用率插图7

后续在进行补充。。。。。。

转自:https://zhuanlan.zhihu.com/p/356642255

BBR加速脚本(CentOS7*)

注意服务器的系统!

这里以Centos7.x为例子。

以下脚本也是收集的,一般GitHub上也有很多相关脚本,大家也可以自行搜索查看。

1、BBR加速脚本(CentOS7*)

Bash
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"    
chmod +x tcp.sh    
./tcp.sh

2.运行完成将出现以下菜单,可根据需要来安装相对应的核心,之后再打开加速功能。如图所示

BBR加速脚本(CentOS7*) 第1张

以安装BBR plus为例,输入数字2来安装。重启VPS如图:

BBR加速脚本(CentOS7*) 第2张

3.安装成功,重启VPS之后我们重新连接服务器。输入下列指令来启用其BBR plus。

BASIC
./tcp.sh

4.按照脚本菜单选项,选择对应安装的功能,来启用加速。

BBR加速脚本(CentOS7*) 第3张

5.如出现如图所示的信息,则表明BBR的加速功能已成功打开。

BBR加速脚本(CentOS7*) 第4张

6.如果必须安装或是转换其他版本的加速,必须再次打开脚本来进行卸载。卸载完成之后再选择所需的版本进行安装,之后需再次打开脚本来进行功能选择。

注意Centos8.x不能安装BBR PLUS加速,会导致连不上服务器的情况。

GitHub原地址:https://github.com/chiakge/Linux-NetSpeed