分类 默认分类 下的文章

要在Debian中更新系统内核,可以按照以下步骤操作:

打开终端窗口,使用管理员权限登录(可以使用sudo命令)。
运行以下命令更新软件包列表:
sudo apt update

运行以下命令升级已安装的软件包:
sudo apt upgrade

重新启动系统以使新内核生效:
sudo reboot

确保系统已经成功启动并使用新内核:
uname -r

Docker部署frp,需要先在映射文件夹中建立好配置文件

服务端frps

docker run --restart=always --network host -d -v /opt/dockerdata/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps

客户端frpc

docker run --restart=always --network host -d -v /opt/dockerdata/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc

frps.toml

# 代理映射的端口,与客户端 serverPort = 7000一致
bindPort = 7000
# quic模式映射,就是http3的映射,不过因为目前不能获取真实IP,客户端没有配置,这里只是加上而已
#quicBindPort = 7000

# 服务端http的端口
vhostHTTPPort = 880
#服务端https的端口
vhostHTTPSPort = 8443

# 授权方式,与客户端要一致
auth.method = "token"
auth.token = "xxxxxx"

#  配置 Web 服务器以启用 frps 的仪表板,可以看到连接状态
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

# 配置主域名,frpc端可以用subdomain配置自定义二级域名,不用配置customDomains
#subdomainHost = "xxx.com"

# 自定义404页面
#custom404Page = "./404.html"

# 服务端日志,保存三天,文件名frps.log
#log.to = "./frps.log"
#log.level = "info"
#log.maxDays = 3

frpc.toml

# 服务器的公网或域名
serverAddr = "xx.xx.xx.xx"
# 服务端通信端口,与frps.toml一致
serverPort = 7000
# 令牌,与frps.toml一致
auth.token = "xxxxxx"
# 连接服务端的超时时间(秒,增大时间避免frpc在网络未就绪的情况下启动失败)
transport.dialServerTimeout = 60
# 第一次登陆失败后是否退出(true为退出,false为不退出,继续连接)
loginFailExit = false

[[proxies]]
# 自定义名称
name = "xxx"
# 服务类型(http、https、tcp等)
type = "http"
# 本地服务端口
localPort = 5000
# 服务需要绑定的域名
customDomains = ["xx.com"]
# 如果frps配置的有subdomainHost,可以直接配置二级域名,与customDomains二选一
#subdomain = "xx"

[[proxies]]
# 自定义名称
name = "ssh"
# 服务类型(http、https、tcp等)
type = "tcp"
# 本地服务端口
localPort = 22
# 服务器的转发端口,例如1022
remotePort = 1022
# 服务需要绑定的域名
customDomains = ["xx.com"]
# 如果frps配置的有subdomainHost,可以直接配置二级域名,与customDomains二选一
#subdomain = "xx"

配置Nginx和frps共用80和443端口

frps和Nginx都要同时使用端口80/443,会产生冲突而导致frps不能正常使用的,因为Nginx已提前接管80/443端口,frps是无法正确工作的。

1、修改frps.toml文件,修改vhost_http_port和vhost_https_port为非80和443端口,比如修改为880和8443

