VPS – 嗨软 https://ihacksoft.com/archive 分享最好用的常用软件 Tue, 22 Nov 2022 02:41:09 +0000 zh-CN hourly 1 https://wordpress.org/?v=4.9.26 VPS 服务器修改 SSH 端口完整全过程 https://ihacksoft.com/archive/1388.html https://ihacksoft.com/archive/1388.html#respond Fri, 31 Dec 2021 06:42:48 +0000 https://ihacksoft.com/?p=2117   当你拥有一台 VPS 服务器后,出于安全考虑,必须修改 SSH 的默认连接端口。科学的修改方式并非一步到位,而是包含了多个必要步骤。SSH 服务器的配置文件为:/etc/ssh/sshd_config,具体修改步骤如下:

1、备份原sshd配置文件

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

2、修改sshd配置文件

可以使用winscp、nano、vim之类的软件编辑 /etc/ssh/sshd_config

查找Port 22,有可能 Port 22 是注释的(即前面有#号,有的话删掉 # 号)。

在 Port 22 下面添加一行 Port 3322 其中3322为你更改SSH后的端口。

这里建议先保留原来的22端口,待新的SSH端口测试正常工作后再删掉原Port 22 端口行。修改完成后保存。

3、重启SSH服务器

重启SSH服务器命令:systemctl restart sshd

如果没有systemctl的话可以执行:/etc/init.d/sshd restart 或 /etc/init.d/ssh restart

如果没有报错的话就生效了,可以 ss -ntl 或 netstat -ntl 查看一下端口。

4、防火墙、安全组规则设置

iptables添加SSH新端口规则:
iptables -A INPUT -p tcp --dport 3322 -j ACCEPT #3322替换为新的端口#
然后保存iptables规则

firewalld添加SSH新端口规则:
firewall-cmd --permanent --zone=public --add-port=3322/tcp #3322替换为新的端口#
firewall-cmd --reload #重载firewalld#

阿里云之类的安全组规则添加SSH新端口规则:
阿里云之类的有安全组之类设置的云服务器一定要在安全组规则里将新端口添加到“入方向”的允许规则。

5、putty、xshell之类的SSH软件连接测试

添加上新的SSH端口后一定要通过putty、xshell之类的SSH软件连接测试一下,测试可以正常连接然后再编辑 /etc/ssh/sshd_config 将 Port 22 这一行直接删除或这一行前面加 # 注释掉,然后再按前面的命令重启SSHd服务。

]]>
https://ihacksoft.com/archive/1388.html/feed 0
Linux Load Average 平均负载大有学问! https://ihacksoft.com/archive/967.html https://ihacksoft.com/archive/967.html#respond Fri, 20 Dec 2019 07:56:02 +0000 https://ihacksoft.com/?p=1696   当一个网站访问量越来越大的时候,服务器(VPS)的性能优化显得尤为重要。用刚刚好或者说差不多的性能去支撑当前的网站负载,可以省下一笔硬件的费用。最近也在看一些关于 Linux 系统优化的相关文章,其中接触到 TOP 命令中的 Load Average 参数,个人认为非常重要!一起来学习下。

一、什么是 Load Average?

  系统负载(System Load)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度)。

  平均负载(Load Average)是一段时间内系统的平均负载,这个一段时间一般取1分钟、5分钟、15分钟。

二、如何查看Load Average?

  top命令,w命令,uptime等命令都可以查看系统负载;

Load Average

三、Load Average 的3个数值各是什么意思?

  我拿上图中的 load average:0.21,0.20,0.18 来举例(我是1核CPU处理器):

  第一位0.21:表示最近1分钟平均负载。

  第二位0.20:表示最近5分钟平均负载。

  第三位0.18:表示最近15分钟平均负载。

四、Load Average 值的含义

1、单核处理器(例如:1个1核cpu)

  假设我们的系统是单CPU单内核的,把它比喻成是一条单向马路,把CPU任务比作汽车。

  当车不多的时候,load <1;

  当车占满整个马路的时候 load=1;

  当马路都站满了,而且马路外还堆满了汽车的时候,load>1;

Load Average

2、多核处理器(例如:2个cpu或一个2核的cpu)

  我们经常会发现服务器Load > 1但是运行仍然不错,那是因为服务器是多核处理器(Multi-core)。

  假设我们服务器一个CPU是2核,那么将意味我们拥有2条马路,我们的Load = 2时,所有马路都跑满车辆。

