Proxmox VE把1TB的机械硬盘直通给虚机,作为数据存储用途 2021-8-18

第一步,安装必要的组建

root@HOSTNODE01:~# apt update
root@HOSTNODE01:~# apt install lshw
root@HOSTNODE01:~# apt install ntfs-3g fuse

第二步,找到存储设备的序列号

root@HOSTNODE01:~# fdisk -l   # 找到新加的3.5英寸1TB容量的硬盘
Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10EZEX-60W
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x8d4d51e6

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdc1        2048 1953521663 1953519616 931.5G  7 HPFS/NTFS/exFAT
root@HOSTNODE01:~# 

root@HOSTNODE01:~# ls -l /dev/disk/by-id | grep sdc    # 找到存储设备的序列号,不用管带分区名字的行
lrwxrwxrwx 1 root root  9 Aug 18 20:23 ata-WDC_WD10EZEX-60WN4A0_WD-WCC6Y7DSYEU7 -> ../../sdc
lrwxrwxrwx 1 root root 10 Aug 18 20:23 ata-WDC_WD10EZEX-60WN4A0_WD-WCC6Y7DSYEU7-part1 -> ../../sdc1
lrwxrwxrwx 1 root root  9 Aug 18 20:23 wwn-0x50014ee20f24cb97 -> ../../sdc
lrwxrwxrwx 1 root root 10 Aug 18 20:23 wwn-0x50014ee20f24cb97-part1 -> ../../sdc1

第三步,使用命令把硬盘直通到虚机

# 挂载的命令
root@HOSTNODE01:~# qm set 100 -scsi2 /dev/disk/by-id/ata-WDC_WD10EZEX-60WN4A0_WD-WCC6Y7DSYEU7
update VM 100: -scsi2 /dev/disk/by-id/ata-WDC_WD10EZEX-60WN4A0_WD-WCC6Y7DSYEU7
root@HOSTNODE01:~# 
// 参数100,虚机在PVE中的ID号,在PVE的web环境上,可以看到
// 参数2,可选-scsi2 -sata1 -virtio2,表示为接口规格
// 参数,就是硬盘的序列号
# 检查是否挂载,命令如下,或者在PVE的WEB上查看
root@HOSTNODE01:~# grep WDC_WD10EZEX /etc/pve/qemu-server/100.conf
scsi2: /dev/disk/by-id/ata-WDC_WD10EZEX-60WN4A0_WD-WCC6Y7DSYEU7,size=976762584K
root@HOSTNODE01:~# 

第四步,使用命令带数据的3.5英寸1TB硬盘挂载到虚机的目录下

root@VM01:~# apt install ntfs-3g fuse
root@VM01:~# fdisk -l
root@VM01:~# mount -t ntfs /dev/sdb1 /media/hdd1TB
root@VM01:~# vi /etc/fstab
/dev/sdb1 /media/hdd1TB ntfs defaults 0 0

附录1, 参考文档 https://pve.proxmox.com/wiki/Passthrough_Physical_Disk_to_Virtual_Machine_(VM)

Donate
云乞讨

基于docker快速部署Nextcloud私有云 2021-8-17

需求描述

快速部署Nextcloud私有云盘,搭配Transmission服务,实现BT下载,云播放,混合实现

2021-12-30 更新博客,增加ocDownloader的内容,ocDownloader在docker的nextcloud这边有点问题,暂不推荐

推荐的服务器配置 2核心 1.5GB内存 12G SSD系统盘 1TB HDD直通硬盘作为数据盘

部署步骤

// 创建需要的目录
// /var/www/nextcloud 为需要的Nextcloud WEB文件目录
// /media/vData 为直通的1TB HDD硬盘的挂载目录
root@debian:~# mkdir -p /var/www/nextcloud /media/vData

// /media/HDD1TB在服务器环境里的挂载目录
root@debian:~# docker run -d --name myNext -p 9888:80 -v /var/www/nextcloud:/var/www/html -v /media/HDD1TB:/var/www/vDISK nextcloud

// 浏览器打开 http://10.11.11.109:9888/ 初始化设置用户名

// 再次打开 http://10.11.11.109:9888/

