首页
站点统计
技术支持
友链
关于我
Search
1
麒麟操作系统安装达梦数据库DM8 V8版本
240 阅读
2
苹果笔记本实现用户登录钉钉通知功能
229 阅读
3
CentOS7官方停止支持,yum源变更
227 阅读
4
台式电脑DIY配置单之2024.06
210 阅读
5
Ubuntu22.04配置vsftp服务
202 阅读
默认分类
电脑3C
Linux运维
生活杂谈
游戏娱乐
Windows专题
登录
Search
标签搜索
PHP
Linux
麒麟OS
Win11
电脑
Mac OS
雪中悍刀行
Redis
软考
Mysql
Python
SHELL
windows
祝福
达梦数据库
SSH
CentOS
域名转移
阿里云
腾讯云
清阳
累计撰写
37
篇文章
累计收到
52
条评论
首页
栏目
默认分类
电脑3C
Linux运维
生活杂谈
游戏娱乐
Windows专题
页面
站点统计
技术支持
友链
关于我
搜索到
36
篇与
默认分类
的结果
2024-10-13
win11版本PHP命令行报错:由于找不到vcruntime140.dll 问题 【已解决】
win11版本PHP命令行报错:由于找不到vcruntime140.dll 问题 【已解决】window 11安装php8.3-nfs非线程安全版本,命令行执行php报错:报错:由于找不到vcruntime140.dll,无法继续执行代码解决办法:访问这个网站https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170找到:点击下载,下载链接为:https://aka.ms/vs/17/release/vc_redist.x64.exe下载后,安装。即可解决。
2024年10月13日
29 阅读
0 评论
0 点赞
2024-09-15
iptables连接跟踪状态表conntrack爆满网络故障处理[已解决]
iptables连接跟踪状态表conntrack爆满网络故障处理[已解决]本文记录了Openwrt 软路由,由于iptables连接跟踪状态表conntrack达到最大限制,触发一系列奇怪的网络。从故障现象到排查过程,到优化方案都做了详细的总结首先介绍下公司的网络设备连接方式:{message type="info" content=" 电信出口光猫->软路由openwrt->行为管理(深信服AC)->华为核心交换->二层交换机(有线和无线网络)"/}问题描述:某天接到公司同事反馈 IOS端的 Appstore应用打不开。一开始以为是同事电脑问题。报错如下:故按照管理,重启大法伺候,重启完之后,故障仍在。没多久,又有其他同事陆续范围,MAC笔记本电脑打不开 Appstore,断网重连,重启电脑都不行。看来网络确实有问题。开始排查排查接入点网络先尝试有线和无线,2.4G和5G两个WIFI频段都尝试一次,以上问故障都会出现。初步定位为和WIFI热点无关。应该是上层网络节点出问题。排查路由防火墙设置排查了常规的iptables防火墙,端口转发,行为管理行为策略。发现都正常。路由器tcpdump抓包登录openwrt路由器命令行界面,使用tcpdump -vn 192.168.24.31 抓包debug这里的 192.168.24.31 是其中的一台苹果手机IP,我们用这台手机访问appstore抓包测试。经排查发现打开appstore 这个app时网络数据包异常,从app服务器发来的udp数据包,无法被手机端接收,服务器发来的3次同样的Udp数据包,均没有被手机端接收到。问题就出在这里。那么是什么原因导致的呢?考虑到既然是网络数据包进不来,重置一下网络连接是否有效呢?然后在openwrt上面重载iptables,再测试发现app store可以正常访问了。然而。。。,过了1分钟之后,app store就又无法访问了,一脸懵逼。。。看来这个问题确实跟防火墙有关。防火墙上配置了一系列端口转发规则,都是业务在用的,无法通过关闭Iptables解决。在这里卡了大半天,实在找不到解决办法。并且在这期间app store有时候是能访问的,大部分时间都无法访问。看起来相当不稳定,很奇怪的问题。这里就想着如何追踪iptables工作状态,经过查资料发现。openwrt 网络连接主要和iptables有关,并且记录在 /proc/net/nf_conntrack 中,这个文件中。nf_conntrack详解nf_conntrack(在老版本的 Linux 内核中叫 ip_conntrack)是一个内核模块,用于跟踪一个连接的状态的。连接状态跟踪可以供其他模块使用,最常见的两个使用场景是 iptables 的 nat 的 state 模块。 iptables 的 nat 通过规则来修改目的/源地址,但光修改地址不行,我们还需要能让回来的包能路由到最初的来源主机。这就需要借助 nf_conntrack 来找到原来那个连接的记录才行。而 state 模块则是直接使用 nf_conntrack 里记录的连接的状态来匹配用户定义的相关规则。例如下面这条 INPUT 规则用于放行 80 端口上的状态为 NEW 的连接上的包。iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT。iptables中的状态检测功能是由state选项来实现iptable的/proc/net/nf_conntrack内容详解cat /proc/net/nf_conntrack ipv4 2 tcp 6 8 CLOSE src=115.231.78.3 dst=107.173.34.159 sport=64904 dport=443 src=107.173.34.159 dst=115.231.78.3 sport=443 dport=64904 [ASSURED] mark=0 zone=0 use=2 ipv4 2 tcp 6 119 TIME_WAIT src=115.231.78.3 dst=107.173.34.159 sport=45761 dport=443 src=107.173.34.159 dst=115.231.78.3 sport=443 dport=45761 [ASSURED] mark=0 zone=0 use=2 ipv4 2 tcp 6 6 CLOSE src=115.231.78.3 dst=107.173.34.159 sport=57985 dport=443 src=107.173.34.159 dst=115.231.78.3 sport=443 dport=57985 [ASSURED] mark=0 zone=0 use=2 每一列表达的意思 第一列:网络层协议名字。 第二列:网络层协议号。 第三列:传输层协议名字。 第四列:传输层协议号。 第五列:无后续包进入时无效的秒数,即老化时间。 第六列:不是所有协议都有,连接状态。 其它的列都是通过名字的方式(key与value对)表述,或和呈现标识([UNREPLIED], [ASSURED], …)。一行的不同列可能包含相同的名字(例如src和dst),第一个表示请求方,第二个表示应答方。 呈现标识含义 [ASSURED]: 在两个方面(即请求和响应)方向都看到了流量。 [UNREPLIED]: 尚未在响应方向上看到流量。如果连接跟踪缓存溢出,则首先删除这些连接。 请注意,某些列名仅出现在特定协议中(例如,TCP和UDP的sport和dport,ICMP的type和code)。 仅当内核使用特定选项构建时,才会显示其他列名称(例如mark)。经检查发现,这个文件现在有16000行左右。这个值刚好和当前配置的 net.netfilter.nf_conntrack_max=16000 值接近,并且一直在这个值左右徘徊。查阅资料发现这个值是系统用来记录跟踪所有网络连接状态的表。已经超过了最大值。我们修改并添加一下参数再试试:在 /etc/sysctl.conf 文件中新增以下内容net.netfilter.nf_conntrack_buckets=262144 net.netfilter.nf_conntrack_generic_timeout=600 net.netfilter.nf_conntrack_udp_timeout=30 net.netfilter.nf_conntrack_udp_timeout_stream=180 net.netfilter.nf_conntrack_tcp_timeout_syn_recv=60 net.netfilter.nf_conntrack_tcp_timeout_syn_sent=120 net.netfilter.nf_conntrack_tcp_timeout_time_wait=120然后:sysctl -w net.netfilter.nf_conntrack_buckets=262144 sysctl -w net.netfilter.nf_conntrack_generic_timeout=600 sysctl -w net.netfilter.nf_conntrack_udp_timeout=30 sysctl -w net.netfilter.nf_conntrack_udp_timeout_stream=180 sysctl -w net.netfilter.nf_conntrack_tcp_timeout_syn_recv=60 sysctl -w net.netfilter.nf_conntrack_tcp_timeout_syn_sent=120 sysctl -w net.netfilter.nf_conntrack_tcp_timeout_time_wait=120使之生效。再运行 sysctl -p以防万一。找个业务低峰期重启一下openwrt,重启速度openwrt硬件有关。我们的硬件为inter 10代i7,30秒左右就重启好了。经过2天的观察,发现app store已经完全正常, /proc/net/nf_conntrack 文件记录数也从1.6w,涨到了2w看起来确实生效了。收工。
2024年09月15日
113 阅读
0 评论
0 点赞
2024-09-08
此内容被密码保护
加密文章,请前往内页查看详情
2024年09月08日
40 阅读
0 评论
0 点赞
2024-09-01
Tyepcho开启伪静态并隐藏URL中的index.php
Tyepcho开启伪静态并隐藏URL中的index.phpTyepcho开启伪静态修改网上有很多Typecho开启伪静态,修改/xxx.xxx.com/index.php/xxx.html 为 /xxx.xxx.com/xxx.html 隐藏php后缀的文章,但是大多都有问题,博主经过多次配置,做了一下总结。确保操作正确,能够生效。希望能帮到大家操作过程主要分2步1、修改nginx配置: location / { index index.php index.html index.htm; #原本配置是这样的,会做重定向到index.php #try_files $uri $uri/ /index.php$is_args$args; #修改为下面这一行 try_files $uri $uri/ /$is_args$args; } 然后nginx -t && nginx -s reload 2、修改typecho后台开启伪静态功能如下图:相关安全加固另外教大家如何隐藏nginx,php版本1、隐藏nginx版本只需要在nginx主配置文件nginx.conf中,http字段,添加:server_tokens off; 然后重载nginx。nginx -t && nginx -s reload2、隐藏php版本只需要在php.ini配置文件中,修改 expose_php = Off 为 expose_php = On注意由于是在网页浏览中所以要修改fpm路径下的php.ini,而不是cli路径下的php.ini。然后重启php-fpm
2024年09月01日
42 阅读
0 评论
1 点赞
2024-08-17
Ubuntu22.04配置vsftp服务
Ubuntu22.04配置vsftp服务本文记录了Ubnutu配置基于Vsftp的FTP服务注意本文配置文件和路径仅适用于Ubuntu22.04下的vsftp配置,其他系统请适当变通配置{alert type="info"}(主要是 配置pam认证 部分,不同系统的pam.so库路径不一致){/alert}一、环境系统 软件环境Ubuntu: 22.03Vsftp: 3.0.5ftp 用户这里以用户名: admin, 密码:123456为例ftp上传目录 /data/ftp/adminftp被动模式,监听55554端口,同时允许公网访问本机 55555-55557端口二、配置步骤概要FTP配置过程分为以下几步:安装软件创建必须得目录结构和空的配置文件写入vsftp配置文件修改vsftp pam认证配置文件生成用户账号密码数据库调整ftp目录权限,修正vsftp chroot环境登录测试三、安装软件和创建文件结构apt update apt install vsftpd db-util -y vsftpd -v vsftpd:version 3.0.5 cd /etc/ cp /etc/vsftpd.conf /etc/vsftpd.conf.bak mkdir vsftpd cd vsftpd touch chroot_list ftpusers user_list vuser_passwd.txt mkdir vsftpd_user_conf touch vsftpd_user_conf/admin #这个是ftp用户配置文件四、user配置向配置文件中写入配置cat > ftpusers <<EOF #Users that are not allowed to login via ftp root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody EOF允许登录的ftp用户,主要是写入admin这个ftp用户cat > user_list <<EOF #vsftpd userlist #If userlist_deny=NO, only allow users in this file #If userlist_deny=YES (default), never allow users in this file, and #do not even prompt for a password. #Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers #for users that are denied. #root #bin #daemon #adm #lp #sync #shutdown #halt #mail #news #uucp #operator #games #nobody #gameday-dg admin EOF创建ftp目录 mkdir -p /data/ftp/admin五、用户认证密码文件写入初始账号密码,一会根据这个生成数据库初始源文件cat > vuser_passwd.txt <<EOF admin 123456 EOF生成ftp用户认证所需的数据库文件db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db六、SSL加密配置生成ssl安全连接证书文件 (如果需要开启SSL安全连接的情况下)openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem 在交互式回话框中填入内容如下:CN Shanghai Shanghai gmork gmork Gmork 825943010@qq.com 例如:Country Name (2 letter code) [AU]:CNState or Province Name (full name) [Some-State]:ShanghaiLocality Name (eg, city ) []:Shanghai Organization Name (eg, company) [Internet Widgits Pty Ltd]:gmork Organizational Unit Name (eg, section) []:gmork Common Name (e.g. server FQDN or YOUR name) []:Gmork Email Address []:825943010@qq.com七、配置vsftpd.conf文件写入/etc/vsftpd.conf主配置文件cat > /etc/vsftpd.conf <<EOF local_enable=YES write_enable=YES local_umask=022 user_config_dir=/etc/vsftpd/vsftpd_user_conf dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=NO idle_session_timeout=300 ftpd_banner=Welcome to blah FTP service. chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list ls_recurse_enable=YES listen=YES listen_port=55554 pam_service_name=vsftpd guest_enable=YES guest_username=ftpuser userlist_enable=YES userlist_deny=NO tcp_wrappers=YES use_localtime=YES allow_writeable_chroot=YES #ssl_enable=YES #allow_anon_ssl=NO #force_local_data_ssl=YES #force_local_logins_ssl=YES #ssl_tlsv1=YES #ssl_sslv2=YES #ssl_sslv3=YES #rsa_cert_file=/etc/vsftpd/vsftpd.pem #ssl_ciphers=HIGH #require_ssl_reuse=NO xferlog_enable=YES secure_chroot_dir=/var/run/vsftpd/empty #下面这行很重要,用来解决云服务器服务,客户端连接后报 #425 Security:B爱的IP connection错误的问题。 pasv_promiscuous=yes EOF设置chroot用户内容cat > /etc/vsftpd.user_list <<EOF #vsftpd userlist #If userlist_deny=NO, only allow users in this file #If userlist_deny=YES (default), never allow users in this file, and #do not even prompt for a password. #Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. #root #bin #daemon #adm #lp #sync #shutdown #halt #mail #news #uucp #operator #games #nobody #gameday-dg admin EOF八、配置pam认证这里需要注意,由于 pam_userdb.so 在不同架构的系统下路径名略有差异, 可以根据自己的系统来确认 find / -name "pam_userdb.so" 知道到对应的so连接库文件,根据路径和名字把以下的改一下即可: 当前测试过的系统类型有: amd64位系统 x86_64架构文件名为: /usr/lib/x86_64-linux-gnu/security/pam_userdb.so 苹果电脑m1芯片下,linux虚拟机中.so文件路径为: /usr/lib/aarch64-linux-gnu/security/pam_userdb.so #先备份ftp认证配置文件 cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak ## 然后写入配置 cat > /etc/pam.d/vsftpd <<EOF auth required /usr/lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /usr/lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd EOF九、设置虚拟ftp用户配置设置虚拟ftp用户名字,权限,ftp工作模式,监听端口,被动模式使用到端口cat > /etc/vsftpd/vsftpd_user_conf/admin << EOF local_root=/data/ftp/admin local_umask=022 pasv_enable=YES pasv_min_port=55555 pasv_max_port=55557 virtual_use_local_privs=YES write_enable=YES EOF十、修改目录权限创建ftp虚拟用户所属的实体账户,用户登录和目录读写授权判断 useradd ftpuser -m -s /usr/sbin/nologin配置ftp上传目录属主chown -R ftpuser.ftpuser /data/ftp 十一、测试和debug测试结果如下图、即配置测试成功十二、报错和解决办法报错1:错误: GnuTLS 错误 -15,位于 gnutls_record_recv: An unexpected TLS packet was received. 错误: 无法读取套接字: ECONNABORTED - 连接中止 错误: 无法连接到服务器解决重新生成证书:报错2useradd ftpuser -m -s /usr/sbin/nologinchown -R ftpuser.ftpuser /data/ftp响应: 500 OOPS: cannot change directory:/nonexistent
2024年08月17日
202 阅读
19 评论
1 点赞
2024-08-10
CentOS7官方停止支持,yum源变更
CentOS7官方停止支持,yum源变更由于 CentOS 7 在 2024 年 6 月 30 日停止支持,生命周期已结束(进入EOL)。因此,官方仓库已移至https://vault.centos.org。不再有更新现有CentOS 7.x系统在更新执行yum命令的时候会遇到报错,解决办法为修改 /etc/yum.repos.d/CentOS-Base.repo文件,内容如下,记得修改之前做备份[base] name=CentOS-$releasever - Base baseurl=https://vault.centos.org/7.9.2009/os/$basearch gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates baseurl=https://vault.centos.org/7.9.2009/updates/$basearch gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras baseurl=https://vault.centos.org/7.9.2009/extras/$basearch gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus baseurl=https://vault.centos.org/7.9.2009/centosplus/$basearch gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7然后执行yum makecache 即可。
2024年08月10日
227 阅读
9 评论
4 点赞
2024-08-10
CentOS7安装多版本php
CentOS7安装多版本php在服务器运行过程中,经常会遇到需要多版本php的情况,甚至有可能需要多版本php同时运行。本文记录了CentOS7下安装多版本php的过程,理论上来说Alma Linux,Rocky Linux等类似RedHat系 Linux发行版都适用,区别只是安装的不同remi源而已。Centos7安装多版本php添加remi源wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm rpm -Uvh remi-release-7.rpm epel-release-latest-7.noarch.rpm ### 安装php5.6和php5.6-fpm以及常用扩展库 yum install php56 php56-fpm -y yum install php56-php-mbstring.x86_64 php56-php-mysqlnd.x86_64 php56-php-pdo php56-php-xml ph56-php-opcache.x86_64 php56-php-zip -y yum install zip unzip php56-php-zip -y 创建php-fpm运行时sock文件目录 mkdir /var/run/php56-fpm 修改 /etc/opt/remi/php56/php-fpm.d/www.conf listen = /var/run/php56-fpm/php56.sock 启动php-fpm和设置开机自启动 systemctl start php56-php-fpm.service systemctl enable php56-php-fpm.service安装php7.1和php7.1-fpm以及常用扩展库yum install php71 php71-php-fpm -y yum install php71-php-mbstring.x86_64 php71-php-mysqlnd.x86_64 php71-php-pdo php71-php-xml php71-php-opcache.x86_64 php71-php-zip -y yum install zip unzip php71-php-zip -y 创建php-fpm运行时sock文件目录 mkdir /var/run/php71-fpm 修改 /etc/opt/remi/php71/php-fpm.d/www.conf listen = /var/run/php71-fpm/php71.sock 启动php-fpm和设置开机自启动 systemctl start php71-php-fpm.service systemctl enable php71-php-fpm.service### 安装php7.4和php7.4-fpm以及常用扩展库 yum install php74 php74-php-fpm -y yum install php74-php-mbstring.x86_64 php74-php-mysqlnd.x86_64 php74-php-pdo php74-php-xml php74-php-opcache.x86_64 php74-php-zip -y yum install zip unzip php74-php-zip -y 创建php-fpm运行时sock文件目录 mkdir /var/run/php74-fpm 修改 /etc/opt/remi/php74/php-fpm.d/www.conf listen = /var/run/php74-fpm/php74.sock启动php-fpm和设置开机自启动systemctl start php74-php-fpm.service systemctl enable php74-php-fpm.service
2024年08月10日
109 阅读
0 评论
1 点赞
2024-08-03
苹果电脑命令行常用命令
苹果电脑命令行常用命令苹果的电脑命令行常用命令本文持续总结一些命令行命令,适用于苹果电脑终端命令行界面查看日志 log show查看1天前的日志log show --last 1d查看所有日志log show动态跟踪查看实时日志sudo log stream查看更多关于log show的命令log show -h查看苹果系统版本信息命令行下查看方式: sw_vers命令行操作用户创建用户sudo adduser 设置用户信息sudo dseditgroup -o edit -t user -m <new_full_name>更改用户密码sudo passwd 删除用户账户sudo dsedituser -u -r10.15以上设置用户帐户创建用户sudo useradd 设置和修改密码sudo passwd 删除账户sudo dsedituser -u -r更高版本苹果系统用户操作命令创建新用户sudo dsadd user 修改用户属性sudo dsedituser -u 删除用户sudo dsedituser -u -r
2024年08月03日
115 阅读
0 评论
1 点赞
1
2
3
4
5