作者归档:Dasmz

NFS 文件存储,安装配置使用,为Linux服务器/Docker容器提供持续化的文件存储 2022-6-25

段落1、需求描述

内网中的一些Linux主机,还有一些Docker容器,需要持续化的一些文件共享,这个场景,NFS是非常适合的,下面就来讲解一下,如何配置NFS服务器,为其他内网Linux/Docker容器,提供共享的文件存储分区

NFS 的优点是内核直接支持,部署简单、运行稳定,协议简单、传输效率高。
NFS 的缺点是没有加密授权等功能,仅依靠 IP 地址或主机名来决定用户能否挂载共享目录,对具体目录和文件无法进行 ACL 权限控制(NFSv4 以前)。通常的做法是通过 Kerberos 对 NFS 进行认证及加密,不过部署配置比较麻烦。

Windows对于NFS文件存储支持稍欠缺,缺UTF8编码,可能有文件名乱码问题。

段落2、安装 NFS Server

apt update
apt install nfs-kernel-server

段落3、配置 NFS Server

/media/NFSData 是我这里模拟提供NFS存储的大容量磁盘的挂载点

/dev/sdb1 是我这里模拟提供NFS存储的大容量设备文件分区

相关Dasmz的其他博客

Ubuntu/Debian 的Linux环境,格式化超过2TB的磁盘 2022-4-24

https://dasmz.com/?p=2177

mkdir -p /media/NFSData
chown nobody:nogroup /media/NFSData 
chmod 777 /media/NFSData
mount /dev/sdb1 /media/NFSData

修改基于IP可信的配置文件,我这里,对于整个内网的IP段虚拟机VM都放行这个NFS分区

修改配置文件

# 修改 /etc/exports 文件
/media/NFSData    10.11.11.0/24(rw,sync,no_subtree_check)

参数释义

ro: specifies that the directory may only be mounted as read only
rw: grants both read and write permissions on the directory
no_root_squash: is an extremely dangerous option that allows remote “root” users the same privilege as the “root” user of the host machine
subtree_check: specifies that, in the case of a directory is exported instead of an entire filesystem, the host should verify the location of files and directories on the host filesystem
no_subtree_check: specifies that the host should not check the location of the files being accessed withing the host filesystem
sync: this just ensures that the host keeps any changes uploaded to the shared directory in sync
async: ignores synchronization checks in favor of increased speed

修改完配置文件,重启服务即可

systemctl restart nfs-server
systemctl enable nfs-server

NFS Server监听端口是 TCP/2049

RPC-Bind监听端口 TCP/111

段落4、配置客户端

apt update
apt install nfs-common

mkdir -p /media/NFS
mount -t nfs4 10.11.11.200:/media/NFSData /media/NFS

段落5、设置开机启动的挂载

# 修改文件 /etc/fstab

10.11.11.200:/media/NFSData	/media/NFS	nfs4	defaults,user,exec	0 0

完成

段落6、排查问题,部分版本的,可能需要修改/etc/default/nfs-common

常见报错

mount.nfs: access denied by server while mounting

可能原因

6.1、安全组,防火墙,端口放行

6.2、检查配置文件

exportfs -rav

6.3、用户ID匹配,我这里不区分,即:

# 修改 /etc/default/nfs-common
NEED_IDMAPD=no
NEED_GSSD=no

6.4、客户端显示更多信息

客户端执行mount命令的时候,加上 -v 参数

mount -t nfs -vvvv 1.169.9.27:/media/remote_nfs /media/LNFS

附录1、安全

如果不放心未知的风险,可选用防火墙加固一下 111/ 2049 两个端口,如果是NFSv3,可能还需要增加防护端口 37305/40087/54045/55529

2023-02-23 更新文章

附录2、视频演示

Windows 环境,安装zabbix-agent 2022-6-19

段落1、需求描述

给常开机的windows系统,配置zabbix监控

段落2、系统

Windows 7 服务器 1个

段落3、直接安装

安装简单,直接到官网下载对应系统版本的msi文件,安装

https://www.zabbix.com/documentation/current/en/manual/installation/install_from_packages/win_msi

我这里安装的6.0.5这个版本