2、查看nginx配置文件nginx.conf中加载的其他*.conf文件路径,例如配置文件中显示的是include /usr/local/nginx/conf/conf.d/*.conf,那么在conf.d文件夹下创建frps.conf文件,注意把xxx.com改为自己frp要用的域名,端口改为上一步设置的vhost_http_port端口880,配置内容如下:

server {
    listen 80;
    server_name *.xxx.com;
#    return 301 https://$host$request_uri;

    location / {
        proxy_pass http://127.0.0.1:880;
        proxy_redirect http://$host/ http://$http_host/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
    }
}

server {
    listen 443 ssl http2;
    server_name *.xxx.com;

#    ssl_certificate /www/server/panel/vhost/cert/yourdomain.crt;
#    ssl_certificate_key /www/server/panel/vhost/cert/yourdomain.key;

    client_max_body_size 0m; 
    client_body_buffer_size 256k;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    proxy_connect_timeout 300s; 
    proxy_read_timeout 300s; 
    proxy_send_timeout 300s;
    proxy_buffer_size 64k; 
    proxy_buffers 4 32k; 
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k; 
    proxy_ignore_client_abort on; 

    location / {
        proxy_pass http://127.0.0.1:880;
        proxy_redirect https://$host/ https://$http_host/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_ssl_server_name on;
        proxy_set_header Host $host;
    }
}

如果只接受https加密方式访问,配置内容如下:

server {
 listen 80;
 server_name *.xxx.com;
 return 301 https://$host$request_uri;
}
server {
 listen 443 ssl http2;
 server_name *.xxx.com;
 ssl_certificate /usr/local/nginx/conf/ssl/urdomain.com/fullchain.cer;
 ssl_certificate_key /usr/local/nginx/conf/ssl/urdomain.com/urdomain.com.key;
 client_max_body_size 50m; 
 client_body_buffer_size 256k;
 client_header_timeout 3m;
 client_body_timeout 3m;
 send_timeout 3m;
 proxy_connect_timeout 300s; 
 proxy_read_timeout 300s; 
 proxy_send_timeout 300s;
 proxy_buffer_size 64k; 
 proxy_buffers 4 32k; 
 proxy_busy_buffers_size 64k;
 proxy_temp_file_write_size 64k; 
 proxy_ignore_client_abort on; 
 location / {
 proxy_pass http://127.0.0.1:880;
 proxy_redirect off;
 proxy_set_header Host $host:80;
 proxy_ssl_server_name on;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 }
}

配置完后重启nginx即可,如果frps.conf未被加载,可以在nginx配置文件nginx.conf中加入frps.conf路径,配置如下:

include /usr/local/nginx/conf/conf.d/*.conf;
include /frps所在路径/frps.conf;

重启nginx和frps服务端

ddns-go

docker run -d --name ddns-go --restart=always --net=host -v /opt/dockerdata/ddns-go:/root jeessy/ddns-go

v2raya

docker run -d \
  --restart=always \
  --privileged \
  --network=host \
  --name v2raya \
  -e V2RAYA_LOG_FILE=/tmp/v2raya.log \
  -v /lib/modules:/lib/modules:ro \
  -v /etc/resolv.conf:/etc/resolv.conf \
  -v /mnt/sata1-5/dockerdata/v2raya:/etc/v2raya \
  mzz2017/v2raya

alist-aria2

docker run -d --restart=always -v /opt/dockerdata/alist-aria2/data:/opt/alist/data -v /opt/dockerdata/alist-aria2/files:/opt/files -p 5244:5244 --name="alist-aria2" xhofe/alist-aria2:latest

uptime-kuma

docker run -d --restart=always -p 3001:3001 -v /opt/docker/uptime-kuma/:/app/data --name uptime-kuma louislam/uptime-kuma:1

frp

frps

docker run --restart=always --network host -d -v /opt/docker/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps

frpc

docker run --restart=always --network host -d -v /opt/dockerdata/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc

甲骨文自定义密码

#!/bin/bash
echo root:******** |sudo chpasswd root
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
sudo service sshd restart

甲骨文保活

docker run -d --name keeporaclealive --restart always alpine sh -c "while true; do for i in {1..100000}; do j=$((i*i)); done; done"
docker run -itd --name=lookbusy --restart=always \
   -e TZ=Asia/Shanghai \
   -e CPU_UTIL=10-20 \ # CPU占用,单位%,不可省略,支持固定值或范围
   -e MEM_UTIL=15 \ # 内存占用,单位%,不跑内存可省略
   -e SPEEDTEST_INTERVAL=120 \ # 网络测速间隔,单位分钟,不跑网络可省略
   fogforest/lookbusy

x-ui

docker run -itd --network=host \
    --name x-ui \
    -v /opt/dockerdata/xui/db/:/etc/x-ui/ \
    -v /opt/dockerdata/xui/cert/:/root/cert/ \
    --restart=unless-stopped \
    enwaiax/x-ui

zerotier

docker run --device=/dev/net/tun \
--name zerotier-one \
--net=host \
--restart=always \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /sata1-5/docker/containers/zerotier-one:/var/lib/zerotier-one \
bltavares/zerotier:latest

docker exec zerotier-one zerotier-cli join 83048a063289e46f

bitwarden

docker run -d --name vaultwarden -v /opt/dockerdata/vw-data/:/data/ --restart unless-stopped -p 8000:80 vaultwarden/server:latest

DD debian11

wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh
bash InstallNET.sh -debian 11 -pwd ********

RustDesk

docker run --name hbbs --restart unless-stopped --net=host -v /opt/dockerdata/rustdesk/hbbs:/root -d rustdesk/rustdesk-server:latest hbbs -r 120.194.109.213 -k gq123456
docker run --name hbbr --restart unless-stopped --net=host -v /opt/dockerdata/rustdesk/hbbr:/root -d rustdesk/rustdesk-server:latest hbbr
docker run -d \
  --name rustdesk-api-server \
  -p 21114:21114 \
  -e ID_SERVER=rustdesk-api-server \
  -v /opt/dockerdata/rustdesk/rustdesk-api-server/db:/rustdesk-api-server/db \
  -v /etc/timezone:/etc/timezone:ro \
  -v /etc/localtime:/etc/localtime:ro \
  --network bridge \
  --restart unless-stopped \

防止应用程序内存不足问题的最简单方法之一是增加服务器中的一些交换大小。在本文中,我们将解释如何将交换文件添加到Ubuntu服务器。

第一步:查看Swap信息

在我们开始之前,首先确保通过运行以下swapon命令检查系统是否已经有可用的交换空间。

$ sudo swapon --show

在 Ubuntu 中检查交换空间

如果您没有看到任何输出,则表示您的系统当前没有可用的交换空间。

此外,还可以使用free命令确认没有可用的交换空间。

$ free -h

在 Ubuntu 中检查可用交换空间

从上面的输出可以看出,系统上没有活动的交换区。

第 2 步:检查分区上的可用空间

要创建交换空间,首先,您需要检查您当前的磁盘使用情况,并确认系统上有足够的空间来创建交换文件。

$ df -h

在 Ubuntu 中检查文件系统磁盘使用情况

/分区有足够的可用空间来创建交换文件。

第 3 步:在 Ubuntu中创建交换文件

现在我们将使用fallocate"swap.img"命令在Ubuntu root (/)目录上创建一个交换文件,大小为1GB(您可以根据需要调整大小)并使用ls 命令验证交换文件的大小,如图所示。

$ sudo fallocate -l 1G /swap.img
$ ls -lh /swap.img

在 Ubuntu 中创建交换文件

从上面的输出中,您可以看到我们已经创建了具有正确空间量(即1GB )的交换文件。

第 4 步:在Ubuntu中启用交换文件

要在 Ubuntu 中启用交换文件,首先,需要对该文件设置正确的权限,以便只有用户root才能访问该文件。

$ sudo chmod 600 /swap.img
$ ls -lh /swap.img

设置交换文件的权限

从上面的输出可以看出只有root用户有读写权限。

现在运行以下命令将文件标记为交换空间并启用交换文件以开始在系统上使用它。

$ sudo mkswap /swap.img
$ sudo swapon /swap.img

在 Ubuntu 中启用交换空间

通过运行以下命令验证交换空间是否可用。

$ sudo swapon --show
$ free -h

在 Ubuntu 中验证交换空间

从上面的输出中可以看出,我们的新交换文件已经成功创建,我们的 Ubuntu 系统将根据需要开始使用它。

第 5 步:在 Ubuntu 中永久挂载交换文件

要使交换空间永久存在,需要在/etc/fstab文件中添加交换文件信息,并通过运行以下命令进行验证。

$ echo '/swap.img none swap sw 0 0' | sudo tee -a /etc/fstab
$ cat /etc/fstab

在 Ubuntu 中永久挂载交换文件

第 6 步:在 Ubuntu 中调整交换设置

您需要配置一些设置,这些设置会在使用交换时影响 Ubuntu 的性能。

调整交换值

Swappiness是一个 Linux 内核参数,用于指定系统将数据从 RAM 交换到交换空间的次数(以及频率)。此参数的默认值为“60”,可以使用“0”“100”之间的任何值。值越高,内核对交换空间的使用就越高。

首先,通过键入以下命令检查当前的 swappiness 值。

$ cat /proc/sys/vm/swappiness

检查交换价值

当前的 swappiness 值60非常适合桌面使用,但对于服务器,您必须将其设置为较低的值,即10

$ sudo sysctl vm.swappiness=10

要使此设置永久生效,您需要将以下行添加到文件中/etc/sysctl.conf

vm.swappiness=10

调整缓存压力设置

另一个可能想要更改的类似设置是vfs_cache_pressure- 此设置指定系统将在其他数据上缓存多少inodedentry详细信息。

您可以通过查询 proc 文件系统来检查当前值。

$ cat /proc/sys/vm/vfs_cache_pressure

检查缓存压力设置

当前值设置为100,这意味着我们的系统从缓存中删除 inode 信息的速度太快了。我建议应该将其设置为更稳定的设置,例如50

$ sudo sysctl vm.vfs_cache_pressure=50

要使此设置永久生效,需要将以下行添加到文件中/etc/sysctl.conf

vm.vfs_cache_pressure=50

完成后保存并关闭文件。

第 7 步:在 Ubuntu 中删除交换文件

要移除或删除新创建的交换文件,请运行以下命令。

$ sudo swapoff -v /swap.img
$ sudo rm -rf /swap.img

在 Ubuntu 中删除交换文件

最后,从/etc/fstab文件中删除交换文件条目。

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

关闭iptables

service iptables stop

去掉iptables开机启动

chkconfig iptables off

开放所有端口

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

Oracle自带的Ubuntu镜像默认设置了Iptable规则,关闭它

apt-get purge netfilter-persistent
reboot

强制删除

rm -rf /etc/iptables && reboot
除此之外如果创建了安全组还需要自行放行安全组