一键dd

dd debian11

bash <(wget --no-check-certificate -qO- 'https://down.pc6a.com/03.%E5%8D%9A%E5%AE%A2/2021/InstallNET.sh') -d 11 -v 64 -a -p 密码

另一个脚本:

bash <(wget --no-check-certificate -qO- 'https://www.moeelf.com/attachment/LinuxShell/InstallNET.sh') -d 11 -v 64 -a -p 密码

萌卡的

bash <(wget --no-check-certificate -qO- 'https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh') -d 11 -v 64 -a -p xxxx -port xxxx
11表示debian11,64位,-a为自动安装,-p后面是密码,-port后面是ssh端口,一般等个几分钟后即可ssh连接

更新应用包

apt update && apt upgrade

清理老版本软件:

apt autoremove

升级内核

某些低版本开启bbr必须,加速模式为原版bbr+fq或者原版bbr+fq_pie

wget -O tcp.sh "https://git.io/coolspeeda" && chmod +x tcp.sh && ./tcp.sh

升级完后输入uname-r查看当前内核,输入./tcp.sh管理

speedtest测速脚本

安装

curl -fsSL git.io/speedtest-cli.sh | bash

输入speedtest即可,

选择机房

speedtest -L

然后

speedtest -s xx

warp

warp视需要安装,ipv6only机子必须安装,ipv4可安装规避google验证码和解锁视频。debian要求10以上。

更改ns让ipv6访问ipv4

echo -e "nameserver 2001:67c:2b0::4\nnameserver 2001:67c:2b0::6" > /etc/resolv.conf

安装

wget -N https://cdn.jsdelivr.net/gh/fscarmen/warp/menu.sh && bash menu.sh

然后输入warp查看情况,输入wg查看经过cloudflare路由的流量

测试ipv4和6的地址:

curl -4 ip.p3terx.com
curl -6 ip.p3terx.com

测试优先使用哪种ip

curl ip.p3terx.com

或者

curl ip.sb

让vps优先使用ip4

vim /etc/gai.conf

找到precedence ::ffff:0:0/96 100 将前面的注释 # 去掉并保存,如果前面没有 # 号表示已经更改过设置了。如果没有查找到该行直接在文件末尾添加上然后重启

关闭ipv6

vim /etc/sysctl.conf

添加如下内容

net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1

然后

sysctl -p
注意,这只是让本机优先使用ipv4,但是xray依旧优先用ipv6,如果要让xray优先ipv4则需要更改分流设置

几个常用测ip网站:

ip111sspanelsspanelipsbskkifapi64

另一个warp脚本

bash <(curl -fsSL git.io/warp.sh) menu

linux系统时间和时区设置

Linux下,默认情况下,系统时间和硬件时间并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠BIOS电池来维持,而系统时间,是用CPU Tick来维持的。在系统开机的时候,会自动从BIOS中取得硬件时间,设置为系统时间。所以开机时间长了经常导致时间不对。

特别是vm协议需要服务端时间和客户端时间保持一致时经常导致无网络也找不到原因

系统时间的设置

在Linux中设置系统时间,可以用date命令
查看时间date
修改时间:

date -s "20140225 20:16:00" 
#yyyymmdd hh:mm:ss

硬件时间的设置

硬件时间的设置,可以用hwclock或者clock命令。两者基本相同,只用一个就行,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系
查看硬件时间:hwclock
设置硬件时间

hwclock --set --date "20140225 20:23:00"

系统时间和硬件时间的同步

以系统时间为基准,修改硬件时间:

hwclock -w

以硬件时间为基准,修改系统时间:

hwclock -s

ntpdate同步网络时间

首先安装ntpdate

apt install ntpdate

命令

ntpdate -u 

网络时间服务器

中国国家授时中心:210.72.145.44
NTP服务器(上海) :ntp.api.bz
美国: time.nist.gov
复旦: ntp.fudan.edu.cn
微软公司授时主机(美国) :time.windows.com
北京邮电大学 : s1a.time.edu.cn
清华大学 : s1b.time.edu.cn
北京大学 : s1c.time.edu.cn
台警大授时中心(台湾):asia.pool.ntp.org