https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.5/zabbix_agent-6.0.5-windows-amd64-openssl.msi

安装完,直接添加zabbix-server或者zabbix-proxy的配置即可

Debian 11 环境下,Zabbix-Proxy 安装配置向导 2022-6-19

段落1、需求

将内网的虚机统一用一台zabbix-proxy接入管理

段落2、环境

安装zabbix-proxy的环境是 Debian 11

安装的数据库是 MariaDB

段落3、安装 MariaDB 数据库

我们首先需要安装的是 MariaDB数据库,用来临时存放服务器检测的数据。安装方式,其实比较简单,不需要最新版本的MariaDB,只需要安装apt里面的版本即可。

root@ZabbixProxy:~# apt update
root@ZabbixProxy:~# apt install wget
root@ZabbixProxy:~# apt install mariadb-server mariadb-client
root@ZabbixProxy:~# systemctl status mariadb
root@ZabbixProxy:~# mysql_secure_installation  #安全加固

Switch to unix_socket authentication [Y/n] n
Change the root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

root@ZabbixProxy:~# systemctl enable mariadb

特别注意,你自己设置的数据库root的密码,不要转头就忘记了,务必记下来

段落4、创建一个zabbix-proxy用的数据库实例

数据库实例的名称,我这里就用zabbix,对应的数据库普通用户也叫做zabbix,数据库普通用户zabbix的密码最好跟数据库root密码不要写一样的。

root@ZabbixProxy:~# mysql -uroot -p
这里输入是数据库root用户的密码
MariaDB> create database zabbix character set utf8 collate utf8_bin;
MariaDB> create user zabbix@localhost identified by '这里是zabbix用户的密码';
MariaDB> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB> flush privileges;
MariaDB> quit;

段落5、安装zabbix-proxy

zabbix-proxy架构示意,它有点像一个接入网关的作用

安装的zabbix-proxy版本,必须跟zabbix-server版本一致。

检查zabbix-server的版本

root@ZabbixServer:~# zabbix_server -V

确认好版本是 4.0 LTS/5.0 LTS/ 6.0 LTS,到底是哪个之后,去zabbix官网,下载对应版本及OS系统的Zabbix repository的deb文件

我这里生产环境是4.0 LTS的,这个生产环境建设的早,所以版本旧,你们根据你们zabbix-server的实际版本,进行下载

root@ZabbixProxy:~# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-4+debian11_all.deb
root@ZabbixProxy:~# dpkg -i zabbix-release_4.0-4+debian11_all.deb
root@ZabbixProxy:~# apt update
root@ZabbixProxy:~# apt-get install zabbix-proxy-mysql
root@ZabbixProxy:~# zcat /usr/share/doc/zabbix-proxy-mysql/schema.sql.gz | mysql -uzabbix -p zabbix   # 导入相关数据表结构
// 这里输入的是,刚刚的,数据库 用户zabbix的密码

导入表结构的时候,有一个小报错,如下

ERROR 1118 (42000) at line 1278: Row size too large (> 8126). 
Changing some columns to TEXT or BLOB may help. 
In current row format, BLOB prefix of 0 bytes is stored inline.

主要来自 innodb_strict_mode 参数的影响,这里重新登录数据库,删除zabbix数据库,修改对应的SQL文件,重新导入即可

root@ZabbixProxy:~# mysql -uroot -p
这里输入是数据库root用户的密码
MariaDB> drop database zabbix;
MariaDB> create database zabbix character set utf8 collate utf8_bin;
MariaDB> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB> flush privileges;
MariaDB> quit;

修改数据库的SQL文件

root@ZabbixProxy:~# cd /usr/share/doc/zabbix-proxy-mysql
root@ZabbixProxy:~# gzip -d schema.sql.gz
root@ZabbixProxy:~# vi schema.sql
新增一行到文件开头 SET SESSION innodb_strict_mode=OFF;
root@ZabbixProxy:~# cat schema.sql | mysql -uzabbix -p zabbix
// 这里输入的是,数据库用户zabbix的密码

完美的成功导入全部表结构,无报错。可以登录进zabbix库,查看一下导入的表。

段落6、修改一下zabbix-proxy的配置文件参数