// 进行Nextcloud配置
-- 右上角落 - setting - Personal info - Language - 简体中文
-- 右上角落 - 应用 - External storage support - Enable 启用
--                 Preview Generator - 下载并启用,视频预览。
-- 右上角落 - 设置 - 管理 - 外部存储 
-- 右上角落 - 设置 - 个人 - 外部存储 - 勾 - 红色变绿色
+ 目录名称 HDD1TB
+ 外部存储 本地
+ 认证 无
+ 配置 /var/www/vDISK
+ 可用于 admin分组

// ocDownloader在docker之类有点问题,暂不推荐
// -- 右上角落 - 应用 - ocDownloader - Enable 启用
// 这个支持 磁力,HTTP直链,Youtube-dl,BT。下载BT注意版权问题。
// 如果提示Aria2c是否以服务方式运行?,则在主机上执行如下命令
// apt install daemon
// apt install rpcbind
// apt install aria2
// aria2c --daemon --enable-rpc=true
// aria2c --enable-rpc -D
// reboot

在文件目录,可以看到挂载的盘的目录

2022-4-15 增补,如果出现如下报错提示,处理方式

Access through untrusted domain

Please contact your administrator. If you are an administrator, edit the "trusted_domains" setting in config/config.php like the example in config.sample.php.


Further information how to configure this can be found in the documentation.

我这里就是修改 /var/www/nextcloud/config/config.php ,修改后重启容器。

root@debian:/var/www/nextcloud/config# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED       STATUS       PORTS                  NAMES
8c948ba20c33   nextcloud   "/entrypoint.sh apac…"   2 hours ago   Up 2 hours   0.0.0.0:9888->80/tcp   myNext

root@debian:/var/www/nextcloud/config# docker restart 8c948ba20c33
8c948ba20c33
root@debian:/var/www/nextcloud/config# 
Donate
云乞讨

Debian 10环境上,部署安装Transmission,可供BT下载 2021-8-17

需求描述

孩子需要看奥特曼,父母要看影视剧,要看凹凸曼,国内剧可以通过哎呦疼(爱奇艺视频,优酷视频,腾讯视频)在线观看,但是一般的海外的影视剧集,由于版权和其他原因,就很难有正规的观看途径了,于是又不得不回归以前的BT下载的路子。

这里,介绍的是,在Linux环境上,部署并安装BT下载的客户端Transmission,满足日常的BT下载的需求

部署环境 1核心1G内存12G SSD的系统盘的虚机,1TB机械硬盘的整盘直通硬盘为数据盘

操作系统 Debian 10

// 安装步骤
root@debian:~# apt-get update
root@debian:~# apt-get install transmission-daemon
// 版本信息 transmission-cli (2.94-2+deb10u2)
// 默认增加的用户 debian-transmission
// 以增加的10GB的磁盘,先模拟1TB直通盘的目录,进行软件部署
为VM增加10GB的数据盘

对挂载的盘,进行格式化,创建文件系统,挂载到系统

挂载盘到系统
// 给到访问权限
root@debian:~# mkdir -p /media/HDD1TB/downloads /media/HDD1TB/ingDowns
root@debian:~# chown -R debian-transmission:debian-transmission /media/HDD1TB

配置文件路径 /etc/transmission-daemon/settings.json

修改配置文件前,先备份一下,然后修改,主要修改内容如下

// 停止服务
root@debian:~# systemctl stop transmission-daemon

// 修改配置文件
root@debian:~# vi /etc/transmission-daemon/settings.json
// 修改的条目
#替换为远程连接的密码
"rpc-password":"A0Ead5Bd93EBF21D2087BaC2aC6071F2A1FF3EFA1Ed87E5c",
#远程管理访问端口
"rpc-port": 9999,
#登陆用户名
"rpc-username": "Tnx",
#可远程访问连接的IP白名单
"rpc-whitelist": "10.11.11.*,10.0.0.*,127.0.0.*",
"rpc-whitelist-enabled": true,
#常规的上下行限速设置,单位是KB/s
"speed-limit-down": 1024, #平时的下载限速
"speed-limit-down-enabled": true, #启用平时下载限速
"speed-limit-up": 20, #平时上传限速
"speed-limit-up-enabled": true, #启用平时上传限速
#分享率设置,人人为我,我为人人
"ratio-limit": 2,
"ratio-limit-enabled": true,
#设置下载目录,正在下载的目录
"download-dir": "/media/HDD1TB/downloads",
"incomplete-dir": "/media/HDD1TB/ingDowns",
"incomplete-dir-enabled": true,
#下载队列最大的数量,也就是同时下载的最大个数
"download-queue-enabled": true,
"download-queue-size": 8,


