1024社区 | 1024.day
12K subscribers
405 photos
6 videos
3 files
1.06K links
这是一个分享VPS资讯以及Linux学习频道。
Download Telegram
#php
小内存vps优化php的内存占用

首先查看php内存限制,默认是128M:

命令: php -i|grep memory_limit
会输出: memory_limit => 128M => 128M

找到php对应的配置文件:
php -i | grep "Loaded Configuration File"

会输出:
Loaded Configuration File => /etc/php/7.3/cli/php.ini

修改成限制64M:
echo "memory_limit = 64M" >> /etc/php/7.3/cli/php.ini && php -i|grep memory_limit
Debian升级最新内核方法

首先备份sources.list文件:
cp /etc/apt/sources.list /etc/apt/sources.list.bak

修改sources.list文件:
vi /etc/apt/sources.list

添加下面内容:
deb http://deb.debian.org/debian buster-backports main

然后更新一下系统:
apt update

搜索内核:
apt search linux-image | grep buster-backports

会输出类似下面内容:
linux-image-5.9.0-0.bpo.2-amd64/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-amd64-dbg/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-amd64-unsigned/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-cloud-amd64/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-cloud-amd64-dbg/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-cloud-amd64-unsigned/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-rt-amd64/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-rt-amd64-dbg/buster-backports 5.9.6-1~bpo10+1 amd64
linux-image-5.9.0-0.bpo.2-rt-amd64-unsigned/buster-backports 5.9.6-1~bpo10+1 amd64


选择 linux-image-5.9.0-0.bpo.2-cloud-amd64 安装

apt install linux-image-5.9.0-0.bpo.2-cloud-amd64

重启:
/sbin/reboot
小内存vps,降低内存占用量的方法:

1:首先选择 Debian 系统,然后更换 cloud 内核,cloud内核是给KVM专用的内核,不适用vm虚拟机或桌面机,内核不必求新。

2:开启 swap 交换区,不必很大,调成和内存差不多大就好了。

3:设置 sysctl.conf vm选项:

当内存使用率不足10%(默认值60%)时使用 swap,尽量避免使用 swap,减少唤醒软中断进程
vm.swappiness=10

将选择多少数据缓存inode和dentry信息,默认100可取值50
vm.vfs_cache_pressure=50

4:适当降低 php 内存限制,默认128M。

5:撤销安全补丁,比如 Intel CPU 的一些安全漏洞,提升cpu性能,降低内存占用
vi /etc/default/grub
内核5.2或以上修改下面内容:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mitigations=off"
内核5.2以下修改成下面内容:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off"
最后:
update-grub

6:去掉一些没必要内核模块加载 (xfs 等)
chmod -x /etc/grub.d/30_os-prober

下面是俺 256m 内存vps,安装了v2、nginx、php、等等。
#nginx #openssl
Nginx配置Basic Auth登录认证

cd /etc/nginx/conf.d

openssl 生成密码为12345:
openssl passwd 12345

会输出一串密钥
fIHcRVEKijgoM

然后把密钥写入 htpasswd 文件,其中admin为用户名:
echo "admin:fIHcRVEKijgoM" > htpasswd

配置 nginx.conf 文件:

location / {
auth_basic "Hello, World!";
auth_basic_user_file /etc/nginx/conf.d/htpasswd;
}
#sh #v2ray
写了一个自动更改v2ray里UUID的脚本,新建一个 vi uuid.sh 文件,然后 bash uuid.sh 运行就可以了。下面是脚本内容:
#/bin/sh

uuid="$(cat /proc/sys/kernel/random/uuid)"

echo 'stop service' && sleep 3

cp /usr/local/etc/v2ray/config.json /usr/local/etc/v2ray/config.json.bak

echo 'uuid is changing to':$uuid

sed -ri "s/[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/$uuid/" /usr/local/etc/v2ray/config.json