配置文件的路径 /etc/zabbix/zabbix_proxy.conf

Server=127.0.0.1  --> 需要修改到你的Zabbix-Server地址
Hostname=Zabbix proxy  --> 需要指定一个名称zabbixproxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix       --> 需要指定你刚刚配置的数据库实例名称,我这里是zabbix
DBUser=zabbix       --> 需要指定你刚刚配置的数据库普通用户名,我这里是zabbix
DBPassword=passforuserzabbix --> 需要指定你刚刚配置的数据库普通用户对应的密码
ConfigFrequency=300     --> 需要指定时间间隔-获取配置-秒
DataSenderFrequency=30  --> 需要指定时间间隔-上传数据-秒
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000

修改完成配置文件,重启一下zabbix-proxy

root@ZabbixProxy:~# systemctl restart zabbix-proxy
root@ZabbixProxy:~# systemctl enable zabbix-proxy

段落7、登录zabbix-server的WEB页面,注册刚刚配置的zabbix-proxy

在管理页面,点击创建代理

[闲聊话题] 关于 提示存在通过技术手段使其成为跨境节点等行为 2022-6-18

段落1、法律法规

《互联网信息服务管理办法》

《计算机信息网络国际联网管理暂行规定》

《 互联网跟帖评论服务管理规定》

段落2、网友反馈

网友34995549

网友I3arn

网友mryuyi(说法存疑,仅看到一个人有此经历说法)

网友net909

网友woniu

段落3、处理结果

主要总结:

1、封禁主机

2、无退款

3、无法取回主机内数据

4、人脸识别,身份二次认证

段落4、技术手段分析

参考openstack类的云的整体架构,这次技术侦测,

云厂家审计用户行为,主要是两个方式

1、主机安全 + 日志审计(资产内的扫描)。对进程文件,匹配到库内特征值一致,即可判定

2、互联网边界防火墙 + 日志审计(资产外的流量扫描)。触发特定IP段访问,即可判定

https://cloud.tencent.com/document/product/1132/46928

https://help.aliyun.com/document_detail/107444.html

https://cloud.tencent.com/product/cwp

段落5、新来的法规

《 互联网跟帖评论服务管理规定》,对于携带评论的网站,如一些BBS,博客BLOG,话题贴类的站,对发布评论的人又要实名,可能是一个需要必须对评论模块整改的选项。

附录1、视频

批量下载Twitter图片,高清大图,的重要工具,谷歌浏览器扩展Fatkun Batch Download Image 2022-6-14

章节1、需求描述

批量下载推特上,喜欢的小姐姐账号发布的图片,可以支持在线选择,分辨率选择,一键下载

章节2、环境描述

谷歌浏览器Chrome

谷歌浏览器Chrome的插件Fatkun Batch Download Image

章节3、基本用法描述

在打开的页面,直接使用键盘的[ALT] + [Z]两个快捷键即可召唤出Fatkun,或者点击它的扩展图标,选择下载当前页的。

在它弹出的页面,可以支持过滤图片的分辨率,直接筛选出大图,可以反选,支持批量下载时候按规则重命名图片,支持批量导出图片的链接URL地址

章节4、实际用法示例视频

章节5、感谢

感谢作者aituxiu对这个插件Fatkun,这么多年的维护,付出。

附录1

No.000100 批量下载Twitter高清大图的重要工具,谷歌浏览器扩展Fatkun Batch Download Image 20220614

本期博客地址 https://dasmz.com/?p=2414
本期视频地址 https://youtu.be/iDtt4eTrbBk

孩子上网课,Windows电脑需权限控制,网站拦截 2022-6-4

段落1、需求描述

邻居家的孩子高中了,疫情封控期间,都是在家上网课,孩子上课使用一台笔记本电脑,因担心孩子使用电脑不自觉,玩别的,需要设置一下权限及设置一些网站的拦截。

据其描述,孩子常用的网课软件是 钉钉Windows客户端,腾讯会议windows客户端,QQ电脑版,WPS(国产的Office处理软件),浏览器,日常只要保证如上可以正常用就可以。

必须限制短视频类的网站,在电脑无法访问。

段落2、场景分析