设置上海时区

移出当前

rm -rf /etc/localtime

设置

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后输入date或者date -R 查看时间

修改hostname

输入hostname查看当前的hostname,输入hostname xxx临时改变hostname,然后

vim /etc/hosts

永久修改,还有

vim /etc/hostname

用hostnamectl命令修改
显示主机名状态

hostnamectl status

修改主机名

hostnamectl set-hostname xxxxx

swap

大小和内存相同或者两倍,首先用free -h查看swap大小和使用情况

安装swap

cd到一个目录存放swap文件,不cd的话会存放在根目录,个人使用cd/var然后创建swap文件:

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

if 表示infile,后面是地址,of表示outfile,bs=1M代表增加的模块大小,count=2048代表2048个模块也就是2G

这是增加的swap原swap依旧有效,可先删除原swap文件,方法见下面

将目的文件设置为swap分区文件

mkswap swap1

另外为了安全建议将交换分区文件权限设为 0600,执行以下命令

chmod 0600 swap1

激活swap,立即启用交换分区文件

swapon swap1

检查 Swap 是否正确

swapon -s

free -m查看swap已经增加了,但这只是临时性的,如果机器重启会失效,输入

vim /etc/fstab

按i进入编辑模式,最后一行添加

/var/swap1       swap            swap    defaults          0       0

然后esc后:wq保存退出
1
reboot重启free -h查看是否成功

删除 Swap 文件

首先将 Swap 文件取消激活

swapoff /var/swap1

然后删除我们设置的 Swap 文件

rm /var/swap1

最后再编辑 fstab 文件删除掉自动挂载 Swap 的设置即可

swappiness

  • swap什么时候使用是由swappiness 参数值控制。swappiness=0的时候表示最大限度使用物理内存,然后才是swap空间!swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。查看命令:

    cat /proc/sys/vm/swappiness

    或者:

    sysctl vm.swappiness

    一般值为60,即当内存达到100-60=40时开始使用swap。

  • 永久修改:
    在/etc/sysctl.conf 文件里添加如下参数:
    vm.swappiness=10然后重启系统。

安装宝塔面板7.7版本

安装

curl -sSO https://raw.githubusercontent.com/zhucaidan/btpanel-v7.7.0/main/install/install_panel.sh && bash install_panel.sh

宝塔去手机号绑定:

sed -i "s|if (bind_user == 'True') {|if (bind_user == 'REMOVED') {|g" /www/server/panel/BTPanel/static/js/index.js
rm -rf /www/server/panel/data/bind.pl

卸载宝塔:

wget http://download.bt.cn/install/bt-uninstall.sh
sh bt-uninstall.sh

或者ssh输入bt然后根据提示卸载

改ssh端口

首先

vim /etc/ssh/sshd_config

找到22端口,取消注释#,更改新端口然后重启

systemctl restart sshd

查看端口情况

netstat -ntl

设置ssh密钥登录

通过ssh命令或者ssh软件如termiux生成的ssh key,右上角导出到文件选择路径会生成一个xx.pub格式的文件,改全名为authorized_keys,这个是公钥,会通过储存在手机里的私钥匹配上了才能连接。
把它导入到vps根目录的.ssh文件夹里,没有则创建一个:

mkdir .ssh

权限更改为:

chmod 700 .ssh

authorized_keys更改权限为:

chmod 600 authorized_keys

设置key登录:

vim /etc/ssh/sshd_config

里面有些要更改设置有的要去掉注释
设置PubkeyAuthentication为yes
以及PermitRootLogin为yes
还有AuthorizedKeysFile的文件路径为.ssh/authorized_keys
然后重启ssh服务

systemctl restart sshd

随后退出ssh在客户端去掉密码如果登录成功则表示已经成功设置
如果当你完成全部设置,并以密钥方式登录成功后,再根据需求禁用密码登录:

vim /etc/ssh/sshd_config

更改
PasswordAuthentication 为no然后

systemctl restart sshd
注意,更改完成后不要去宝塔安全里面动ssh安全管理,会把设置重置

清理垃圾

清楚软件包

清理掉一些不要的依赖包

apt autoremove

清理软件缓存

apt autoclean

清理apt缓存

apt clean

清理log文件

linux运行时会生成大量的log文件于/var/log/journal下,查看占用

journalctl --disk-usage

清理如下:首先进入/var/log/journal下查看占用大小然后保留文件夹删除

  • 上述删除后还会再生永久命令为:编辑 conf文件
vim /etc/systemd/journald.conf

对其中的参数进行设置。例如限制日志最大占用1G空间去掉#注释修改SystemMaxUse=1G即可!然后重启

systemctl restart systemd-journald.service

清除last登录日志

清除last记录

echo “”>/var/log/wtmp

清除lastb记录

echo “”> /var/log/btmp

清除历史输入记录

临时清理 history -c
彻底清除,存放历史命令的文件是.bash_history,清空该文件(echo "" > /root/.bash_history)然后退出ssh再进即可

清理mail文件

debian运行会产生很多重要信息,系统会通过位于/var/mail/root文件的邮件来通知用户,比如如登录信息和crontab定时任务等,清空方式为:

echo ""> /var/mail/root

清理tmp临时文件夹

tmp存放临时文件,一般在系统重启时自动清理如果机子很少重启的话可更改配置文件定时清理。位置为/tmp以及/var/tmp

vim /usr/lib/tmpfiles.d/tmp.conf

更改后面时间为需要的数字,如3d表示3天。有注释取消注释,空白则补全。

清理多余内核

先用命令查看有几个内核

dpkg --list | grep linux-image

或者

hostnamectl | grep -i kernel

或者

dpkg --get-selections |     grep linux

然后

apt purge linux-image-***

给ssh添加颜色

ls颜色

首先

vim .bashrc

去掉color颜色以及ls、l和ll前面注释并且把l参数改为-hl把ll参数改为-hal然后

source .bashrc

或者重启ssh即可在ls时显示文件夹和新文件颜色

命令行颜色

PS1 是Linux终端用户的一个环境变量,用来定义命令行提示符的参数,输入

echo $PS1

一般显示参数为[\u@\h \W]\$ '
\u :当前用户的账号名称
\w :完整的工作目录名称
\h :仅取主机名中的第一个名字
\$(注意必须两个):提示字符,如果是root用户,提示符为 # ,普通用户则为 $
个人设置为:

\u@\h:\w\\$ 
注意$后面的空格