// 启动服务
root@debian:~# systemctl start transmission-daemon	

通过浏览器访问控制页面 http://服务器的IP:9999/transmission 即可

已添加磁力链接,进行下载
-- -- -- -- 分割线 -- -- -- -- 
附录2,进阶的配置,让Transmission的所有流量全部走socks5代理

配置到启动服务中,设置环境变量
...
[Service]
User=debian-transmission
Environment="HTTP_PROXY=http://127.0.0.1:7890" "HTTPS_PROXY=http://127.0.0.1:7890" "ALL_PROXY=socks5://127.0.0.1:7891"
Type=notify
...

官方说明
Transmission uses the libcurl library for http- and https-based tracker announces and scrapes. 
Transmission doesn't support proxies, but libcurl itself honors a handful of environment variables to customize its proxy behavior.
-- -- -- -- 分割线 -- -- -- -- 
附录1, 一些其他参数的含义中文说明如下,根据自身需要进行补充的配置设置

"alt-speed-up": 500, # 限速时段上传限速值
"alt-speed-down": 500, # 限速时段下载限速值
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127, # 时段限速日期(星期几),127 表示每天,更复杂配置参考官网。用 7 位二进制数表示,然后转换成十进制数,0000001 表示周日,1000000 表示周六,0000010 表示周一,0000100 表示周二。如果你只要在周末限速,该数应该 1000001,转换为十进制就是 65
"alt-speed-time-enabled": true, # 启用限速,为 false 时,以上计划配置则不生效,生效时会自动禁用 alt-speed-enabled 配置,二者只能选一个
"alt-speed-time-end": 420, # 限速时段结束时间,这个配置表示的是凌晨零点到开始时间的分钟数,比如 7:00 就是 7*60=420。需要注意的是,该时间是用的 GMT 时间,即北京时间 -8 小时。比如你计划北京时间 7 点 30 分开始,这个数字应该是(7-8+24)*60+30=1410
"bind-address-ipv4": "0.0.0.0", # IPv4 地址绑定,一般不要改动
"bind-address-ipv6": "::", #IPv6 地址绑定,一般不要改动
"blocklist-enabled": true, # 启动白名单,默认不启动,需要启动改为 true
"blocklist-updates-enabled": false,
"blocklist-url": "http://www.example.com/blocklist",
"cache-size-mb": 4, #缓存大小,以 MB 为单位,建议设大一些,避免频繁读写硬盘而伤硬盘,建议设为内存大小的 1/6~1/4
"compact-view": false,
"dht-enabled": false, #关闭 DHT(不通过 tracker 寻找节点)功能,不少 PT 站的要求,但 BT 下载设置为 true 会使得下载更好
"download-dir": "/share/Downloads", #下载的内容存放的目录
"download-queue-enabled": true,  # 下载队列开关
"download-queue-size": 5, # 下载队列数量
"encryption": 1, # 加密。指定节点的加密模式,默认 1。0 表示关闭 , 0= 不加密,1= 优先加密,2= 必须加密
"lazy-bitfield-enabled": true, # 默认为 true,设置为 true 时可以避免某些 ISP 通过查询完整位段来屏蔽 BT,从而破解部分 ISP 对 BT 的封杀,当然不一定完全有效
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/share/Downloads",  # 临时文件路径
"incomplete-dir-enabled": false,
"inhibit-desktop-hibernation": true,
"lpd-enabled": false, #禁用 LDP(本地节点发现,用于在本地网络寻找节点), 不少 PT 站的要求
"main-window-height": 500,
"main-window-is-maximized": 0,
"main-window-width": 615,
"main-window-x": 337,
"main-window-y": 211,
"message-level": 2,
"open-dialog-dir": "/share/Download",  # 网页对话框打开的根目录
"peer-congestion-algorithm": "",
"peer-limit-global": 240, # 全局连接数
"peer-limit-per-torrent": 60, # 每个种子最多的连接数
"peer-port": 51413, # 传入端口,预设的 port 口
"peer-port-random-high": 65535, # 传入端口随机值范围上限
"peer-port-random-low": 49152, # 传入端口随机值范围下限
"peer-port-random-on-start": false, # 启用随机端口,默认关闭,不建议改为 true
"peer-socket-tos": "default",
"pex-enabled": false, # 是否启用用户交换,默认为 true,关于 PEX,有兴趣的朋友可参考 http://en.wikipedia.org/wiki/Peer_exchange,对于只用 PT 的朋友,可以设为 false, 禁用 PEX(节点交换,用于同已与您相连接的节点交换节点名单), 不少 PT 站的要求
"port-forwarding-enabled": true, # 启用端口转发(uPnP),如果路由支持并且也开启了 uPnP,则路由会自动做端口映射,但是需要注意的是如果内网有几台机器同时使用 transmission,就必须更改 peer-port 值为不一样
"preallocation": 1, # 预分配文件磁盘空间,0= 关闭,1= 快速,2= 完全。建议取 1 开启该功能,防止下载大半了才发现磁盘不够。取 2 时,可以减少磁盘碎片,但速度较慢。
"prefetch-enabled": 1,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2, # 分享率限制
"ratio-limit-enabled": false, # 启用分享率限制,默认不启用
"rename-partial-files": true, #在未完成的文件名后添加后缀.part,false= 禁用
"rpc-authentication-required": true, # 远程控制需要验证,默认为需要
"rpc-bind-address": "0.0.0.0", # 远程控制地址绑定,允许 IP 通过 RPC 访问,默认值表示任何地址都可以访问
"rpc-enabled": true, # 启用远程控制,默认启用
"rpc-host-whitelist-enabled": true, # 是否开启主机白名单
"rpc-host-whitelist": "", # 白名单,如果需要远程访问,最好配置
"rpc-password": "{cxxxxxxxxxxaE", #web-ui 的密码,可直接修改,重新运行或者 reload 服务的时候密码会自动 HASH 增加安全性
"rpc-port": 9091, # 默认 web-ui 的 port 口,也是远程控制端口,可自行更改
"rpc-url": "/transmission/",
"rpc-username": "transmission", #默认登入名称,也是远程控制用户名
"rpc-whitelist": "127.0.0.1", # 远程控制白名单,默认值为所有地址,支持通配符*,如 192.168.2.*
"rpc-whitelist-enabled": true, # 启用远程控制白名单,如果启用,则仅仅上面列出的地址可以远程连接
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "/home/",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"show-backup-trackers": true,
"show-extra-peer-details": false,
"show-filterbar": true,
"show-notification-area-icon": false,
"show-options-window": true,
"show-statusbar": true,
"show-toolbar": true,
"show-tracker-scrapes": true,
"sort-mode": "sort-by-age",
"sort-reversed": false,
"speed-limit-down": 300, #平时的下载限速
"speed-limit-down-enabled": true, #启用平时下载限速
"speed-limit-up": 30, #平时上传限速
"speed-limit-up-enabled": true, #启用平时上传限速
"start-added-torrents": false,
"statusbar-stats": "total-ratio",
"torrent-added-notification-enabled": true,
"torrent-complete-notification-enabled": true,
"torrent-complete-sound-enabled": true,
"trash-can-enabled": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-slots-per-torrent": 14
"utp-enabled": true, #启用μTP 协议
"watch-dir": "/share/bt",  # 监听文件夹目录
"watch-dir-enabled": false # 是否监听文件夹