这个场景,就是典型的Windows分权限的场景,同时屏蔽网站的需求,因其未必对电脑懂那么多,故而,先进行本地的DNS解析,将常用的短视频网站限制。

可选高级玩法,担心其使用第三方的DNS,则用管理员身份,定义路由表。

段落3、实施部署

3.1 激活本地的administrator超级管理员账号,设置普通账号

net user administrator /active:yes    #激活本地的administrator超级管理员账号
net user /add user 123456    #增加普通用户账号并设置密码为简单密码123456

如果原系统有一个其他名称的管理员账号,则可以把它修改为普通账号。

3.2 管理员身份,修改本地的hosts文件,强制解析娱乐网站到空地址

本地的hosts文件在目录

C:\Windows\System32\drivers\etc\hosts

将hosts文件拖到桌面上,点击继续,用写字板修改之后在将它拖回C:\Windows\System32\drivers\etc,遇到提示,点击继续。

修改娱乐网站的本地DNS解析

127.0.0.1 weibo.com
127.0.0.1 douyin.com
127.0.0.1 www.youku.com
127.0.0.1 v.qq.com
127.0.0.1 www.iqiyi.com
127.0.0.1 www.kuaishou.com   # 快手
127.0.0.1 www.bilibili.com   # B站
127.0.0.1 www.acfun.cn 
127.0.0.1 www.4399.com  # 小游戏

如上的方式,在孩子会修改第三方DNS时候,失效,但是一般家庭足够用了。

3.3 (可选),高阶设置,防止孩子懂电脑DNS的知识,使用管理员账号直接重定向路由表,让娱乐网站路由置空

本段暂时省略,相关都是Windows路由表设置,对普通的家长也有难度了,暂时不做讲解。

这个方式,可以直接阻断娱乐网站的全部路由,即便DNS解析,孩子知道自定义,也无法访问到对应的网站

段落4、后记

孩子使用普通账号登录,是没有权限自己安装软件的,如果需要安装软件,则需要使用administrator权限或者账号登录安装。

在他孩子眼里,我从此大概就成了,楼下的坏邻居,唉。

附录1、视频

Windows环境,基于命令行的方式,yt-dlp工具,下载TikTok视频 2022-5-28

段落1、需求描述

虽然,市面上已经有很多在线网站,支持在线解析Youtube/ Tiktok/ Twitter等视频网站的视频,但是调用这类网站,会在对方的服务器有访问记录

故而,一些支持本地下载的工具,就是比较推荐的

最出名的就是youtube-dl项目

在前些篇章的教程中,已经给大家介绍了youtube-dl工具,下载youtube视频列表

目前版本的youtube-dl工具,无法支持Tiktok,但其分支版本yt-dlp,支持下载TikTok的视频,今天就给大家说一下用法

项目地址 yt-dlp 工具 https://github.com/yt-dlp/yt-dlp

必要的ffmpeg工具 https://www.ffmpeg.org/download.html

段落2、TikTok下载实例

支持TikTok主域名,支持分享链接

以如下的视频为例子,给大家说明一下用法

点分享,可以得到,视频地址,如下
https://www.tiktok.com/@gunayaksoyofficial/video/7097488392484556038?is_from_webapp=1&sender_device=pc

其中
视频实际地址 https://www.tiktok.com/@gunayaksoyofficial/video/7097488392484556038
其他参数 ?is_from_webapp=1&sender_device=pc

Linux环境下载,推荐具备ffmpeg,apt-get install ffmpeg
下载命令如下:

./yt-dlp https://www.tiktok.com/@gunayaksoyofficial/video/7097488392484556038

Windows环境,下载windows的版本的yt-dlp.exe和ffmpeg.exe到一个目录下

https://github.com/yt-dlp/yt-dlp/releases/download/2022.05.18/yt-dlp.exe

https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z

下载命令是一致的,如下

.\yt-dlp.exe https://www.tiktok.com/@gunayaksoyofficial/video/7097488392484556038

段落3、其他

如果,要自定义名称,可以跟youtube-dl一样,通过-o参数指定视频的名称

如果是在windows上用youtube-dl工具,也是下载对应的windows版本到这个目录下。