Load Average

  提示:芯片厂商往往在一个CPU内部,包含多个CPU核心,这被称为多核CPU。

  在系统负荷方面,多核CPU与多个CPU效果类似,所以考虑系统负荷的时候,必须考虑这台电脑有几个CPU、每个CPU有几个核心。然后,把系统负荷除以总的核心数,只要每个核心的负荷不超过1.0,就表明电脑正常运行。

  怎么知道Linux服务器有多少个CPU核心呢?

  查看cpu信息命令:

cat /proc/cpuinfo

  查看cpu总核心数命令:

grep 'model name' /proc/cpuinfo | wc -l

grep -c 'model name' /proc/cpuinfo

五、什么样的 Load Average 值得警惕(单核)?

  Load < 0.7时:系统很闲,马路上没什么车,要考虑多部署一些服务。

  0.7 < Load < 1时:系统状态不错,马路可以轻松应对。

  Load == 1时:系统马上要处理不多来了,赶紧找一下原因。

  Load > 1时:马路已经非常繁忙了,进入马路的每辆汽车都要无法很快的运行。

六、三种 Load Average 值,应该看哪个(单核)?

  通常我们先看15分钟load,如果load很高,再看1分钟和5分钟负载,查看是否有下降趋势。

  1分钟负载值>1,那么我们不用担心,但是如果15分钟负载都超过1,我们要赶紧看看发生了什么事情。所以我们要根据实际情况查看这三个值。

  现在相信大家都知道,"load average"一共返回三个平均值:1分钟系统负荷、5分钟系统负荷,15分钟系统负荷。

  如果只有1分钟的系统负荷大于1.0,其他两个时间段都小于1.0,这表明只是暂时现象,问题不大。

  如果15分钟内,平均系统负荷大于1.0(调整CPU核心数之后),表明问题持续存在,不是暂时现象。所以,你应该主要观察"15分钟系统负荷",将它作为电脑正常运行的指标。

  结合具体情况具体分析(单核):

  1分钟Load>1,5分钟Load<1,15分钟Load<1:短期内繁忙,中长期空闲,初步判断是一个“抖动”,或者是“拥塞前兆”。

  1分钟Load>1,5分钟Load>1,15分钟Load<1:短期内繁忙,中期内紧张,很可能是一个“拥塞的开始”。

  1分钟Load>1,5分钟Load>1,15分钟Load>1:短、中、长期都繁忙,系统“正在拥塞”。

  1分钟Load<1,5分钟Load>1,15分钟Load>1:短期内空闲,中、长期繁忙,不用紧张,系统“拥塞正在好转”。(文/付杰)

]]>
https://ihacksoft.com/archive/967.html/feed 0
网站卡服务器 CPU 达 100% 的排查步骤和解决思路 https://ihacksoft.com/archive/966.html https://ihacksoft.com/archive/966.html#respond Fri, 20 Dec 2019 07:24:11 +0000 https://ihacksoft.com/?p=1695   前天早上9点左右打开网站发现非常卡,用的是 WordPress 架构,阿里云 VPS 服务器,环境为 CentOS + Nginx + MySQL + PHP。访问速度从来没有这么慢过,所以这方面也没什么经验,只能边学边做。参考了一些文章,学到了不少,在此做个笔记,也希望能帮助到遇到同样问题的朋友们。

一、检查硬件问题

  首先 SSH 登录服务器,用 top 命令查看一个很重要的参数:load average(平均负载)。如下图:

网站卡服务器CPU达100%

  这个图片是事后截的,资源使用率已经降下来了。load average 后面的三个数字分别代表了1分钟平均负载、5分钟平均负载和15分钟平均负载。15分钟可以代表长期,5分钟代表中期,1分钟代表短期,取后者15分钟的数字比较准确一些,因为代表的时间最长。

  这三个数的含义,如果是1核cpu,那么不能超过1,4核那么就不能超过4。如果是1核的cpu,这个数字快接近1了(双核、四核也一样),那么需要考虑服务器配置升级。关于 load average 的最详细的的解读,请移步至:https://ihacksoft.com/967.html

二、检查 PHP-fpm 进程

  首先使用 free -m 命令查看当前服务器执行状况:

网站卡服务器CPU达100%

  可以看到我的内存总量是2G,已消耗了1470。那是不是占用太高了呢?Linux 的内存机制和 Windows 不同,内存占用 90% 以上,属正常现象。即便是一个负载很小的linux,跑几天后,即便没什么人访问,内存占用量也将达到90%以上,这个数字是完全正常的。但是,这个内存占用量不会达到100%的。

  可使用 top 命令 m 参数,查看具体的内存使用情况。再使用:

ps auxw|head -1;ps auxw|sort -rn -k4|head -40