视频里的树莓派2 model B,供电是5V 1A,功耗也就5W,电费几乎可以忽略不计。

Donate
云乞讨

Proxmox VE 7.0 导入备份的虚机的镜像文件 2021-8-15

家里的PVE环境发生了故障,电源,主板,同时故障了,新购买的电源主板物流到货了,重做了PVE的环境,需要导入以前的虚机镜像到新环境

导入镜像的命令及其参数如下

# 命令 导入单个镜像 编号 需要导入的镜像文件 目标存储的ID 格式
qm importdisk <vmid> <source> <storage>
# 在WEB管理环境上,创建一个空的VM实例,对应好容量和VMID号
qm importdisk 100 /media/hdd1TB/images/100/vm-100-disk-0.qcow2  SSD120GB  --format qcow2
qm importdisk 200 /media/hdd1TB/images/101/vm-101-disk-0.qcow2  SSD120GB  --format qcow2

// 导入镜像的过程
root@HOSTNODE01:~# qm importdisk 200 /media/hdd1TB/images/101/vm-101-disk-0.qcow2  SSD120GB  --format qcow2
importing disk '/media/hdd1TB/images/101/vm-101-disk-0.qcow2' to VM 200 ...
Formatting '/media/ssd120GB/images/200/vm-200-disk-1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off preallocation=metadata compression_type=zlib size=53687091200 lazy_refcounts=off refcount_bits=16
transferred 0.0 B of 50.0 GiB (0.00%)
transferred 512.0 MiB of 50.0 GiB (1.00%)
transferred 1.0 GiB of 50.0 GiB (2.04%)
transferred 1.5 GiB of 50.0 GiB (3.05%)
.
.
.
transferred 50.0 GiB of 50.0 GiB (100.00%)
Successfully imported disk as 'unused0:SSD120GB:200/vm-200-disk-1.qcow2'
root@HOSTNODE01:~# 