段落4、堪误记录

4.1 yt-dlp 里面字母p的含义,可能不是python,而是plus,增强化的版本的意思。

附录1、视频

正则表达式,用于提取日志中的异常WEB请求的来源IP地址 2022-5-27

段落1、WEB异常日志分析

WEB日志里面,很多异常

用正则表达式,提取日志中的,异常请求日志,把来源IP地址都提取出来

段落2、代码,python3

#!/usr/bin/python3
# -*- coding:utf-8 -*-
import re

pttn_ssl_crit = ", client: (\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3}), server: 0.0.0.0:443"

s = """
2022/05/27 05:57:08 [crit] 22177#22177: *1505702 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 192.241.221.194, server: 0.0.0.0:443
2022/05/27 05:58:12 [crit] 22177#22177: *1505686 SSL_shutdown() failed (SSL: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry) while closing request, client: 42.185.73.106, server: 0.0.0.0:443
2022/05/27 12:35:25 [crit] 22177#22177: *1539457 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 64.62.197.122, server: 0.0.0.0:443
2022/05/27 12:37:56 [crit] 22177#22177: *1539653 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 125.80.138.80, server: 0.0.0.0:443
2022/05/27 14:41:39 [crit] 22177#22177: *1553119 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 154.89.5.85, server: 0.0.0.0:443
2022/05/27 15:22:47 [crit] 22177#22177: *1557066 SSL_do_handshake() failed (SSL: error:141CF06C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client: 37.252.255.135, server: 0.0.0.0:443
"""

print(re.findall(pttn_ssl_crit,s))
输出:

['192.241.221.194', '42.185.73.106', '64.62.197.122', '125.80.138.80', '154.89.5.85', '37.252.255.135']

透明代理,iptables技术 2022-5-27

段落1、需求说明

配置透明代理,可根据IP地域,进行路由定向。

本教程,对初学者有相当的难度,需要对iptables规则熟练于心,有差错,整个网络可能出现你无法预料的故障。

GeoIP CN的目标地址,直连

Local,本地地址,保留地址,直连

Node Server,直连

其他,走 socks5://127.0.0.1:10808

段落2、基础设施

系统环境 Ubuntu 20.04 LTS

GeoIP CN的IP CIDR地址清单

ipset 工具集

node server 1枚

段落3、iptables基础知识

段落4、配置方式

# 创建自定义的chain链
iptables -t nat -N V2FLY                 # 在NAT表创建链
iptables -t mangle -N V2FLY              # 在MANAGE表创建链

# 让你的V2FLY服务器IP走直连direct
iptables -t nat -A V2FLY -d AA.BB.CC.DD -j RETURN    # 这里指定NodeServer地址,return 继续执行自定义的动作

# 让你的局域网IP及其他本地及保留地址走direct
# Ignore LANs and any other addresses you'd like to bypass the proxy
# See Wikipedia and RFC5735 for full list of reserved networks.
# See ashi009/bestroutetb for a highly optimized CHN route list.
iptables -t nat -A V2FLY -d 0.0.0.0/8 -j RETURN
iptables -t nat -A V2FLY -d 10.0.0.0/8 -j RETURN
iptables -t nat -A V2FLY -d 127.0.0.0/8 -j RETURN
iptables -t nat -A V2FLY -d 169.254.0.0/16 -j RETURN
iptables -t nat -A V2FLY -d 172.16.0.0/12 -j RETURN
iptables -t nat -A V2FLY -d 192.168.0.0/16 -j RETURN
iptables -t nat -A V2FLY -d 224.0.0.0/4 -j RETURN
iptables -t nat -A V2FLY -d 240.0.0.0/4 -j RETURN

# 其他流量都重定向到你的本地的V2FLY-CLIENT本地端口
iptables -t nat -A V2FLY -p tcp -j REDIRECT --to-ports 10808

# 其他一些DNS流量
# Add any UDP rules
ip route add local default dev lo table 100
ip rule add fwmark 1 lookup 100
iptables -t mangle -A V2FLY -p udp --dport 53 -j TPROXY --on-port 10808 --tproxy-mark 0x01/0x01