systemctl restart v2ray && sleep 3 && systemctl status v2ray | grep -A 2 "service"

echo 'done!'

运行后,输出的内容如下:
root@debian:~# bash uuid.sh
stop service
uuid is changing to:6200fb6e-0111-483e-9929-cedca5a59289
● v2ray.service - V2Ray Service
Loaded: loaded (/etc/systemd/system/v2ray.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/v2ray.service.d
└─10-donot_touch_single_conf.conf
Active: active (running) since Thu 2021-01-07 20:20:02 CST; 3s ago
--
CGroup: /system.slice/v2ray.service
└─10983 /usr/local/bin/v2ray -config /usr/local/etc/v2ray/config.json

done!
有趣的Linux命令15:
今晚要讲的是 source、sh、bash、./ 这几个命令,这些命令都可以执行 shell script 文件,下面讲讲它们的区别。

1、source

在当前shell内去读取、执行a.sh,而a.sh不需要有执行权限
source a.sh

source命令可以简写为"."
. a.sh
注意:点后面是有空格的

2、sh 和 bash

sh a.sh
bash a.sh

都是打开一个subshell去读取、执行a.sh,而a.sh不需要有执行权限
通常在subshell里运行的脚本里设置变量,不会影响到父shell的。

3、./

./a.sh
#bash: ./a.sh: 权限不够
chmod +x a.sh
./a.sh
打开一个subshell去读取、执行a.sh,但a.sh需要有执行权限

可以用 chmod +x 添加执行权限

另外,使用./来执行的文件里有alias语句的话,shell并不会把alias别名扩展成对应的命令,要解决的话,得使用shopt命令来开启alias扩展选项

shopt -s expand_aliases
#haha #vps
今晚给大家分析一下线路:

AS58453
移动CMI线路,简单讲也就是广州移动国际出口,代表IP 223.120

AS4809
中国电信CN2 GIA这个不用多讲,目前唯一IP 59.43

AS4134
ChinaNet也叫 163 骨干网,代表IP 202.97

三个线路随便说几句,第一个广移出口,后起之秀,所谓广移拉万物,说的就是它,可以和GIA媲美,甚至有些时候还优于GIA,这种线路可遇而不可求。

第二个GIA,这个就不多讲,毕竟是专线接入,就是贵。

第三个,就是骨干网163接入,这个其实一般人有误解,以为163就是差,错了,如果不饶路的话,它的速度还是可以的。

最后,说说接入这些线路的vps商家,特别是CN2 GIA的商家,无一例外都是有大陆背景的,像搬瓦工,ggc等商家,要不你能接入电信专线?它们和国内商家唯一的区别就是做得大了,然后就是贵。

多唠叨一句,搬瓦工的aff返利是25%左右,这也是为什么那么多人推荐它的原因,其实没什么性价比!
有趣的Linux命令16:
今晚讲的是查找命令,whereis、locate、find 这几个命令,主要用于查找二进制文件,目录,以及全盘查找。

1、whereis
该命令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

whereis bash
会输出下面:
bash:/bin/bash/etc/bash.bashrc/usr/share/man/man1/bash.1.gz
以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径

如果用户需要单独查询二进制文件或帮助文件,可使用如下命令:
whereis -b bash
whereis -m bash

whereis 不会全盘搜索,可以查看 whereis 搜索的目录:
whereis -l

2、locate
Linux locate命令用于查找合乎范本样式条件的文档或目录。

查找 passwd 文件,输入以下命令:
locate passwd

搜索 etc 目录下所有以 sh 开头的文件:
locate /etc/sh

忽略大小写搜索当前用户目录下所有以 r 开头的文件:
locate -i ~/r

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。

3、find
find 是全盘查找,所以比较吃硬盘,而且速度相较于上面两命令会慢许多。

全盘查找 v2ray 文件,下面命令会列出带 v2ray 字样的所有文件路径:
find / -name v2ay

全盘查找文件名包含有v2ray这个关键字的文件:
find / -name "*v2ray*"

将当前目录及其子目录下所有文件后缀为 .py 的文件列出来:
find . -name "*.py"

将当前目录及其子目录下所有最近 20 天内更新过的文件列出:
find . -ctime -20

查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} \;