// 导入完成后,在目录中可以看到文件
root@HOSTNODE01:/media/ssd120GB/images/100# ls -l
total 2437788
-rw-r----- 1 root root 17182752768 Aug 15 22:35 vm-100-disk-0.qcow2
-rw-r----- 1 root root 16108814336 Aug 15 22:37 vm-100-disk-1.qcow2
root@HOSTNODE01:/media/ssd120GB/images/100# 

导入qcow2镜像 importdisk

这样,我就把我的Linux和Windows两个VM都导入到新的PVE环境里了,非常方便

导入完成之后,还需要进入WEB管理页面,把刚刚挂载的硬盘设置为主启动的分区

Donate
云乞讨

为容器添加openssh-server服务,制作镜像,轻松运行若干可以随意折腾的容器Linux系统 2021-8-9

需求描述

有时候,我们需要测试一个简单的业务,需要一个Linux环境,运行完业务测试后,就可以删除这个环境

这样的一个需求,一般,我们可以通过主机的虚拟化平台来进行,比如用vmware virtualbox创建一个虚机,本次实践,使用docker进行虚拟化的Linux容器,更方便

素主机系统# docker -v
Docker version 19.03.12, build 48a66213fe
宿主机系统# docker run -it --name myLinux  debian:10  /bin/bash #执行一个容器
宿主机系统# docker run -it --name myLinux  ubuntu:16.04  /bin/bash  # 或者执行Ubuntu的

容器# apt-get update
容器# apt-get install openssh-server vim gcc make wget curl iptables ipset cron python3 python3-pip
容器# mkdir -p /var/run/sshd
容器# /usr/sbin/sshd -D &   //启动ssh服务
容器# passwd    //设置一个密码
容器# vi /etc/ssh/sshd_config  //修改SSH配置文件
PermitRootLogin yes
容器# cd /root ; mkdir -p ./sh ./src ./data ./log
容器# vi /root/.vimrc
set mouse-=a
容器# source .vimrc
容器# vi /root/sh/run.sh
#!/bin/bash
#  START
echo " + start SERVICEs"
/usr/sbin/sshd -D 
# /etc/init.d/cron start 
echo " + started SERVICEs"
#  END
容器# chmod +x /root/sh/run.sh
容器# apt-get install locales   //语言环境
容器# /usr/sbin/dpkg-reconfigure locales
Locales to be generated: 158 486
Generating locales (this might take a while)...
  en_US.UTF-8... done
  zh_CN.UTF-8... done
1. None  2. C.UTF-8  3. en_US.UTF-8  4. zh_CN.UTF-8
Default locale for the system environment: 3
容器# exit
宿主机系统# docker commit -m="LinuxVM" -a "Dasmz" myLinux mserver:1.0
宿主机系统# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mserver             1.0                 953b83715bb6        11 seconds ago      348MB
宿主机系统# docker run -d -p 31001:22 -p 31011:443 -p 41011:41011 --cap-add=NET_ADMIN --cpus=0.5 --name vm01 mserver:1.0 /root/sh/run.sh
// 22 SSH
// 443 HTTPS
// 41011 NORMAL-Port
// 2021-9-6 VM01 用于提供IP地址查询的API

