月度归档:2021年08月

国家代码表 2021-8-31

需求,IP地址查询服务,需要一个简略的国家位置的信息,需要两位的国家代码,对应的中文标识

国家代码标记,参考的是 https://zh.wikipedia.org/wiki/ISO_3166-1

我需要的是2位的字母代码,中文名称,只需要复制出其中这两列

AD  安道尔
AE  阿联酋
AF  阿富汗
AG  安地卡及巴布達
AI  安圭拉
AL  阿尔巴尼亚
AM  亞美尼亞
AO  安哥拉
AQ  南极洲
AR  阿根廷
AS  美属萨摩亚
AT  奥地利
AU  澳大利亚
AW  阿鲁巴
AX  奥兰
AZ  阿塞拜疆
BA  波黑
BB  巴巴多斯
BD  孟加拉国
BE  比利時
BF  布吉納法索
BG  保加利亚
BH  巴林
BI  布隆迪
BJ  贝宁
BL  圣巴泰勒米
BM  百慕大
BN  文莱
BO  玻利维亚
BQ  荷兰加勒比区
BR  巴西
BS  巴哈马
BT  不丹
BV  布韦岛
BW  博茨瓦纳
BY  白俄羅斯
BZ  伯利兹
CA  加拿大
CC  科科斯-基林-群島
CD  刚果民主共和国
CF  中非
CG  刚果共和国
CH  瑞士
CI  科特迪瓦
CK  庫克群島
CL  智利
CM  喀麦隆
CN  中国
CO  哥伦比亚
CR  哥斯达黎加
CU  古巴
CV  佛得角
CW  库拉索
CX  圣诞岛
CY  賽普勒斯
CZ  捷克
DE  德國
DJ  吉布提
DK  丹麥
DM  多米尼克
DO  多米尼加
DZ  阿尔及利亚
EC  厄瓜多尔
EE  爱沙尼亚
EG  埃及
EH  西撒哈拉
ER  厄立特里亚
ES  西班牙
ET  衣索比亞
FI  芬兰
FJ  斐济
FK  福克蘭群島
FM  密克羅尼西亞聯邦
FO  法罗群岛
FR  法國
GA  加彭
GB  英國
GD  格瑞那達
GE  格鲁吉亚
GF  法属圭亚那
GG  根西
GH  加纳
GI  直布罗陀
GL  格陵兰
GM  冈比亚
GN  几内亚
GP  瓜德罗普
GQ  赤道几内亚
GR  希臘
GS  南乔治亚和南桑威奇群岛
GT  危地马拉
GU  關島
GW  几内亚比绍
GY  圭亚那
HK  香港
HM  赫德岛和麦克唐纳群岛
HN  洪都拉斯
HR  克罗地亚
HT  海地
HU  匈牙利
ID  印尼
IE  爱尔兰
IL  以色列
IM  马恩岛
IN  印度
IO  英屬印度洋領地
IQ  伊拉克
IR  伊朗
IS  冰岛
IT  意大利
JE  泽西
JM  牙买加
JO  约旦
JP  日本
KE  肯尼亚
KG  吉尔吉斯斯坦
KH  柬埔寨
KI  基里巴斯
KM  科摩罗
KN  圣基茨和尼维斯
KP  朝鲜
KR  韩国
KW  科威特
KY  开曼群岛
KZ  哈萨克斯坦
LA  老挝
LB  黎巴嫩
LC  圣卢西亚
LI  列支敦斯登
LK  斯里蘭卡
LR  利比里亚
LS  賴索托
LT  立陶宛
LU  卢森堡
LV  拉脫維亞
LY  利比亞
MA  摩洛哥
MC  摩納哥
MD  摩尔多瓦
ME  蒙特內哥羅
MF  法属圣马丁
MG  马达加斯加
MH  马绍尔群岛
MK  北馬其頓
ML  马里
MM  缅甸
MN  蒙古
MO  澳門
MP  北马里亚纳群岛
MQ  马提尼克
MR  毛里塔尼亚
MS  蒙特塞拉特
MT  馬爾他
MU  模里西斯
MV  馬爾地夫
MW  马拉维
MX  墨西哥
MY  马来西亚
MZ  莫桑比克
NA  纳米比亚
NC  新喀里多尼亞
NE  尼日尔
NF  诺福克岛
NG  奈及利亞
NI  尼加拉瓜
NL  荷蘭
NO  挪威
NP  尼泊爾
NR  瑙鲁
NU  纽埃
NZ  新西蘭
OM  阿曼
PA  巴拿马
PE  秘魯
PF  法屬玻里尼西亞
PG  巴布亚新几内亚
PH  菲律賓
PK  巴基斯坦
PL  波蘭
PM  圣皮埃尔和密克隆
PN  皮特凯恩群岛
PR  波多黎各
PS  巴勒斯坦
PT  葡萄牙
PW  帛琉
PY  巴拉圭
QA  卡塔尔
RE  留尼旺
RO  羅馬尼亞
RS  塞爾維亞
RU  俄羅斯
RW  卢旺达
SA  沙烏地阿拉伯
SB  所罗门群岛
SC  塞舌尔
SD  苏丹
SE  瑞典
SG  新加坡
SH  圣赫勒拿-阿森松和特里斯坦-达库尼亚
SI  斯洛維尼亞
SJ  斯瓦尔巴和扬马延
SK  斯洛伐克
SL  塞拉利昂
SM  圣马力诺
SN  塞内加尔
SO  索馬利亞
SR  苏里南
SS  南蘇丹
ST  聖多美和普林西比
SV  薩爾瓦多
SX  荷屬聖馬丁
SY  叙利亚
SZ  斯威士兰
TC  特克斯和凯科斯群岛
TD  乍得
TF  法属南部和南极领地
TG  多哥
TH  泰國
TJ  塔吉克斯坦
TK  托克勞
TL  东帝汶
TM  土库曼斯坦
TN  突尼西亞
TO  汤加
TR  土耳其
TT  千里達及托巴哥
TV  图瓦卢
TW  台湾
TZ  坦桑尼亚
UA  烏克蘭
UG  乌干达
UM  美國本土外小島嶼
US  美國
UY  乌拉圭
UZ  乌兹别克斯坦
VA  梵蒂冈
VC  圣文森特和格林纳丁斯
VE  委內瑞拉
VG  英屬維爾京群島
VI  美屬維爾京群島
VN  越南
VU  瓦努阿圖
WF  瓦利斯和富图纳
WS  萨摩亚
YE  葉門
YT  马约特
ZA  南非
ZM  尚比亞
ZW  辛巴威
{
"AF":"阿富汗",
"AX":"奥兰",
...
}