查看消耗内存最多的前40个进程,检查有没有导常的进程。

  查看通过命令查看服务器上一共开了多少的 php-cgi 进程:

ps -fe |grep "php-fpm"|grep "pool"|wc -l

  查看已经有多少个php-cgi进程用来处理tcp请求:

netstat -anp|grep "php-fpm"|grep "tcp"|grep "pool"|wc -l

  设置PHP-FPM的进程数:vi /etc/php-fpm.d/www.conf(根据实际情况变化)找到 pm.max_children 字段,设置一个合理的值,比之前的小

  pm.max_spare_servers : 该值表示保证空闲进程数最大值,如果空闲进程大于此值,此进行清理 pm.min_spare_servers : 保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程;

  这两个值均不能不能大于 pm.max_children 值,通常设置 pm.max_spare_servers 值为 pm.max_children 值的60%-80%。

  正常情况下,一个php-fpm占用内存20~30M,偶尔也会飙到40M。

三、进程跟踪

  1.使用 top 命令找出 CPU 占用最高的进程 PID。
  2.strace -p PID(进程数) 来跟踪进程。
  3.ll /proc/PID/fd 来查看该进程在处理哪些文件。
  最后修改对应代码。

  最后,记得重启。这里只是提供一些排查或解决的思路,具体情况还是要具体分析。

]]>
https://ihacksoft.com/archive/966.html/feed 0
VPS 一条命令查看服务器当前并发连接数 https://ihacksoft.com/archive/965.html https://ihacksoft.com/archive/965.html#respond Thu, 19 Dec 2019 02:49:20 +0000 https://ihacksoft.com/?p=1694   VPS 上用的是 CentOS,早上打开发现网站发现网络巨卡,之前几乎从来没遇到过。打开阿里云后台,查看监控信息,发现 CPU 飙升到了100%,而网络带宽也达到了峰值(1M)。

  SSH 连接上服务器后,用 TOP 命令检查进程占用的 CPU 资源,这里暂时不展开。还有一点很重要的是查看当前服务器的并发连接数,如何查看?一条命令即可搞定:

[root@HQW-Aliyun ~]# netstat -nat|grep ESTABLISHED|wc -l
116
[root@HQW-Aliyun ~]# 

  显示为 116。值得注意的是,并发连接数并不等于网站在线人数,后者可以通过站长统计网站后台查看,前者不行,只能在服务器端检测。

]]>
https://ihacksoft.com/archive/965.html/feed 0
Screen 的基本用法 – 解决 VPS 安装 LNMP 掉线问题 https://ihacksoft.com/archive/955.html https://ihacksoft.com/archive/955.html#respond Sat, 14 Dec 2019 08:04:21 +0000 https://ihacksoft.com/?p=1684   今天在一台香港的 VPS 上部署 LNMP 环境(Linux+Nginx+MySQL+PHP),因为安装过程时间比较长,往往在安装完成前 SSH 就掉线中断了,重新连接之后都不知道进行到哪里了。为防止这种情况,只要在安装 lnmp 前执行 screen 命令就可以了,一起来学习一下。

Screen 简介

  Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。

使用方法

  使用 putty 或 SecureCRT 等 SSH 工具登陆 VPS 服务器后,首先安装:

yum install screen

  然后执行:

screen -S lnmp

  screen 就会创建一个名字为 lnmp 的会话,注意是大写的“S”。

  然后下载并安装 LANM,一条命令搞定:

wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -cO lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

  如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。

  如果网络掉线,可以重新连接,可以再执行执行:screen -r lnmp 即可恢复到离开前创建的 lnmp 会话的工作界面。

  如果忘记了,或者当时没有指定会话名,可以执行:screen -ls,screen会列出当前存在的的所有会话列表。

  执行:exit ,会提示:[screen is terminating],表示已经成功退出screen会话。但是我试了,不行,最后是用 Ctrl+C 退出的会话的。

  还可以用 screen 来作远程演示。首先演示者先在服务器上执行 screen -S test 创建一个screen会话,观众可以链接到远程服务器上执行screen -x test 观众屏幕上就会出现和演示者同步。

  常用快捷键:
Ctrl+a c :在当前screen会话中创建窗口
Ctrl+a w :窗口列表
Ctrl+a n :下一个窗口
Ctrl+a p :上一个窗口
Ctrl+a 0-9 :在第0个窗口和第9个窗口之间切换

]]>
https://ihacksoft.com/archive/955.html/feed 0
VPS SSH连接时间太短的解决方法 https://ihacksoft.com/archive/908.html https://ihacksoft.com/archive/908.html#respond Fri, 22 Nov 2019 07:43:43 +0000 https://ihacksoft.com/?p=1637   用 SSH 连接阿里云VPS(用的是 CentOS),连接没一会就断开需要重新连接,这默认时间也太短了吧?!平时登录不多忍忍就算了,今天实在是忍无可忍了,不知道重新连了多少次了,这设计太不人性化!赶紧先停下正业,把这个毛病给解决。