带颜色的话会包含颜色参数,格式以\[\e[F;Bm\]开头,以\[\e[0m\]结尾,中间是需要设置颜色的部分,其中“F“为字体颜色,编号为30-37,“B”为背景色,编号为40~47,对应的颜色顺序为:30(40)黑,31红,32绿,33黄,34蓝,35紫红,36青蓝,37(47)白
可通过PS1="xx"临时设置,永久设置需要修改.bashrc文件后面添加PS1=。然后source .bashrc。个人完整设置为:

PS1="\[\e[34;42m\]\u@\h:\w\\$\[\e[0m\] "

然后

vim .bashrc

添加上面PS1内容,保存退出然后

source .bashrc

安装ssl证书

证书构成

证书文件为全链证书,即fullchain,包括root证书中间证书用户证书。证书授权流程如图:证书
可自己通过acme.sh脚本申请后导入,也可导入cloudflare的自选证书(只能使用cloudflare的cdn即勾小云朵才能用)

acme申请证书

  • 安装工具:
apt install -y socat
  • 安装 Acme 脚本(首先安装curl):
curl https://get.acme.sh | sh
  • 自行更换代码中的域名、邮箱为你解析的域名及邮箱, 之前 要先把80端口空出来,先lsof-i:80搜索占用80端口的pid,然后kill-9 pid结束即可!
  • 注册邮箱
.acme.sh/acme.sh --register-account -m [email protected]
  • 正式申请
.acme.sh/acme.sh  --issue -d mydomain  --standalone
  • 安装证书到指定文件夹,自行更换代码中的域名为你解析的域名.
.acme.sh/acme.sh --installcert -d mydomain --key-file /root/private.key --fullchain-file /root/cert.crt

注意 如果提示Sleep 10 and retry则需要换一个ca,acme提供四种证书

  • 切换 Let's Encrypt
.acme.sh/acme.sh --set-default-ca --server letsencrypt
  • 切换 ZeroSSL
.acme.sh/acme.sh --set-default-ca --server zerossl
  • 切换Buypass
.acme.sh/acme.sh --set-default-ca --server buypass
  • 脚本自动更新
.acme.sh/acme.sh --upgrade --auto-upgrade
  • 证书会自动更新的,可通过命令
.acme.sh/acme.sh --list

查看已注册的证书和下次要更新的时间(一般是60天后提前30天自动续期),或者

.acme.sh/acme.sh --cron

查看或者.acme.sh/acme.sh --cron -f强行续期或者crontab -l查看

ws通信方式可用cdn加速(只能用ws且勾选小云朵或者自选),通过cf自选的ip可起飞。想用cf自选ip的话只能用ws模式且用cf自选证书。而如果tcp模式的话不能用自选ip加速且不能用cf自签证书
  • 所以tcp模式搭配let等证书(不勾小云朵),或者ws模式搭配cf自签15年证书(勾小云朵)

测速脚本

三网测速简单

wget -qO- bench.sh | bash

国内测速少

wget -qO- git.io/superbench.sh | bash

纯国内三网多

bash <(curl -Lso- https://git.io/Jlkmw)

回程测试

wget -qO- git.io/autobesttrace | bash

cpu分数

curl -sL yabs.sh | bash -s -- -fdir

流媒体解锁

bash <(curl -L -s check.unlock.media)

chfs共享文件

CuteHttpFileServer是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。

  • 首先(有unzip则不需要)
apt -y install unzip
  • cd到对应的文件夹下面,下载对应的chfs文件:
wget http://iscute.cn/tar/chfs/2.0/chfs-linux-amd64-2.0.zip
  • 解压:
unzip chfs-linux-amd64-2.0.zip
  • 给执行权限:
chmod +x chfs
由于chfs启动默认是使用80端口,但很多时候我们的服务器上都有其他站点,肯定不能把这个小文件服务器直接跑在80端口,这样端口会被占用,好在chfs支持自定义端口,可以加参数指定端口号,例如:--port=2333
chfs还很人性化的支持列出指定盘符的文件或是目录中的文件,同样的我们也可以加参数运行来实现:--path=/root
  • 启动命令:
./chfs --port=8000 --path=/root

然后就能通过http://ip:8080访问了,
ctrl c退出

防火墙端口

centos

  • 查看状态:
firewall-cmd --state
  • 停止防火墙
systemctl stop firewalld.service
  • 禁止防火墙开机启动
systemctl disable firewalld.service
  • 开启指定端口,以80为例
firewall-cmd --zone=public --add-port=80/tcp --permanent
  • 开启后要重启防火墙生效
firewall-cmd --reload
  • 关闭指定端口,以80为例
firewall-cmd --zone=public --remove-port=80/tcp --permanent
  • 查询端口开启状态
firewall-cmd --zone=public --list-ports

debian系统

debian用的是ufw防火墙,默认只开启22端口,所以要首先关闭ufw或者干脆卸载

  • 检查状态
ufw status
  • 开启
ufw enable
  • 关闭
ufw disable
  • 卸载
apt remove ufw

查端口占用

要先安装lsof
apt install lsof

lsof -i:命令

lsof -i:端口号

netstat

  • 安装
apt-get install net-tools
  • 显示所有tcp端口
netstat -ntl
  • 显示所有 tcp udp的端口
netstat -tunlp
  • 端口号具体某个端口占用
netstat -tunlp | grep 端口

ps命令

  • Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器
  • ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
    -A 列出所有的进程
    -aux 显示所有包含其他使用者的行
  • 查找指定进程格式:
    常用
ps -aux | grep 进程关键字

或者

ps -ef | grep 进程关键字
  • 显示所有进程信息,连同命令行ps -ef

cfp变相接入

  • 首先到域名注册商更改ns到cf,然后正常添加域名到cf
  • 然后添加a记录打开小云朵,设置ssl为严格,等待cf颁发ssl证书,在边缘证书位置查看。
  • 生成15年服务器证书并复制服务器证书和密钥保存起来!
  • 去域名注册商处更改ns为dnspod华为云阿里云国际等等,然后在上面云服务里设置cname记录,默认为域名.cdn.cloudflare.net。国内三网cname指向cf.521024.xyz或者cf.188187.xyz或者a记录指向自选ip,可通过这个网站添加!
  • cname到上面地址后cf会接管域名!只能用cf的证书

    cf官方会定时检查ns,大约7天会发邮件提示ns变动否则删除,所以要大约10几天到域名注册商改ns到cf然后再到云服务。

探针

个人用的是ServerStatus-Hotaru,分为服务端和客户端,需要开启网站的是服务端,只需一个即可!而每个托管到本机的都需要安装1个客户端,自己也可以安装客户端监控自己!

安装服务端

  • 安装
 wget https://raw.githubusercontent.com/CokeMine/ServerStatus-Hotaru/master/status.sh
  • 然后输入以下指令进入管理界面:
bash status.sh s

  • 首次安装输入1,然后程序会提示输入监控端口(默认35601)、这个端口是客户端需要开启和被服务端监控的端口!安装必要的依赖软件(期间会出现软件安装提示,按y然后回车),选择是否由脚本自动配置HTTP服务(安装和配置caddy)、设置防火墙规则,最后出现安装和启动成功。如果安装过程中选择了“由脚本自动配置HTTP服务(服务端的在线监控网站)”,浏览器直接打开 “IP:端口” 或者 “域名:端口”(需设置dns解析到该服务器,这个端口不是上面那个35601,是服务端开启的端口)便可以看到监控网站。

    如果是ipv6only机子需要把服务端端口设置为能通过cf代理的端口,如8080等,然后打开小云朵!

安装客户端

  • 安装命令同上:
wget https://raw.githubusercontent.com/CokeMine/ServerStatus-Hotaru/master/status.sh
  • 然后打开管理界面:
bash status.sh c
  • 此时同样会弹出菜单界面,首次安装选择1,然后设置刚刚服务端设置的IP、端口、服务端配置中该节点的用户名和密码,接下来脚本会自动安装依赖和下载程序文件(期间会出现软件安装提示,按y然后回车),最后提示安装成功。

    服务端是ip6only机子通过cf代理的域名需要直接输入长长的ip6地址。
    ipv4only机子连接服务端是ipv6机子的时候要先装warp同理ip6连接ipv4

    客户端是ip6only机子如果安装了warp的话,会检测到两个网卡,选warp那个!而不是etc0!因为流量主要走warp,相反如果ipv4only安装warp则选择默认网卡而不是warp!

    修改探针前端

  • 如果仅修改标题、副标题、页脚和更新数据的间隔,可以直接修改根目录下的config.js文件。
  • 如需要修改服务端配置,修改/usr/local/ServerStatus/server/config.json即可!
  • 已经修改后的前端文件(去下面国旗卡片以及替换上面的二次元图片):前端

    使用宝塔安装探针

  • 这个更简单也更方便,通过上面安装好服务端最后一步配置HTTP服务,输入“N”以手动部署选择
    探针
  • 然后宝塔建一个网站,个人为tz.xx.com,PHP版本选纯静态然后配置证书,网站根目录从默认的/www/wwwroot/tz.xx.com改到/usr/local/ServerStatus/web
    探针
最后修改:2024 年 12 月 31 日
如果觉得我的文章对你有用,请随意赞赏