生成一个静态化的字典文件,方便在程序中查询匹配

Donate
云乞讨

故障记录 ubuntu 20.04.3 LTS系统的16.1.2 build-17966106无法打开的故障记录 2021-8-30

桌面操作系统为ubuntu 20.04.3 LTS

安装的虚拟化软件为vmware workstation 16.1.2 build-17966106

打开时候的报错信息为

ERROR MESSAGE

Could not open /dev-vmmon: No such file or directory. Please make sure that the kernel module ‘vmmon’ is loaded.

官方解释的原因是,uefi启动模式下,vmmon and vmnet两个是非开源的模块,没有通过linux内核认证,没有随系统自动启动。

It is not allowed to load any unsigned drivers
最快捷的解决办法:重启电脑,进入BIOS设置,关闭secure boot选项,重启,正常进入Ubuntu 20.04桌面,就可以用vmware workstation了

VM官方,还提供了一个通过给模块签名,用mokutil导入的方式,临时办法。参考附录1的官方链接。

附录1

参考链接 VMWare官方 https://kb.vmware.com/s/article/2146460

参考链接 VMWare官方 https://kb.vmware.com/s/article/1002411

Donate
云乞讨

基于v2ray使用免费的socks5的IP为落地 2021-8-25

需求描述

从网络上,采集了10多万个HTTP/HTTPS/SOCKS4/SOCKS5的普通代理,有时候,其中一些的IP归属的地区,还是蛮不错的,想要用它作为落地IP

网络链路,客户端v – 服务端v – 普通socks5

服务器的配置

参考

出站配置 https://www.v2fly.org/config/outbounds.html
协议配置 https://www.v2fly.org/config/protocols/socks.html

完成

服务端的配置文件

{
  "log": {
    "access": "./access.log",
    "error": "./error.log",
    "loglevel": "info"
  },
  "inbound": {
    "port": 18125,
    "protocol": "vmess",
    "settings": {
      "clients": [
        {
          "id": "9299c14f-b3e0-e937-2ec8-5992a8cc3211",
          "level": 1,
          "alterId": 4
        }
      ]
    }
  },
  "outbound": {
    "protocol": "socks",
    "settings": {
      "servers": [
        {
          "address": "117.27.*.153",
          "port": 1080,
          "users": []
        }
      ]
    }
  },
  "routing": {
    "strategy": "rules",
    "settings": {
      "rules": [
        {
          "type": "field",
          "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "outboundTag": "blocked"
        }
      ]
    }
  }
}

# 其中117.27.*.153为socks5的IP,1080为socks5的端口。

客户端配置

{
  "inbound": {
    "listen": "127.0.0.1",
    "port": 10808,
    "protocol": "socks",
    "settings": {
      "auth": "noauth",
      "udp": false,
      "ip": "127.0.0.1"
    }
  },
  "outbound": {
    "protocol": "vmess",
    "settings": {
      "vnext": [
        {
          "address": "183.23.78.5",
          "port": 18888,
          "users": [
            {
              "id": "9299c14f-b3e0-e937-2ec8-5992a8cc3211",
              "level": 1,
              "alterId": 4
            }
          ]
        }
      ]
    }
  }
}

# 其中183.23.78.5为SERVER的IP,18888为SERVER的端口。

附录1

发现一个有趣的现象,有人直接把socks5暴露在国内的IP上,实际落地IP是在海外,相当于,其已经打通了一个管道。比如,福建电信的socks5://117.27.*.153:1080就是这样的情况,使用它的时候,它实际的IP是在美国的甲骨文机房IP-221.141.*.130,你们城里人真会玩!

赞助

Donate
云乞讨

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
云乞讨