查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
find . -type f -perm 644 -exec ls -l {} \;
#haha
还是给大家唠唠线路吧,上回说到,电信,移动,都有自己的精品线路,分别是电信AS4809、移动AS58453、当然联通也有自己的所谓精品线路,就是以前网通时代的AS9929

联通AS9929
俗称A网,以前网通时代的骨干网,后来联通实在没有拿得出手的精品线路,只好拿它来充数啦,优势是用户少,负荷小。代表IP 218.105
其实相较于联通的169骨干网(AS4837)并没有绝对优势,而且严重依赖169网,169网代表IP 219.158

下面讲讲生活中三网对于墙的态度:

首先还是电信,其实电信用户,只要舍得花钱,GIA还有广移都是可以稳定出墙的,速度快慢和银子成正比。

其次联通,联通属于万金油,3毛的毛子机照样飞起,买个便宜的vps,直连速度都不错,169网还是很不错的。如果实在有追求的话,搞个日本软银。

最后说说移动墙中墙,为什么说墙中墙呢,因为它自己家的广移都带不动它,还有啥好说的。还好CF对移动是出了名的友好,也算天无绝人之路。注意,CF也就对移动友好,那些一开口就是“套cf呀!” 是没见过联通对于cf的延时。

其实除了这3大精品网,国内IDC商家还有一种玩法更直接快速,且听下回分解……
#nginx
今晚来讲讲Nginx的配置,主要是说说apt安装和源码编译的区别。

首先Nginx的基本配置文件,包括以下三大模块,main、events、http,当然你也可以添加 stream 等额外模块,这个不多讲:

main {
user nginx;

events {
worker_connections 1024;
}

http {
server_tokens off;
gzip on;

server {
listen 80;

location / {
return 301 https://$server_name$request_uri;
}
}
}
}

如果是源码编译的Nginx,那么你就需要上面完整的配置,一般在 /etc/nginx/nginx.conf 文件下。

如果是 apt install nginx 安装的话, /etc/nginx/nginx.conf 默认会包含上面三大模块,但是没有http下的 server 模块,server模块也就是网站服务模块。如下:

main {
user nginx;

events {
worker_connections 1024;
}

http {
server_tokens off;
gzip on;
}
}

所以 apt install nginx 安装的话,俺们只需要修改 /etc/nginx/sites-available/default 文件,里面添加 server模块就好了。类似:

    server {
listen 80;
listen [::]:80;
server_name xxxx.com;
root /var/www;
location / {
return 301 https://$server_name$request_uri;
}
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name xxxx.com;
root /var/www;

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/xxxx.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxxx.com/privkey.pem;
}
#haha
既然大家喜欢看姥爷吹牛逼,那么姥爷就吹吹美帝几大廉价机房吧,分别是 CC机房、MC机房、鲨鱼机房,没用过好机房,毕竟穷,汗!

首先是 CC 机房,全称是 ColoCrossing,这个机房几乎是廉价 VPS 的标配,比如 VirMach 和 RackNerd 都在用,这个机房线路表现比较好的是洛杉矶和圣何塞、欧洲三个地方。IP 基本被 Google 列入黑名单了,跳 Google 验证,最差机房,没有之一。

其次是MC机房,全称是 Multacom Corporation,这个机房一些 VPS 也比较常用,比如 CloudCone 和 RackNerd 家的 DC2 用的就是这个机房产品,线路速度和 CC 机房差不多,有些 IP 段自带防 D,比如 173.82.105.* ,推洛杉矶线路。唯一的好处的是 IP 不会跳 Google 验证。