宿主机系统# docker run -d -p 31002:22 -p 31012:443 -p 41012:41012 --cap-add=NET_ADMIN --cpus=0.5 --name vm02 mserver:1.0 /root/sh/run.sh
// 31002 - 22 SSH
// 31012 - 443 HTTPS
// 41012 - 41012 NORMAL-Port
// 2021-9-6 VM02 这台,目前用来跑其他测试。




// 冗余的信息
宿主机系统# docker run -d -p 31002:22 -p 31012:5000 --cpus=0.5 -m 500M --name vm02 mserver:1.2 /root/sh/run.sh
宿主机系统# docker run -d -p 31003:22 -p 31013:5000 --cpus=0.5 -m 500M --name vm03 mserver:1.2 /root/sh/run.sh
宿主机系统# docker run -d -p 31004:22 -p 31014:5000 --cpus=0.5 -m 500M --name vm04 mserver:1.2 /root/sh/run.sh
宿主机系统# docker run -d -p 31005:22 -p 31015:5000 --cpus=0.5 -m 500M --name vm05 mserver:1.2 /root/sh/run.sh
客户端# 登录vm01 安装好flask之后
宿主机系统# docker commit -m="Debian10-FLASK" -a "Dasmz" vm01 mflask:1.0
宿主机系统# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
mflask              1.0                 3cd442bde067        About a minute ago   725MB
mserver             1.0                 953b83715bb6        2 hours ago          348MB
宿主机系统# docker run -d -p 31005:22 -p 31006:5000 --cpus=0.5 -m 500M --name vm03 mflask:1.0 /root/sh/run.sh
宿主机系统# docker run -d -p 31007:22 -p 31007:5000 --cpus=0.5 -m 500M --name vm04 mflask:1.0 /root/sh/run.sh

Donate
云乞讨

记一次httpd的服务故障 2021-8-5

故障日志

[Wed Aug 04 03:12:36.144770 2021] [core:warn] [pid 18096] (101)Network is unreachable: AH00056: connect to listener on [::]:80
[Wed Aug 04 03:12:37.146003 2021] [core:warn] [pid 18096] (101)Network is unreachable: AH00056: connect to listener on [::]:80
[Wed Aug 04 03:12:38.147256 2021] [core:warn] [pid 18096] (101)Network is unreachable: AH00056: connect to listener on [::]:80
[Wed Aug 04 03:39:31.909103 2021] [suexec:notice] [pid 19740] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Aug 04 03:39:32.086015 2021] [core:emerg] [pid 19740] (28)No space left on device: AH00023: Couldn't create the proxy mutex 
[Wed Aug 04 03:39:32.086130 2021] [proxy:crit] [pid 19740] (28)No space left on device: AH02478: failed to create proxy mutex
[Wed Aug 04 03:39:32.086151 2021] [:emerg] [pid 19740] AH00020: Configuration Failed, exiting
[Wed Aug 04 08:57:24.015367 2021] [suexec:notice] [pid 27344] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Aug 04 08:57:24.191822 2021] [core:emerg] [pid 27344] (28)No space left on device: AH00023: Couldn't create the proxy mutex 
[Wed Aug 04 08:57:24.191917 2021] [proxy:crit] [pid 27344] (28)No space left on device: AH02478: failed to create proxy mutex
[Wed Aug 04 08:57:24.191937 2021] [:emerg] [pid 27344] AH00020: Configuration Failed, exiting
[Wed Aug 04 09:02:36.935796 2021] [suexec:notice] [pid 27501] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Aug 04 09:02:37.097374 2021] [core:emerg] [pid 27501] (28)No space left on device: AH00023: Couldn't create the proxy mutex 
[Wed Aug 04 09:02:37.097485 2021] [proxy:crit] [pid 27501] (28)No space left on device: AH02478: failed to create proxy mutex
[Wed Aug 04 09:02:37.097506 2021] [:emerg] [pid 27501] AH00020: Configuration Failed, exiting
[Wed Aug 04 09:04:16.897034 2021] [suexec:notice] [pid 27652] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Wed Aug 04 09:04:17.058253 2021] [core:emerg] [pid 27652] (28)No space left on device: AH00023: Couldn't create the proxy mutex 
[Wed Aug 04 09:04:17.058380 2021] [proxy:crit] [pid 27652] (28)No space left on device: AH02478: failed to create proxy mutex
[Wed Aug 04 09:04:17.058400 2021] [:emerg] [pid 27652] AH00020: Configuration Failed, exiting

