作者归档:Dasmz

基于netcat/nc命令,检测地址端口是否通 2024-03-11

前缀、文档修改记录

20240311 初始化编辑此文章,完稿
20240311 在录制视频后,修正部分内容及描述

章节1、需求描述

业务侧,经常需要检测业务地址,业务端口是否能通,这样的需求,就需要配套的工具来排查。

章节2、检查主机是否存活

常规来说,检测一个业务,是否可达,先检测其云主机ECS是否存活,处于开机状态。一般基于ping其IP地址的路由是否可通的方式来判断。一般来说,优先使用ICMP的ping 方式进行检测排查问题

ping xxx.xxx.xxx.xxx    # 其中xxx.xxx.xxx.xxx为一个有效IP地址

如果IP地址不通,可能为网络真实不通,或可能存在对端防火墙屏蔽ICMP的包

亦可通过mtr / tracert / traceroute 相关命令,测试路由点,是否为中间某个路由点有误。

章节3、检查端口是否可通

一般来说,如果上一个章节的云主机IP地址都不通,优先检查主机故障/防火墙规则/IP地址的路由问题。或者,如果路由正确且明确知道是对端已关闭ICMP包响应,则可进行TCP/UDP端口检查。

本次推荐使用netcat/nc命令,进行端口TCP/UDP是否可达的检查。

3.1、安装netcat

Debian/Ubuntu 安装netcat/nc的命令,且推荐优先安装的版本为 netcat-openbsd,而非netcat-traditional

// OS: Debian 12
root@server:~# apt update
root@server:~# apt-get install netcat-openbsd     
root@server:~# 

3.2、netcat参数释义

root@server:~# nc -h
OpenBSD netcat (Debian patchlevel 1.206-1ubuntu1)
usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]
	  [-m minttl] [-O length] [-P proxy_username] [-p source_port]
	  [-q seconds] [-s source] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout]
	  [-X proxy_protocol] [-x proxy_address[:port]] 	  [destination] 

参数清单:
-4		Use IPv4/仅使用IPv4

-6		Use IPv6/仅使用IPv6

-b		Allow broadcast/允许广播

-C		Send CRLF as line-ending

-D		Enable the debug socket option/启用对套接字的调试

-d		Detach from stdin/不尝试从stdin进行读取

-F		Pass socket fd

-h		This help text/帮助文档

-I length	TCP receive buffer length

-i interval	Delay interval for lines sent, ports scanned/指定发送和接收的文本行之间的延迟时间interval

-k		Keep inbound sockets open for multiple connects/nc在接收完一个请求后不会立即退出,而是会继续监听其他请求

-l		Listen mode, for inbound connects/监听模式

-M ttl		Outgoing TTL / Hop Limit

-m minttl	Minimum incoming TTL / Hop Limit

-N		Shutdown the network socket after EOF on stdin

-n		Suppress name/port resolutions/不使用域名

-O length	TCP send buffer length

-P proxyuser	Username for proxy authentication

-p port		Specify local port for remote connects/为远程连接定义的本地端口号

-q secs		quit after EOF on stdin and delay of secs

-r		Randomize remote ports

-S		Enable the TCP MD5 signature option

-s source	Local source address/指定用于发送数据包的接口的IP地址

-T keyword	TOS value

-t		Answer TELNET negotiation

-U		Use UNIX domain socket

-u		UDP mode/使用UDP,而不是缺省选项TCP

-V rtable	Specify alternate routing table

-v		Verbose/指定详细输出

-W recvlimit	Terminate after receiving a number of packets

-w timeout	Timeout for connects and final net reads/如果连接和stdin空闲超过了timeout秒,则无提示地关闭连接

-X proto	Proxy protocol: "4", "5" (SOCKS) or "connect"/与代理服务器通信时,使用该指定协议。受支持的协议为4(SOCKSv4)、5(SOCKSv5)和connect(HTTP代理)。如果未指定协议,则使用SOCKSv5

-x addr[:port]	Specify proxy address and port/使用proxy_address和port上的代理请求到addr的连接。如果未指定port,则使用代理协议的已知端口(SOCKS为1080,HTTP为3128)

-Z		DCCP mode

-z		Zero-I/O mode [used for scanning]/执行端口扫描。对于TCP端口(缺省),尝试在不发送数据的情况下执行连接扫描(完整三路信号握手)。对于UDP(–u),缺省情况下会发送空UDP包