#vim /etc/ssh/sshd_config

找到下面两行:

#ClientAliveInterval 0
#ClientAliveCountMax 3

去掉注释,改成:

ClientAliveInterval 30
ClientAliveCountMax 86400

这两行的意思分别是:

第一行定义了每隔多少秒给SSH客户端发送一次信号;
第二行定义了超过多少秒后断开与ssh客户端连接。

最后 service sshd restart 重启 SSH 服务。

来自阿里云官方的回应:

1、打开ssh配置文件:

# vim /etc/ssh/sshd_config

加入如下两个参数保存就可以:

TCPKeepAlive yes

ClientAliveCountMax 360

注:前一个参数表示要保持TCP连接,后一个参数表示客户端的SSH连接闲置多长时间后自动终止连接的数值,单位为分钟。

2、重启sshd生效:

/etc/init.d/sshd restart

]]>
https://ihacksoft.com/archive/908.html/feed 0
CentOS 一条命令即可查看各目录占用的硬盘空间大小 https://ihacksoft.com/archive/504.html https://ihacksoft.com/archive/504.html#respond Sun, 24 Mar 2019 07:06:01 +0000 https://ihacksoft.com/?p=514   我的 VPS 用的是 CentOS 系统,一段时间后发现 VPS 的硬盘就占用非常大,但是自己网站数据并不多,那么是什么占用了我的 VPS 硬盘空间呢?我们可以通过命令 du -sh 来分析一下。