# 应用规则,将自定义的链加入到传统的链中
iptables -t nat -A PREROUTING -p tcp -j V2FLY
iptables -t mangle -A PREROUTING -j V2FLY

# 启动客户端 V2FLY-CLIENT 进程常驻
/usr/bin/v2ray/v2ray -config /etc/config/V2FLY.json 
iptables -t nat -I PREROUTING -p tcp -m set --match-set redrock dst -j REDIRECT --to-ports 8848
iptables -t nat -I OUTPUT -p tcp -m set --match-set redrock dst -j REDIRECT --to-ports 8848

基于Youtube-dl下载Youtube的视频列表 2022-5-14

段落1、需求描述

一些冷门的视频,BT下载,迅雷下载,都不给力,而在Youtube 、Pornhub这些视频大网站上却有备份,故而,下载整个视频列表的需求

这次教程,还是以youtube-dl工具为主。有钱的土豪们,建议尝试IDM工具,好用,但是我这里没有购买授权,做盗版软件的使用说明,还是有点撒不开面子。

段落2、下载安装youtube-dl工具

youtube-dl工具的安装基本一条命令,但是,其基于python的环境,需要有ffmpeg的转码套件。

root@server:~# apt-get update

root@server:~# apt-get install python3 
   
root@server:~# apt-get install ffmpeg

root@server:~# wget -O /usr/bin/youtube-dl  https://youtube-dl.org/downloads/latest/youtube-dl

root@server:~# chmod +x /usr/bin/youtube-dl

root@server:~# ln -s /usr/bin/python3 /usr/bin/python   # 可选,若无/usr/bin/python,则执行

段落3、下载Youtube视频列表

本次视频,以下载Youtube平台,“奥特曼官方中文频道”里面的泰迦奥特曼的播放列表为例,做下载整个Youtube视频列表的操作示范

随意点开一集,如第一集,可以看到它的地址
https://www.youtube.com/watch?v=u2Cf9E0aVsA&list=PL6YzOVgBYcEZSB30tzuXeSAhNX3nwu4Wd

从地址栏,可以看到它的list数值为 PL6YzOVgBYcEZSB30tzuXeSAhNX3nwu4Wd

整个播放列表为


下载参数为
/usr/bin/youtube-dl -f best[ext=mp4] -k -c -i  https://www.youtube.com/playlist?list=PL6YzOVgBYcEZSB30tzuXeSAhNX3nwu4Wd
参数释义
-f 选择格式为最优的mp4格式
-k 保存文件
-c 断点续传
-i 忽略错误

段落4、常见错误-部分文件未下载完

假设,服务器上,下载视频,还有如下5集没有下载完,可根据视频列表的序号,进行下载

/usr/bin/youtube-dl -f best[ext=mp4] -k -c -i --playlist-items 8,15,20,23 https://www.youtube.com/playlist?list=PL6YzOVgBYcEZSB30tzuXeSAhNX3nwu4Wd
参数释义
--playlist-items 8,15,20,23  指定仅下载播放列表中的8,15,20,23这几集视频

段落5、常见错误-名称太长

一般使用原始的参数,会出现,保存视频文件到本地时候,文件名称过长,我这里通过指定output参数,已经实现了缩短文件名称的长度,一般不会再有这个报错

-o / --output 保存到本地的文件名称

--output 'TJ_%(id)s.%(ext)s'  泰迦拼音首字母缩写 + 视频的ID号 + 格式(.mp4)

整体命令为
/usr/bin/youtube-dl -f best[ext=mp4] -k -c -i --output 'TJ_%(id)s.%(ext)s' https://www.youtube.com/playlist?list=PL6YzOVgBYcEZSB30tzuXeSAhNX3nwu4Wd

段落6、常见问题,下载速度慢

正常的呦,基本上单线程就这样的速度,大概100KB/s,如果要快速的,建议,还是使用可以多线程下载的工具,如IDM之类的。

段落7、常见问题、曲艺类节目、仅下载Youtube视频中的音频

如下为下载歌曲,陈奕迅 – 爱情转移,到mp3格式

youtube-dl -x --audio-format mp3 https://www.youtube.com/watch?v=Sm_EGqzs2aA

附录1、视频