1024社区 | 1024.day
12K subscribers
405 photos
6 videos
3 files
1.06K links
这是一个分享VPS资讯以及Linux学习频道。
Download Telegram
nginx出现 worker_connections are not enough 错误,主要是程序和Linux打开open files数目问题。主要是增加nginx和ulimit打开文件的最大数可解决。

1:修改 nginx.conf 如下:
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
}


2:修改系统open files

1) vi /etc/security/limits.conf 添加:
* soft     nproc          65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

root soft nproc 65535
root hard nproc 65535
root soft nofile 65535
root hard nofile 65535

bro soft nproc 65535
bro hard nproc 65535
bro soft nofile 65535
bro hard nofile 65535


2) echo "session required pam_limits.so" >> /etc/pam.d/common-session

3) echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive

4) echo "DefaultLimitNOFILE=65535" >> /etc/systemd/system.conf

3:修改file-max

echo "fs.file-max = 6553560" >> /etc/sysctl.conf

重启vps后,可以使用命令 ulimit -n 或者 ulimit -a 查看 open files 参数。
有趣的Linux命令13:
今晚平安夜,给大家讲一个有趣的命令,`screenfetch` 命令,用于在终端里展示Linux发行版的logo及系统信息。

首先debian,ubuntu,linux mint,elementary OS用户使用下面的命令安装:

apt install screenfetch

然后直接运行,就可以看见漂亮的发行版logo了:

screenfetch
让Debian上的 ls 命令彩色,且启用 lll 命令,同Ubuntu的ls命令形式,文件夹后显示斜杠。

vi ~/.bashrc

修改或添加下面内容:

export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS -F'
alias ll='ls $LS_OPTIONS -lAF'
alias l='ls $LS_OPTIONS -lF'

修改后执行 source ~/.bashrc 或者重开窗口,即可生效。

l 列表详细显示,包括权限、用户等
ll 列表详细显示,包括权限、用户包括隐藏文件
ls 列出文件目录
#vim #vimrc
vim的一个简单配置,一般在可以在 ~/.vimrc 或者 /etc/vim/vimrc 里修改:

" 支持鼠标
set mouse=a

" 显示行号
set number

" 自动缩进,保持和上行一致
set autoindent

" 显示光标所在行号
"set relativenumber

" 光标所在的当前行高亮
set cursorline

" 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号
set showmatch

" 搜索时,高亮显示匹配结果
set hlsearch

" 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果
set incsearch

" 搜索时忽略大小写
set ignorecase

" 打开英语单词的拼写检查
"set spell spelllang=en_us

" 底部显示键入内容
set showcmd

" 智能匹配
set smartcase

" 编辑区域内使用深色背景和语法高亮
set background=dark

" Vim兼容Vi
set compatible

" 不加载除vimrc外的其它配置,比如defaults.vim
let g:skip_defaults_vim = 1

runtime! debian.vim

" 显示高亮
if has("syntax")
syntax on
endif

" 全局配置文件(如果有的话)
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
chmod命令图解:
有趣的Linux命令14:
2020终于要过去了,今晚就讲讲Linux关机,重启等命令应应景。

关机命令:

可以使用以下三种命令来关机 Linux :
1、立刻关机(需要root)
shutdown -h now

10 分钟后自动关机
shutdown -h 10

2、立刻关机
halt

3、立刻关机
poweroff

重启命令:

重启可以使用以下两种命令:
1、最简单的是使用 reboot 命令(需要root)
reboot 或者 /sbin/reboot

2、也可以使用 shutdown 命令
shutdown -r now

最后祝大家在新的一年身体健康,阖家欢乐!
#sh #vps
vps规格测试脚本: wget -qO- bench.sh | bash

vps查看回程线路脚本: wget -qO- git.io/besttrace | bash

vps的cpu性能测试脚本: wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh && chmod +x unixbench.sh && ./unixbench.sh

vps去程测试网址:https://tools.ipip.net/traceroute.php

vps的ping测试网址:https://ping.pe
#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 线路用的也是它家的,还有就是贵。