处理办法

[root@server httpd]# ipcs -s | wc -l
129
[root@server httpd]# cat /proc/sys/kernel/msgmni
3649
[root@server httpd]# cat /proc/sys/kernel/sem
250 32000 32 128
[root@server httpd]# ipcrm -a
[root@server httpd]# ipcs -s | awk -v user=apache ‘$3==user {system(“ipcrm -s “$2)}’
[root@server httpd]# ipcs -s | wc -l
4
[root@server httpd]# cat /proc/sys/kernel/msgmni
3649
[root@server httpd]# cat /proc/sys/kernel/sem
250 32000 32 128
[root@server httpd]#

ipcs是Linux下显示进程间通信设施状态的工具。可以显示消息队列、共享内存和信号量的信息。httpd长久的使用,没有释放资源,造成重启httpd服务的失败,清理一下就可以了。

Donate
云乞讨

记一次服务器故障记录-网络配置错误 2021-8-3

故障描述

故障的表现为,此服务器,从外部无法登录,无法ping通

处理办法

从控制台,发现可以跳进输入账号密码的界面,输入root账号和密码

// 输入last命令,查看登录记录,发现昨日凌晨,服务器有重启

last记录
// ping检测网络通断,发现网络不通
root@server:~# ping 8.8.8.8
// ip addr查看网卡信息,发现网卡上面没有IP信息
root@server:~# ip addr
// 检查静态的网卡初始化信息配置 /etc/network/interfaces
root@server:/etc/network# cat interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens3
iface ens3 inet static
address 45.*.*.130
netmask 255.255.255.0
gateway 45.*.*.1
root@server:/etc/network# 

// 发现故障点,在配置文件中,可用网卡的名字配置错误,应该为ens3被错配置为eth0,修改一下,重启网络服务即可
root@server:~# systemctl restart networking

// 2021-9-22 补充
root@server:~# chattr +i /etc/network/interfaces

// 比较奇怪的一个错误,遇到网卡名称配置错误

Donate
云乞讨

注册美区APPID步骤指南 2021-8-2

– 2022-12-10 已确认,教程正常可用,增补视频操作指南师范在附录

需求描述

手机上,时常还是需要一个美区的APPID的,下面分步骤介绍Windows电脑端进行美区APPID注册的过程

1. 需求是,注册美区的APPID,故需要开启一个全局的代理,代理的IP信息,务必是美国。仅注册APPID时候,需要全局模式,日常请用常规的PAC/配置分流模式。

  • Windows 的V2rayN客户端,全局模式,在系统代理的“全局模式”或者“自动配置系统代理”,看软件版本略微不同。
  • 苹果iOS的shadowrocket客户端,全局模式,在连接开关的下方的全局路由,这个选项选择“代理”
  • 安卓Android的V2rayNG/SagerNet客户端,全局模式,在左上角设置里,预定义规则里,“全局”
全局

登录一些查看IP的网站,验证IP是否为美国的

查看IP地址的网站1 https://whatismyipaddress.com/

查看IP地址的网站2 https://ipinfo.io/

检测IP归属地区

2. 确认使用美国IP的情况下,打开苹果的网站 https://appleid.apple.com/ ,点击”Create Your Apple ID”

3. 填写信息

填写信息

大致的填写内容如下

Harold Finch
United States
12302000 // 月日年格式,表示2000年12月30日
你的邮箱 (推荐使用Gmail/Hotmail/iCloud的邮箱)
初始密码 (推荐使用较为复杂的密码)
初始密码 (推荐使用较为复杂的密码)
手机号可以其他地区的(可CN号码,最好有非CN的号码)
获取验证码
勾掉三个”邮件推荐推送”,”软件音乐推荐”,”新闻推荐”
填写验证码
点击继续

特别注意,如果是需要下载付费APP的,务必注册地址,最好在美国的5个免税州,信息在下方的第10章节