登陆vps的ssh后,输入下面的命令:
du -sh /*

可以列出你整个VPS所有文件夹的大小。其中“/*”是控制分析哪个目录的,你根据上面的结果,然后灵活变化后面的路径就行了,例如:
du -sh /usr/*

用这个命令来分析usr目录下的文件夹大小,最后定位到大文件,直接删除就行了。

]]>
https://ihacksoft.com/archive/504.html/feed 0
开启 HTTPS – Nginx 服务器安装 SSL 证书全过程 https://ihacksoft.com/archive/451.html https://ihacksoft.com/archive/451.html#respond Fri, 08 Mar 2019 15:41:08 +0000 https://ihacksoft.com/?p=461 申请了免费的 DV SSL 证书,接下来要做的就是将证书导入服务器。我的环境是 LNMP (Linux+Nginx+MySQL+PHP),所以我要做的是配置 Nginx 服务器以开启 SSL。]]>   HTTPS 的好处不用多解释了吧,很多网站都已经开启了,我已经落伍了,打算将自己的 WordPress 开启全站 https。之前成功申请了免费的 DV SSL 证书,接下来要做的就是将证书导入服务器。我的环境是 LNMP (Linux+Nginx+MySQL+PHP),所以我要做的是配置 Nginx 服务器以开启 SSL。

一、下载 SSL 证书

  首先当然是要申请证书,个人网站申请免费的就可以了。前几天已经申请了,速度还挺快的,半天就通知说通过了。进入阿里云后台, 鼠标放“产品与服务”上,拉到下面的“安全(云盾)”一栏,找到 SSL证书(应用安全),或者直接在上方搜索 SSL 寻找,阿里的产品与服务实在太多了!找起来费劲。进入“SSL证书”后,点击“已签发”,下载已签发的证书。

  下载下来后是一个压缩包,里面包含了两个文件:一个 .key 文件(秘钥文件)和一个 .pem 文件(证书文件)。pem扩展名的证书文件采用Base64-encoded的PEM格式文本文件,您可根据需要修改成其他扩展名。

二、配置 Nginx 安装 SSL 证书

  SSH 登录 VPS 服务器,找到 Nginx 的安装目录,我的在 cd /usr/local/nginx/,新建一个目录 cert(名称可自定义)。然后连接 FTP,将下载的证书文件和秘钥文件上传到服务器,通过 cp 命令拷贝到 cert 目录中。

  接下去配置证书。打开 /usr/local/nginx/conf/vhost/ 目录,找到你要配置网站的 conf 配置文件,修改 server 段,以下是参考阿里云的官方文档配置信息:

以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
server {
listen 443;
server_name ihacksoft.com ihacksoft.com;  # localhost修改为您证书绑定的域名。
ssl on;   #设置为on启用SSL功能。
root html;
index index.html index.htm;
ssl_certificate /usr/local/nginx/cert/hack520.pem;   #将hack520.pem替换成您证书的文件名。
ssl_certificate_key /usr/local/nginx/cert/hack520.key;   #将hack520.key替换成您证书的私钥文件名。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #修改protocols。
ssl_prefer_server_ciphers on;   
location / {
root html;   #站点目录。
index index.html index.htm;   #添加属性。
}
}

保存后 service nginx restart 重启 Nginx。

]]>
https://ihacksoft.com/archive/451.html/feed 0
网络加速!VPS 安装配置 NetSpeeder 加速工具最简单的方法 https://ihacksoft.com/archive/392.html https://ihacksoft.com/archive/392.html#respond Tue, 03 Jul 2018 03:33:01 +0000 https://ihacksoft.com/?p=402 VPS 一直有玩,搭建了 Shadowsocks 服务,其实速度也还可以,浏览网页没有感觉,就有时候看视频会稍微卡一点,尤其是高清视频。不过后来听说有 NetSpeeder 这个东西,可以进一步提升连接速度,于是马上打算安装一下试试。参考了几篇文章,感觉以下的操作方法最为便捷。

首先使用 Putty 或 SecureCRT 登录VPS,输入下面的命令进行安装:
wget https://coding.net/u/chishin/p/VPS/git/raw/master/net_speeder-installer.sh

然后输入下面的命令编译NetSpeeder:
bash net_speeder-installer.sh

最后输入下面命令启动NetSpeeder:(替换脚本中 ip 为VPS的IP地址)
nohup /usr/local/net_speeder/net_speeder venet0 "ip" >/dev/null 2>&1 &

如果启动成功会返回一个端口号,这里不用理会它。现在的问题是VPS重启后NetSpeeder不会自动启动的,接下来要将上面的启动脚本写到系统自启动脚本中就可以了。输入下面的命令打开系统自启动脚本文件:
vi /etc/rc.d/rc.local

将光标移动至最后输入 i ,然后粘贴上面的启动NetSpeeder脚本,再按一下 Esc ,输入 :wq 回车保存即可。

设置定时重启VPS

VPS长期开机会导致网速变慢,最好的解决办法就是定期重启一下VPS,在这里我们使用Crontab服务来自动完成定时重启VPS的任务。当然了,这个不是每个人都需要的,这里只是提供下操作方法。因为搬瓦工的Centos6自带了Crontab服务,所以输入下面的命令开启Crontab服务:
chkconfig crond on
service crond start

这里返回 OK 表示Crontab服务启动成功,否则你可能要在你的VPS中安装Crontab服务再试了。
输入下面的命令编辑Crontab服务:
crontab -e

编辑方式类似上面的rc.local文件,这里不再说明了。
在文本的最后输入下面这段代码:(每天凌晨3:50重启VPS)
50 3 * * * /sbin/reboot

输入下面的命令查看Crontab服务是否被写入:
crontab -l

如果看到你刚刚输入的那段代码就说明生效了。

]]>
https://ihacksoft.com/archive/392.html/feed 0
搬瓦工 VPS 已关机无法修改 ROOT 密码+自定义 root 密码的方法 https://ihacksoft.com/archive/391.html https://ihacksoft.com/archive/391.html#respond Mon, 02 Jul 2018 09:43:46 +0000 https://ihacksoft.com/?p=401   搬瓦工 BandwagonHost 很多人应该都知道,这里就不多详细介绍了。刚才想通过 SecureCRT SSH 远程连接 VPS 服务器,端口在 Main controls 里能看到,但是忘记了 ROOT 密码。于是打算重置,通过 Root password modification 修改,结果提示如下:

Failed to reset root password (739102)
Additional information: 992800002 VPS is currently running. Please stop the VPS before attempting to modify root password.

  修改密码前要先停止VPS运行,于是我回到 Main controls 按 stop 停止,再回到 Root password modification,点击 Generate and set new root password,结果还是不行,依旧是上述的提示。于是再等了一会,Status 都已是 Stopped 了,问题依旧,奇怪了。

  这估计是搬瓦工后台系统的问题,本来还打算写几句跟官方反馈一下的,想想还是算了,因为有更好的解决方法。

  我们进入 KiwiVM 后台之后,让 VPS 处于开机状态(running),然后点击左侧菜单的 Root shell – basic,然后输入如下命令:
echo "root:yourpassword" | chpasswd

  其中 yourpassword 为你自己想设置的密码,这样一来,一举两得,不仅成功修改了 Root 密码,而且还自定义了密码,亲测可行!

]]>
https://ihacksoft.com/archive/391.html/feed 0