1024社区 | 1024.day
12K subscribers
406 photos
6 videos
3 files
1.06K links
这是一个分享VPS资讯以及Linux学习频道。
Download Telegram
更新一下ws代理使用cloudflare的优选ip方法:
域名使用cf的dns解析,然后客户端ip填写你找到的cf ip,伪装域名填你的域名就可以了。(不管点不点亮旁边的小云朵都可以)而不用去worker反代。
小内存vps,增加或删除swap分区方法:

检查分区: free -h

              total        used        free      shared  buff/cache   available
Mem: 470M 69M 271M 3.6M 129M 386M
Swap: 1.0G 0B 1.0G

如果出现上面字样说明你的vps是存在swap分区的,这个时候想调整分区大小,俺们就要先删除原有分区,再创建。

找到swapfile文件: find -name swapfile

cd到存放swapfile的文件夹

停用swap空间: swapoff swapfile

删除swapfile文件: rm swapfile

上面完事后就等于删除swap分区了,接下来创建swap分区。

cd / && mkdir swap && cd swap

创建swap文件,后面的2048是分区大小2g,自己可以根据需要调整。

dd if=/dev/zero of=swapfile bs=1M count=2048

将文件标记为交换空间:

mkswap swapfile

启用该交换文件:

swapon swapfile

另建议给swapfile文件权限为600,也就是root权限,以免出现安全隐患:

chmod 600 swapfile

再次检查一下swap分区是否可用:

swapon --show

最后,设置swap分区为开机自动挂载:

echo "/swap/swapfile none swap sw 0 0" >> /etc/fstab

建议swap分区大小和RAM大小保持差不多。
有趣的Linux命令10:
今晚要讲的的是 tar 解压缩命令,一般发行版会自带。

tar = tape archive

.tar.gz压缩和解压
解压:
tar -zxvf cloud.tar.gz
解压到目标路径:
tar -zxvf cloud.tar.gz -C /cloud
压缩:
将cloud文件夹压缩为cloud.tar.gz
tar -zcvf cloud.tar.gz cloud

.gz解压缩
解压:
gunzip cloud.gz
gzip -d cloud.gz
压缩:
gzip cloud

.zip解压缩
解压:
unzip cloud.zip
压缩:
zip cloud.zip cloud
压缩,递归压缩,文件夹压缩
zip -r cloud.zip cloud
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
有趣的Linux命令11:
今晚要讲的是查看服务器状态命令,比如内核,系统,cpu信息,硬盘,分区,内存,swap,端口信息等命令。

查看内核/操作系统
uname -a

查看CPU信息
cat /proc/cpuinfo

查看硬盘各分区使用情况
df -h

查看内存和swap交换区使用情况
free -h

查看所有进程
ps -ef

查看所有监听端口
netstat -lntp

查看所有已经建立的连接
netstat -antp
有趣的Linux命令12:
今晚要讲的是 ps 命令,用于显示当前进程的状态,类似于 windows 的任务管理器。上次俺们讲过 top 命令,用于动态显示进程信息。而这次的 ps 命令列出的是当前那些进程的快照。

ps = process status

下面列出常用的ps的命令:

显示所有进程信息:
ps -A

显示指定用户信息:
ps -u root

显示所有进程信息,连同命令行:
ps -ef

ps 与 grep 组合使用,查找特定进程:
ps -ef | grep nginx

列出目前所有的正在内存中的程序:
ps aux
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!