4. 信息验证

验证邮箱信息,在你填写的邮箱的收件箱中,可以查看到

Email Code

验证手机信息,在你手机的短信中,可以查看到验证码

SMS CODE

5. 成功注册一个美区账号

成功注册

6. 手机上登录,同意服务协议,激活账号

APPID, Login in iPhone

如果,只是需要一个美区的APPID,注册工作就完成了,你就可以欢快使用刚刚注册的APPID了。

= = = = = = = = = = = = = 分割线 = = = = = = = = = = = = = =

= = = = = = = = = = = = = 分割线 = = = = = = = = = = = = = =

= = = = = = = = = = = = = 分割线 = = = = = = = = = = = = = =

如果需要下载一些需要支付的APP,继续往下面看

7. 添加礼品卡,礼品卡可以淘宝购买

add gift card or other payment

10. 购买想要的软件,如果提示账单地址信息,务必选择填写一个美国的5个免税州的地址,这样可以避免购买APP软件时候额外的消费税

免税州信息

2022-8-21 更新博客,增加对于不同平台全局模式的描述

附录1、Youtube视频,示范注册操作

DONE v20210802

Donate
云乞讨

苹果iOS使用shadowrocket手册指南 2021-8-1

1、打开苹果手机iPhone,或平板电脑iPad设备

iPhone iPad

2、打开AppStore

AppStore

3、点击头像

头像

4、拉到最下方,点击退出登录

退出登录

5、退出登录后,点击登录,选择使用已有账号登录,输入账号,输入密码,点击登录,点击完成

6、如果APPID有两步验证,联系账号所有者获取两步验证的6位认证数字。

如果没有两步验证,登录时候,出现两步验证选项时候,选择“其他选项”,选择“不升级”。

7、登录后,搜索shadowrocket下载(软件的描述为 Rule based proxy utility的是对的,其余的是假的)

Download Shadowrocket

8、下载完成后,打开shadowrocket,点击下方第二个配置,点击中间位置的default.conf,点击编辑配置

编辑Default.conf配置文件

点击添加规则,修改选项为DIRECT,域名位置添加qpic.cn 点击保存

add rules
增加qpic规则

点击添加规则,修改选项为DIRECT,域名位置添加qlogo.cn 点击保存

增加qlogo规则

9、点击设置,翻页到倒数第四个,点击订阅,打开“打开时更新”和“自动后台更新”

设置
自动更新

10、点击首页,点击屏幕右上角的+号,类型选择subscribe,URL内填入订阅地址,备注填入自定义的名称,例如123(备注随意填写),点击完成

add sub
add a sub address and remark

11、添加订阅完成后,可以看到服务器线路,点击一个服务器,点击上方“未连接”位置的开关即可打开VPN

connect to a server

备注1,第一次使用时候,出现权限提醒,点击同意,输入手机密码确认一下即可。

12、在safari或其他浏览器中,如果可以打开 https://www.youtube.com即说明成功

open https://www.youtube.com in safari

13、

完成后,务必及时在AppStore里面,退出登录刚刚的APPID,登录回自己的APPID

完成后,务必及时在AppStore里面,退出登录刚刚的APPID,登录回自己的APPID

完成后,务必及时在AppStore里面,退出登录刚刚的APPID,登录回自己的APPID

重要的事情说三遍

DONE

更新日期: 2021-8-1

Debian 10系统上,安装部署最新版本的Python3 2021-7-27

需求描述

Debian 10系统上,安装部署最新版本的Python3,以使用最新的特性

Python官网 https://www.python.org/

2021-7-27 时候,官网最新的版本为Python 3.9.6,下载链接 https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz

https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz

root@server:~# apt-get update
root@server:~# apt-get install gcc make wget
root@server:~# cd ./src
root@server:~# wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz
root@server:~# tar -xJf Python-3.9.6.tar.xz
root@server:~# cd ./Python-3.9.6    
root@server:~# ./configure
root@server:~# make
root@server:~# make install
root@server:~# rm /usr/bin/python3
root@server:~# ln -s /usr/local/bin/python3 /usr/bin/python3
root@server:~# /usr/local/bin/python3 
Python 3.9.6 (default, Jul 26 2021, 22:17:56) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

DONE 完成
Donate
云乞讨