最后是鲨鱼机房,全称是 Sharktech,这个机房号称 CN2,其实狗屁。线路和速度稍微比 MC 和 CC 好点,但有限,推洛杉矶线路。好处是全系 IP 防 D,建个网站挺好的,Google 不会跳验证。它家自己有 VPS 销售,RackNerd 家的防 D 线路用的也是它家的,还有就是贵。
有趣的Linux命令17:

今晚要讲的是shell前后台任务切换命令,这个命令在vps上比较实用,比如编译一些比较耗时的大型软件可以切到后台,避免多开终端。

当用bash启动一个程序,你可以在程序后加 & ,实现程序在后台运行。

例如: vi & vi这个程序就在后台运行了。

如果想调运行中的任务到前台运行的话,首先查看运行中的任务号,

jobs 命令查询,一般显示1、2、3等。

fg 1 即可调出后台运行的任务到前台,后面1即是任务号。

-------------华丽分割线------------

那么运行中的任务怎么切换到后台呢?按 Ctrl + z 暂停前台工作切换到后台,注意这时任务在后台是暂停状态。

jobs 查询任务号

bg 2 在后台挂起的任务会继续在后台运行了,和 vi & 效果一致。(bg后面的2还是任务号)

如果要把后台的任务切换到前台,还是一样 fg 2 即可。

1. command & 让进程在后台运行

2. jobs 查看后台运行的进程

3. fg n 让后台运行的进程n到前台来

4. bg n 让进程n继续在后台运行

PS: "n" 为jobs查看到的任务编号。
有趣的Linux命令18:
今晚要讲的是迟来的ssh命令,主要用于远程登陆服务器。下面的name指的是登陆用户,IP就是你服务器IP

1、查看SSH版本:
ssh -V

2、连接远程主机,其中的name可以是root或者其它,默认端口是22:
ssh name@IP

3、带端口连接远程主机:
ssh -p 10086 name@IP

4、通过远程主机1跳到主机2:
ssh -t IP1 ssh IP2

5、通过SSH执行远程shell命令:
ssh -l name IP command
比如远程查看服务器内存使用状况:
ssh -l root IP free

6、修改SSH监听端口:
vi /etc/ssh/sshd_config
找到 Port 22 这行,去掉前面#号,并修改成你需要的端口,然后重启ssh
/etc/init.d/ssh restart
有趣的Linux命令19:
今晚要讲的是 history 命令,这个命令可以读取历史命令记录。

history 会显示历史操作命令,前面会显示序列号,如下:

    1  ll
2 uname -a
3 mkdir /root/.ssh
4 ll
5 vi /root/.ssh/authorized_keys
6 apt install vim
7 vi /root/.ssh/authorized_keys
8 vi /etc/ssh/sshd_config
9 systemctl restart sshd


然后可以执行历史命令,比如第四个 ll 命令:
!4

要查看最近的10条历史命令:
history 10

清除命令历史记录:
history -c
最近RackNerd,hosthatch,GreencloudVPS分别发送邮件说明Debian10 漏洞,他们建议Debian10用户重装系统。

具体问题是SolusVM官方系统模板Debian10里的'debianuser'用户没删除,可能会导致安全问题。

解决建议:

检查 debianuser的登陆情况
cat /var/log/auth.log | grep 'debianuser'

如果没登陆过, 删掉这个用户
userdel debianuser
rm -r /home/debianuser

如果已经被登陆过, 马上备份数据并重装系统。

by:隐身的**
有趣的Linux命令20:
好久没更新了,今晚要讲的是 timedatectl 命令,此命令可以查询和更改系统时钟和设置。

1、显示系统的当前时间和日期
timedatectl status

2、查看所有可用的时区
timedatectl list-timezones

3、设置中国上海时区
timedatectl set-timezone "Asia/Shanghai"

4、设置UTC时间
timedatectl set-timezone UTC