Port numbers can be individual or ranges: lo-hi [inclusive]
root@server:~# 

3.3、用netcat检测TCP端口

nc -nvz 93.150.241.210 8000-9999    

3.4、用netcat检测UDP端口

nc -nvzu 93.150.241.210 123

端口如果是通的,会类似如下的显示

root@debian12:~# nc -nvz 10.11.11.200 22
Connection to 10.11.11.200 22 port [tcp/*] succeeded!
root@debian12:~# 

3.5、用netcat临时启动一个服务端TCP/UDP监听

如果是为了验证端口,需要自己在服务器上临时启动一个监听,也可以使用netcat临时启动一个服务端的TCP/UDP端口监听。

nc -n -l -k -u 123    # 监听UDP/123
nc -l -k 3389    # 监听TCP/3389

-l 代表netcat 将以监听模式运行;
-k 表示netcat 在接收完一个请求后不会立即退出,而是会继续监听其他请求
-u 使用UDP,而不是缺省选项TCP

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

交换机基础命令 2024-03-04

前缀、文档修改记录

20240304 初始化编辑此文章,完稿

章节1、需求描述

罗列常见,常用的华为/新华三交换机的命令,及标记其含义

章节2、命令清单

dis ver   # 查看设备型号,及版本信息
dis cur   # 查看设备当前的全局配置信息
dis cur | inc stp   # 查看全局配置包含stp信息的配置
dis stop brief   # 查看stp摘要信息
dis cur | inc ntp   # 查看全局配置包含ntp信息的配置
dis ntp sessions   # 查看ntp会话
dis ntp status   # 查看ntp状态
dis cur | inc clock   # 查看全局配置包含时区的配置
dis clock   # 查看设备时间
dis cur | inc snmp   # 查看全局配置包含snmp的配置
dis ip interface brief   # 查看三层接口摘要信息
dis interface description   # 查看所有接口的摘要信息
dis cur interface 10GE1/1/0/1   # 查看接口的配置信息
dis stack   # 查看堆叠状态
dis stack configuration   # 查看堆叠端口
dis dual-active   # 查看堆叠检测
dis alarm active   # 查看硬件告警信息
dis cpu   # 查看CPU利用率
dis memory   # 查看内存利用率
dis device power   # 查看电源模块状态
dis device fan   # 查看风扇模块状态
dis device temperature   # 查看温度信息
dis lldp neighbor brief   # 查看lldp邻居信息
dis interface brief   # 查看接口统计信息
dis logbuffer   # 查看日志信息
dis interface 10GE1//3/0/1 transceiver verbose  # 查看端口收发光,看光模块是否原装
dis eth-trunk 1   # 查看聚合组及成员信息

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

Debian 11/12系统环境上,部署PPTP服务 2024-02-21

前缀、文档修改记录

20240221 初始化编辑此文章,完稿

章节1、需求描述

PPTP(Point-to-Point Tunneling Protocol)作为最简单的组网技术,虽然,安全性不怎么样,但是用来轻量化组网时候,还是挺好用的,本篇博客,介绍一下,在Debian 11/12系统上,部署PPTP服务端的过程。

章节2、部署PPTP服务端

2.1 apt源更新

root@debian:~# apt update

2.2 安装PPTP软件

先确保你的服务器支持PPP

To verify PPP is working, run:

cat /dev/ppp

应该返回如下的信息:

cat: /dev/ppp: No such device or address

root@debian:~# apt install pptpd 
root@debian:~# apt install iptables
root@debian:~# apt install ethtool

root@debian:~# uname -a
Linux debian 5.10.0-28-amd64 #1 SMP Debian 5.10.209-2 (2024-01-31) x86_64 GNU/Linux
root@debian:~# apt list | grep header | grep linux
...
linux-headers-5.10.0-28-amd64/oldstable
...
root@debian:~# apt install linux-headers-5.10.0-28-amd64

2.3 配置文件修改 /etc/pptpd.conf 

/etc/pptpd.conf  中,需要根据你们网络的情况,修改指定一下服务器端的私网IP地址,分发的私网地址段,不要跟现网的地址冲突即可。

增加/修改如下的私网地址(请勿完全照抄,具体请根据你们自身环境实际的来)

#debug    # 可选,排错时候开启
connections 200   # 客户端的数量
localip 192.168.13.254
remoteip 192.168.13.1-200

2.4 修改认证的配置文件 /etc/ppp/chap-secrets

/etc/ppp/chap-secrets 中,指定的是用户名,服务名称,密码,该用户的入站IP等信息

useraaa  pptpd  passB7bFCf  *
userbbb  pptpd  passaE00cf  *

其中 *表示,允许任何来源IP,登录该账号。

2.5 修改指定服务端的DNS服务器IP /etc/ppp/pptpd-options

/etc/ppp/pptpd-options 中,可以指定服务端可自定义DNS服务器

#debug    # 可选,排错时候开启
ms-dns 119.29.29.29
ms-dns 114.114.114.114
ms-dns 8.8.8.8
ms-dns 1.1.1.1

2.6 修改内核模块的加载

root@debian:# cat /etc/modules-load.d/pptpd.conf 
nf_nat_pptp
nf_conntrack_pptp
nf_conntrack_proto_gre   # 这个未找到,奇怪

2.6 修改系统的IPv4转发参数

修改配置文件 /etc/sysctl.conf ,增加一行

net.ipv4.ip_forward = 1

执行如下命令,使其生效

sysctl -p

2.7 创建防火墙iptables的转发规则

# 入站放行端口 47(GRE) / 1723(PPTPD)
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p tcp --dport 47 -j ACCEPT

# 其中ens3名称,根据你网卡实际的名称来写,常见的名称为ens3,ens3,ens5,enp0s3
iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE 

# 转发策略放行,可选
# 允许设置的VPN网段的入站转发
iptables -A FORWARD -s 192.168.13.0/24 -j ACCEPT   
# 允许设置的VPN网段的出站转发             
iptables -A FORWARD -d 192.168.13.0/24 -j ACCEPT                

# 可选
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 192.168.13.0/24 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface ens3 -j ACCEPT

# 保存规则
iptables-save

为了安全性,可选的是,增加对1723/47端口的限源访问。

2.8 启动服务

# 重启服务
systemctl restart pptpd 

# 开启服务
systemctl start pptpd 

# 关闭服务
systemctl stop pptpd 

# 开机启动
systemctl enable pptpd

在腾讯云服务器,本篇文档测试通过,局域网测试通过,测试未通过,估计其云池的大网侧有防火墙类的设备,对GRE有限制。

章节3、特别说明

PPTP/L2TP基本已经过时,是因为其主要的密码算法已经被破解,PPTP的MS-CHAP-v1、MS-CHAP-v2、 MPPE勉强用EAP-TLS 撑个场面,
已经明确破解的算法,MD5、3DES、RC4/RC5、SHA1(Google破解)。

为了数据安全的需求,你已经不应该选择PPTP/L2TP这样的协议了。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

基于OpenEuler 22.03内网环境,编译安装zabbix agent客户端 2024-01-30

前缀、文档修改记录

20240130 初始化编辑此文章,完稿

章节1、需求描述

客户内网侧,有部分国产化的操作系统OpenEuler 22.03,需要对其进行zabbix agent监控客户端的安装,由于没有公网,只能选择编译安装这个路子。

OpenEuler 22.03相当于套皮的CentOS 8系统,这个编译也就没什么太大的难度,只要处理好依赖就可以。

章节2、Zabbix Agent源码资源下载

在zabbix官网,下载 Zabbix 6.0 LTS 源码包 , 选择Zabbix Sources,选择标签 zabbix 6.0 LTS, 点击右下方的 Download按钮。

https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.26.tar.gz

时间戳2024-01-30 16:58 ,编写此文章时,下载到的版本是6.0.26,读者你们根据实际最新版本来。

将下载到的 zabbix-6.0.26.tar.gz 上传到需要部署zabbix agent的OpenEuler 22.03虚拟机 /root/目录下。

章节3、安装依赖

如果有公网环境,有一个靠谱的源,那么安装依赖什么的,就非常简单,但是,目前,客户侧的环境是纯内网,在没有内网源的环境下,只能用过挂载ISO文件的方式,来安装依赖包。

还有,顺便说一句,安装OpenEuler 22.03,比较推荐的分辨率是1920 × 1080,推荐安装系统的时候,就安装 Standard / Development Tools这两个包,大约需要安装865个包,常用的依赖包就都安装了,这类系统,如果缺依赖,又是内网环境,会挺麻烦的,机房类的现场实施,最好提前准备好ISO镜像包。

# 如果是公网
root@SERVER:~# dnf install gcc make pcre-devel

# 如果是内网,如果没有更好的办法安装依赖,推荐挂载对应系统的 openEuler-22.03-LTS-everything-x86_64-dvd.iso 带everything标签的,这种满配的镜像。
root@SERVER:~# mkdir /mnt/iso
root@SERVER:~# mount -t iso9660 -o loop /root/openEuler-22.03-LTS-x86_64-dvd.iso /mnt/iso
root@SERVER:~# cat > openeuler.repo << EOF
[OpenEulerBase]
name=OpenEuler 22.03 base
baseurl=file:///mnt/iso/
# gpgkey=file:///mnt/iso/
# gpgcheck=1    # 1表示检查 0表示不检查
gpgcheck=0
enabled=1
EOF
root@SERVER:~# dnf clean all
root@SERVER:~# dnf update

章节4、编译安装zabbix agent

4.1、增加用户和组

# 增加用户和组
root@SERVER:~# groupadd zabbix 
root@SERVER:~# useradd -g zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix 

4.2、检查一下依赖

确认如下的gcc/make/pcre的依赖包,是否安装了,如果没有,参考前一个章节

root@SERVER:~# dnf install  gcc make pcre-devel 

4.3、编译zabbix agent 6.0 LTS

编译安装 6.0.26 LTS版本的过程如下,且假设源码包存放位置为 /root/src/zabbix-6.0.26.tar.gz

root@SERVER:~# cd /root/src/
root@SERVER:~# tar -zxf zabbix-6.0.26.tar.gz 
root@SERVER:~# cd zabbix-6.0.26
root@SERVER:~# mkdir -p /usr/local/zabbix /var/log/zabbix /etc/zabbix
root@SERVER:~# ./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix --enable-agent 
root@SERVER:~# make 
root@SERVER:~# make install 
root@SERVER:~# chown -R zabbix:zabbix /usr/local/zabbix/ /var/log/zabbix /etc/zabbix

本次编译安装后,

zabbix agent 执行文件路径 /usr/local/zabbix/sbin/zabbix_agentd

zabbix agent 配置文件路径 /etc/zabbix/zabbix_agentd.conf

4.4、修改zabbix agent的执行文件和配置文件

4.4.1、修改配置文件,路径 /etc/zabbix/zabbix_agentd.conf

PidFile=/var/log/zabbix/zabbix_agentd.pid 
LogFile=/var/log/zabbix/zabbix_agentd.log 
Server=192.168.112.170    #Zabbix服务端ip地址 
ServerActive=192.168.112.170    #Zabbix服务端ip地址 
Hostname=someywname    #必须与在Zabbix WEB管理页面创建主机时的hostname一致 

4.4.2、复制并修改执行文件

root@SERVER:~# cp /root/src/zabbix-6.0.26/misc/init.d/tru64/zabbix_agentd /etc/init.d/zabbix_agentd
root@SERVER:~# chmod +x /etc/init.d/zabbix_agentd

修改配置文件 /etc/init.d/zabbix_agentd 修改DAEMON/PIDFILE两行内容

DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
PIDFILE=/var/log/zabbix/zabbix_agentd.pid

可以临时测试一下

/etc/init.d/zabbix_agentd  start    # 开启
/etc/init.d/zabbix_agentd  stop    # 关闭

4.5、配置开机启动服务

配置开机启动的服务项 /etc/systemd/system/zabbix-agent.service

[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Type=simple
User=zabbix
Group=zabbix
Restart=on-failure
PIDFile=/var/log/zabbix/zabbix_agentd.pid
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf 


[Install]
WantedBy=multi-user.target

4.6、开启zabbix-agent服务

root@SERVER:~# systemctl daemon-reload
root@SERVER:~# systemctl restart zabbix-agent
root@SERVER:~# systemctl enable zabbix-agent

附录1、视频操作演示

暂空

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

基于Debian/Ubuntu环境,安装部署Zabbix Server 2024-1-17

前缀、文档修改记录

20240117 初始化编辑此文章,完稿

章节1、需求描述

作为在资源监控体系中,比较出名的一名猛将,zabbix当前无疑是比较靠谱的存在,本页博客,将介绍一下,在当前时间”2024-01-17 12:25″部署zabbix-server的操作步骤,当前时间部署的版本为6.0 LTS版本,这样,能满足比较长时间的运行需求。

章节2、环境版本说明

操作系统环境:Ubuntu 22.04 LTS

Zabbix Server:6.0 LTS https://www.zabbix.com/

章节3、部署步骤

3.0、先保证系统的库更新

root@server:~# apt update
root@server:~# apt upgrade
root@server:~# reboot   # 首次更新完,重启一下

3.1、修改主机的名称

root@server:~# echo "ZabbixServer"  > /etc/hostname

3.2、修改时区

root@server:~# dpkg-reconfigure tzdata

选择 Asia/Shanghai ,即东八区,亚洲/上海

3.3、安装中文语言包(比较重要)

root@server:~# dpkg-reconfigure locales

选择语言包,一般,需要把中文的zh_CN.UTF-8勾选上,就可以满足基本的日常需求。

3.4、安装zabbix

3.4.1、选择版本

打开Zabbix官网, https://www.zabbix.com/ ,在下载页面,选择对应你系统的版本,数据库的版本的zabbix,原则上,选最新的LTS版本为佳。

我这里选择的 6.0 LTS / Ubuntu / 22.04 / Server / MySQL / Nginx ,操作的时间戳2024-1-17 09:45

3.4.2、添加zabbix的库到系统

在前面一步中,选择好了各个版本后,在它官网的下面,下载链接会刷新到你选择的版本

确认版本正确的,就执行即可。

root@server:~# apt update
root@server:~# apt install wget
root@server:~# wget --no-check-certificate  https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
root@server:~# dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
root@server:~# apt update

3.4.3、安装zabbix-server

因为zabbix-server这台机器,本身也是需要监控到的,所以,命令中包含安装zabbix-agent

root@server:~# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent

3.4.4、安装Mariadb数据库

MySQL数据库是比较经典的数据库,用它或者用PostgreSQL都行,zabbix都是支持的,我这里,前面在选版本的时候,选择的是MySQL的deb包,这里就协同安装对应的库。

但是,这里,对于MySQL,更推荐用Mariadb版本,安装mariadb-server,本次安装到的版本是 “Server version: 10.6.12-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04”

时间戳 2024-01-17 10:44

root@server:~# apt install mariadb-server  
root@server:~# mysql_secure_installation   # 初始化数据库,配置密码等,数据库root密码务必保证复杂度,并记牢固。

3.4.5、为zabbix-server配置专用的数据库实例

这里可以自定义的参数是,zabbix用途的,数据库实例名称,用户名,密码,但是因为业务简单,仅为监控任务,非生产业务数据库,实例名称zabbix,用户名zabbix,我一般不修改,保证密码复杂度,保证数据库本地监听即可。

root@server:~# mysql -uroot -p
password为你上一步设置的数据库root密码
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';   # 修改zabbix数据库用户的密码,这个不跟root的一样,也要保证一定的密码强度。
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

导入zabbix库的表,表结构等模板信息。

root@server:~# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql –default-character-set=utf8mb4 -uzabbix -p zabbix

导入库表完成后,修改一下 存储函数相关的数据库参数

root@server:~# mysql -uroot -p
password为设置的数据库root密码
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

3.4.6、 配置zabbix-server

配置文件路径 /etc/zabbix/zabbix_server.conf

修改配置文件

DBPassword=password    #其中password为前面设置的数据库内zabbix用户的密码

3.4.7、修改Nginx监听的端口,监听的名称

修改配置文件 /etc/zabbix/nginx.conf

# listen 8080;
# server_name example.com;

3.4.8、增加楷体中文字体

下载楷体字体文件,上传到服务器的字体目录下 /usr/share/zabbix/assets/fonts/ ,并给到全部的读写权限。 该操作可以避免在 zabbix 监控图上中文不显示,或者说显示为框框的问题。

将原有的graphfont.ttf软链接指向 刚刚上传的楷体字体。

下载字体 楷体simkai.ttf

root@server:~# cd /usr/share/zabbix/assets/fonts
root@server:~# chmod 777 simkai.ttf 
root@server:~# ls -l
total 11512
lrwxrwxrwx 1 root root       38 Jan 17 10:20 graphfont.ttf -> /etc/alternatives/zabbix-frontend-font
-rwxrwxrwx 1 root root 11787328 Jan 17 11:03 simkai.ttf
root@server:~# mv graphfont.ttf bak.graphfont.ttf.20240117
root@server:~# ln -s simkai.ttf graphfont.ttf
root@server:~# ls -l
total 11512
lrwxrwxrwx 1 root root       38 Jan 17 10:20 bak.graphfont.ttf.20240117 -> /etc/alternatives/zabbix-frontend-font
lrwxrwxrwx 1 root root       10 Jan 17 11:05 graphfont.ttf -> simkai.ttf
-rwxrwxrwx 1 root root 11787328 Jan 17 11:03 simkai.ttf
root@server:~# 

3.4.9、重启一下软件进程

root@server:~# systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
root@server:~# systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm

3.5、WEB页面上初始化配置Zabbix

使用你电脑的浏览器,登录你服务器的地址 http://yourserverip:port/ 即可进入初始化设置的页面。

默认语言,选择中文(zh_CN),下一步

必要条件检测,页面,看一下,都应该是OK,绿色的状态,即可

数据库页面,一般库和zabbix-server部署在同一台服务器的,写一个zabbix用户的密码就行。如果修改过数据库实例,用户,某些参数的,就必须这里也修改一致。

填写一个主机名称 Zabbix,时区,东8区,亚洲/上海

基本大功告成。

它为Zabbix生成了 conf/zabbix.conf.php

3.6、登录Zabbix-Server了

初始化完成,就可以登录你配置的zabbix-server了,默认的用户名/密码为,默认用户名 Admin , 默认密码 zabbix 。

默认密码是不安全的,修改到一个复杂密码。点页面左侧管理,用户,修改密码

再后面,就是添加你需要监控的资产了,不在此篇章博客表述了。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

基于Ubuntu/Debian系统,安装LNMP 2024-1-6

前缀、文档修改记录

2024-01-06 初始化编辑此文章
2024-02-20 更新一次

此博客未更新完成~~~

章节1、需求描述

LNMP是比较受欢迎的博客架构模式,本次教程,系统环境选择Ubuntu/Debian系列,该系列有比较成熟的软件库,安装Nginx、数据库、PHP都很便捷。Nginx、MySQL/MariaDB这个一般我就用系统自带的版本,PHP编译安装PHP7.4版本,不用最新版本,以便满足兼容性。

Nginx可选自己编译安装最新的版本。

有条件的使用站库分离的架构,数据库放到大厂的云服务器上,会比较靠谱。

章节2、安装步骤

2.1、安装Nginx

root@SERVER:~# apt update
root@SERVER:~# apt install nginx

2.2、安装MySQL/MariaDB

root@SERVER:~# apt install mysql-server

初始化数据库的安全设置,最重要的就是设置数据库用户root的超级密码,务必保存好密码

root@SERVER:~# mysql_secure_installation

设置用户的权限

root@SERVER:~# mysql -u root -p

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

mysql> FLUSH PRIVILEGES;

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

2.3、安装PHP

该源包含了php-fpm这个包,需要补上

root@SERVER:~# add-apt-repository universe
root@SERVER:~# apt install php-fpm php-mysql

章节3、Nginx配置文件

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name your_domain;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

2.4、测试

测试Nginx、PHP,创建文件 /var/www/html/info.php

<?php
phpinfo();
?>

测试连接

http://your_server_domain_or_IP/info.php

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

微软Microsoft Copilot 分流规则 2023-12-31

前缀、文档修改记录

2023-12-31 初始化编辑此文章
2024-01-07 更新,增加规则

章节1、需求描述

微软Microsoft Copilot,发布,可以免费使用其内置的GPT-4模型,需要进行规则的匹配,以满足访问的需求

章节2、需要增加的规则,以Shadowrocket客户端为例

为了简化规则,并且不会影响Windows系统,推荐以DOMAIN规则进行最小化匹配,需要添加如下的域名到 Shadowrocket/配置/default.conf/规则 里面。

位置路径,Shadowrocket /配置 /default.conf /i /规则 /+

类型, DOMAIN

策略,PROXY

域名清单:

th.bing.com
www.bingapis.com
sapphire.api.microsoftapp.net
prod.rewardsplatform.microsoft.com
c.clarity.ms
c.bing.com
sydney.bing.com
www.clarity.ms
p.clarity.ms
dealczars.bing-shopping.microsoft-falcon.io
shopping.bing-shopping.microsoft-falcon.io
cdn.jsdelivr.net
logincdn.msauth.net
account.live.com
acctcdn.msauth.net
odc.officeapps.live.com
substrate.office.com
ssl.bing.com
services.bingapis.com
location.microsoft.com
api.msn.com
gateway.bingviz.microsoftapp.net
in.appcenter.ms
www.bing.com
self.events.data.microsoft.com
login.microsoftonline.com

在规则页面,以上域名,需逐个添加。

章节3、高级添加方式,点击default.conf,选择编辑纯文本方式

高级的批量添加规则方式,点击default.conf,选择编辑纯文本方式,在 [Rule]标签位置下方,新开一行,贴入如下的域名清单内容,即可

# Microsoft Copilot by Dasmz Version 2023-12-31
DOMAIN,th.bing.com,PROXY
DOMAIN,www.bingapis.com,PROXY
DOMAIN,sapphire.api.microsoftapp.net,PROXY
DOMAIN,prod.rewardsplatform.microsoft.com,PROXY
DOMAIN,c.clarity.ms,PROXY
DOMAIN,c.bing.com,PROXY
DOMAIN,sydney.bing.com,PROXY
DOMAIN,www.clarity.ms,PROXY
DOMAIN,p.clarity.ms,PROXY
DOMAIN,dealczars.bing-shopping.microsoft-falcon.io,PROXY
DOMAIN,shopping.bing-shopping.microsoft-falcon.io,PROXY
DOMAIN,cdn.jsdelivr.net,PROXY
DOMAIN,logincdn.msauth.net,PROXY
DOMAIN,account.live.com,PROXY
DOMAIN,acctcdn.msauth.net,PROXY
DOMAIN,odc.officeapps.live.com,PROXY
DOMAIN,substrate.office.com,PROXY
DOMAIN,ssl.bing.com,PROXY
DOMAIN,services.bingapis.com,PROXY
DOMAIN,location.microsoft.com,PROXY
DOMAIN,api.msn.com,PROXY
DOMAIN,gateway.bingviz.microsoftapp.net,PROXY
DOMAIN,in.appcenter.ms,PROXY
DOMAIN,www.bing.com,PROXY
DOMAIN,self.events.data.microsoft.com,PROXY
DOMAIN,login.microsoftonline.com,PROXY

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

通过netboot方式,自定义安装VPS的操作系统 2023-12-19

前缀、文档修改记录

2023-12-19 初始化编辑此文章

章节1、需求描述

VPS的商家通常会提供一些模板系统,不过有的提供的版本,相对比较少,或者系统模板相对有点问题,这个时候,我们就需要自定义安装系统,

通过netboot的方式,我们可以轻松的安装到自己想要的操作系统版本,非常编辑

章节2、环境需求

2.1 虚拟机需为KVM虚拟化

2.2 商家支持WEB方式的VNC@HTML5的Console方式

章节3、netboot官方网站

Netboot的官方网站: https://netboot.xyz/

章节4、重装系统

以下为,示例为安装Debian 12的步骤,其他操作系统类似。着重强调一下,要商家能支持HTML5/VNC的Console,不然,更推荐用合适的一键无值守的dd脚本。用netboot这个方式安装的更加贴近ISO自主安装的。

假设原系统为Debian/Ubuntu系列,需要安装为Debian 12版本。

//注释   Debian/Ubuntu
//注释   Install grub-imageboot
root@server:~# apt update
root@server:~# apt install grub-imageboot

//注释   Download netboot.xyz ISO
root@server:~# mkdir /boot/images
root@server:~# cd /boot/images
root@server:~# wget https://boot.netboot.xyz/ipxe/netboot.xyz.iso

//注释   Update GRUB menu to include this ISO
root@server:~# update-grub2
root@server:~# reboot

执行完成后,在你VPS商家的网站上,激活VNC,查看

在开机启动的grub页面,选择netboot方式。

设置网卡的序号,比如,我这里设置为 net0

设置服务器的IP地址,这里,看你的服务器商家提供的信息,实际填写,不然网络不通

配置完IP地址、掩码、网关、DNS服务器,就到了安装选择页面

选择,第一个, Linux Network Installs (64-bit)

选择,你需要安装的Linux系统分支版本,我这里示例选择的是 Debian 12.0

选择安装的方式,服务器资源规格不高的,一般最简单的Text Based Install方式即可

部分内存容量较低的服务器,会进入低内存模式安装,安装Debian系统不在本次教程示例范围,安装好系统,正常启动即可。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

公网Windows主机的安全加固,白名单IP方式访问Windows远程桌面 2023-12-06

前缀、文档修改记录

2023-12-06 初始化编辑此文档

章节1、需求描述

买了一台海外的VPS,配置足够安装Windows系统,商家也提供Windows Server 2019的模板,于是就运行了一个WindowsServer系统,但是,会不断面临远程桌面连接的RDP密码爆破,安全加固也就是一个必然的需要。

章节2、措施

提醒一下,即便修改远程桌面的端口,也还是会被扫描及暴力尝试密码的。故而,修改远程桌面的端口,修改默认的用户名,这样的措施,不足以对安全进行补充。

2.1、屏蔽端口入站

查看Windows系统内,用netstat -an 命令,查看有哪些监听的端口,屏蔽它的入站

netstat -an 

常规来说,需要增加端口屏蔽,一个是TCP的,一个是UDP的,我这里是一台美国Windows服务器,不用打印机这样的功能,基本上,初始的监听端口,除了3389远程桌面,都可以屏蔽入站

防火墙 入站 TCP BLOCK 135,137,138,139,445,5357,5985,47001,49664,49665,49666,49667,49668,49669,49683

防火墙 入站 UDP BLOCK 
123,135,137,138,139,445,3702,5353,5355,5985,61476

2.2、屏蔽入站IPv6相关

因为这台服务器仅有IPv4公网地址,无IPv6公网地址,我这里,干脆就把防火墙/入站列表里,涉及到IPv6的,全部禁用了。

2.3、关闭”文件和打印机共享”

网络,网络连接的属性里,关闭文件和打印机共享,关闭IPv6地址,这两个功能。

2.4、增加3389防火墙的访问白名单

通过命令的方式可以批量添加白名单的IP地址,比在防火墙规则里,一个个添加,要方便很多,修改name参数为你的远程桌面连接的名字,修改remoteip的值为一系列白名单的IP地址,这样的设置,将仅允许你通过这些白名单IP访问WindowsServer的远程桌面端口,完成3389端口的加固、安全防护。

netsh advfirewall firewall set rule name="Remote Desktop - User Mode (UDP-In)" new remoteip=103.13.1.204,49.6.210.150,222.5.118.32
netsh advfirewall firewall set rule name="Remote Desktop - User Mode (TCP-In)" new remoteip=103.13.1.204,49.6.210.150,222.5.118.32

章节3、操作演示

附录1、

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

Linux环境下的批量文件重命名 2023-11-06

前缀、文档修改记录

2023-11-06 创建文章

章节1、需求描述

在前期的视频里,给大家介绍过部署Jellyfin媒体服务器,其中有一点问题,是后来发现的,就是视频文件的文件名,过于长,导致Jellyfin媒体服务器,识别的集数排序错乱,那么正确、简短、有效的视频文件命名就非常重要了,本篇文章给大家介绍一下,在Linux系统下,如何批量重命名视频文件。

章节2、情况描述

样例的源文件是,国产漫画,一念永恒,第二季,集数是54。

[GM-Team][国漫][一念永恒 第2季][Yi Nian Yong Heng 2nd Season][2022][01][AVC][GB][1080P].mp4
[GM-Team][国漫][一念永恒 第2季][Yi Nian Yong Heng 2nd Season][2022][02][AVC][GB][1080P].mp4
[GM-Team][国漫][一念永恒 第2季][Yi Nian Yong Heng 2nd Season][2022][03][AVC][GB][1080P].mp4
[GM-Team][国漫][一念永恒 第2季][Yi Nian Yong Heng 2nd Season][2022][04][AVC][GB][1080P].mp4
...
...
...
[GM-Team][国漫][一念永恒 第2季][Yi Nian Yong Heng 2nd Season][2022][54][AVC][GB][1080P].mp4

需要将如上的文件,重命名到简短的格式样式

一念永恒.S02.E01.mp4
一念永恒.S02.E02.mp4
一念永恒.S02.E03.mp4
...

在Linux环境下,自然不会一个个重复的手工去重命名,Do it in a better way。

章节3、本期需使用到的Linux命令

ls
awk
cut
tr / sed

章节4、操作命令

#  切割的字节位置不固定,根据实际的来,还有,集数所在的位置也根据不同的电视剧,命名时候有区别,所在substr的位置,也是根据逐步试出来的。
ls -l *mp4 | cut -b 39- |  awk '{print "mv \""$0"\" \"一念永恒.S03.E"substr($0,77,2)".mp4\""}'

确认拼接好的命名,语法没有问题后,就可以衔接管道到bash执行即可,命令如下:

ls -l *mp4 | cut -b 39- |  awk '{print "mv \""$0"\" \"一念永恒.S03.E"substr($0,77,2)".mp4\""}'  | sh

章节5、操作演示视频@Youtube

附录1、

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