5、设置日期和时间
timedatectl set-time '23:40:45 2021-03-11'
有趣的Linux命令21:

今晚讲讲NPM命令,NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。

安装npm:
https://github.com/nodesource/distributions

npm常用命令:

npm version 查看详细版本

npm install hexo -g 安装hexo

npm install hexo 目录安装

npm uninstall hexo 卸载hexo

npm install hexo --registry=https://registry.npm.taobao.org 使用淘宝镜像安装

npm install folder ./hexo-next-share 本地文件安装插件

npm ls 查看安装的模块

npm cache clean -f 清理缓存

npm install -g npm-check 安装npm-check

npm-check 查看系统插件是否需要升级

npm install -g npm-upgrade 安装npm-upgrade

npm-upgrade 更新package.json

npm update -g 更新全局插件

npm update --save 更新目录插件
网际互联及OSI七层模型:

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

==========================================

物理层

作用:定义一些电器,机械,过程和规范,如集线器;

PDU(协议数据单元):bit/比特

设备:集线器HUB;

注意:没有寻址的概念;

==========================================

数据链路层

作用:定义如何格式化数据,支持错误检测;

典型协议:以太网,帧中继(古董级VPN)

PDU:frame(帧)设备:以太网交换机;

备注:交换机通过MAC地址转发数据,逻辑链路控制;

===========================================

网络层

作用:定义一个逻辑的寻址,选择最佳路径传输,路由数据包;

典型协议:IP,IPX,ICMP,ARP(IP->MAC),IARP;

PDU:packet/数据包;

设备:路由器

备注:实现寻址

============================================

传输层:

作用:提供可靠和尽力而为的传输;

典型协议:TCP,UDP,SPX,port(65535个端口),EIGRP,OSPF,

PDU:fragment 段;

无典型设备;

备注:负责网络传输和会话建立;

=============================================

会话层:

作用:控制会话,建立管理终止应用程序会话;

典型协议:NFS, SQL, ASP, PHP, JSP, RSVP(资源源预留协议), windows,

备注:负责会话建立;

==============================================

表示层:

作用:格式化数据;

典型协议:ASCII, JPEG. PNG, MP3. WAV, AVI,

备注:可以提供加密服务;

===============================================

应用层:

作用:控制应用程序;

典型协议:telnet, ssh, http, ftp, smtp, rip, BGP, (未完待续)

备注:为应用程序提供网络服务;

====
#vim
vim粘贴json文件技巧:
主要也就是关闭自动换行,然后再粘贴内容。如下:
1、命令行模式输入
:set paste
2、回车,按i键进入输入模式,最后粘贴
嗯,姥爷好水……
#xmr #btc
服务器挖 XMR (门罗币),独服或者部分 VPS 可以玩玩,一天大概能挖不到1块钱,有些 IDC 商家限制挖矿的,留意!

1、注册钱包

前往门罗币官方网站下载页面: https://web.getmonero.org/zh-cn/downloads/#gui

下载安装门罗币钱包后,按照提示创建账号,设置钱包密码。获取门罗币账号地址等信息,保存在安全的地方。

2、选择矿池

你可以到这里找到门罗币矿池: https://monero.org/services/mining-pools/

这里选择猫池: https://c3pool.com/cn/

3、开挖

打开猫池主页,上面填上门罗币钱包地址,然后选择下面的一键脚本,选择 Linux 脚本,复制。

服务器或者 VPS 上,运行脚本。

启动命令: systemctl start c3pool_miner.service
#xmr #btc
限制程序跑 CPU 的百分比,比如下面挖矿程序 xmrig 占用 70% CPU,注意 TG 上隐藏了分号,也就是 Tab 键上的那个 ~ 键,具体看图

• apt -y install epel-release && apt update && apt -y install htop cpulimit
• nohup cpulimit -l 70 --pid ps -ef | grep xmrig | grep -v grep | awk '{print $2}' &