<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>阿里云盘相关文章列表 | 皇家元林</title>
	<atom:link href="https://hjyl.org/tags/%E9%98%BF%E9%87%8C%E4%BA%91%E7%9B%98/feed/" rel="self" type="application/rss+xml" />
	<link>https://hjyl.org</link>
	<description>刘元林的个人博客</description>
	<lastBuildDate>Thu, 14 Aug 2025 03:48:12 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://img.hjyl.org/uploads/2019/10/cropped-about-me-32x32.png</url>
	<title>阿里云盘相关文章列表 | 皇家元林</title>
	<link>https://hjyl.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>这是在逗我吗？</title>
		<link>https://hjyl.org/alipan-kidding-me/</link>
					<comments>https://hjyl.org/alipan-kidding-me/#comments</comments>
		
		<dc:creator><![CDATA[皇家元林]]></dc:creator>
		<pubDate>Thu, 14 Aug 2025 03:48:08 +0000</pubDate>
				<category><![CDATA[元林手札]]></category>
		<category><![CDATA[svip]]></category>
		<category><![CDATA[垃圾网盘]]></category>
		<category><![CDATA[阿里云盘]]></category>
		<guid isPermaLink="false">https://hjyl.org/?p=5876</guid>

					<description><![CDATA[R.T.关于阿里云盘 svip 下载超慢的问题 有没有好看的朋友看看这个是不是这样的情况？我这么感觉在逗我呢！ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>R.T.<a href="https://hjyl.org/sb-alipan-svip/">关于阿里云盘 svip 下载超慢的问题</a></p>



<p>有没有好看的朋友看看这个是不是这样的情况？我这么感觉在逗我呢！</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="938" height="336" src="https://img.hjyl.org/uploads/2025/08/wechat_2025-08-14_114143_051.png"  class="wp-image-5877" title="wechat_2025 08 14_114143_051.png" alt="wechat_2025 08 14_114143_051.png" /></figure>
<div id="content-copyright"><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;font-size: 13px;">版权声明: </span><span style="font-size: 13px;">本文采用 <a href="https://hjyl.org/go/aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzMuMC8=" rel="nofollow" target="_blank">BY-NC-SA</a> 协议进行授权，如无注明均为原创，转载请注明转自 <a href="https://hjyl.org">皇家元林</a><br>本文链接: <a rel="bookmark" title="这是在逗我吗？" href="https://hjyl.org/alipan-kidding-me/">这是在逗我吗？</a></span></div>]]></content:encoded>
					
					<wfw:commentRss>https://hjyl.org/alipan-kidding-me/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		
			</item>
		<item>
		<title>阿里云盘svip真的很垃圾</title>
		<link>https://hjyl.org/sb-alipan-svip/</link>
					<comments>https://hjyl.org/sb-alipan-svip/#comments</comments>
		
		<dc:creator><![CDATA[皇家元林]]></dc:creator>
		<pubDate>Wed, 13 Aug 2025 12:48:33 +0000</pubDate>
				<category><![CDATA[元林手札]]></category>
		<category><![CDATA[svip]]></category>
		<category><![CDATA[垃圾网盘]]></category>
		<category><![CDATA[阿里云盘]]></category>
		<guid isPermaLink="false">https://hjyl.org/?p=5868</guid>

					<description><![CDATA[买了块大硬盘，我就想把阿里云盘里的东西下载下来，可下了一个礼拜都没下来，就花 8 块买了个 svip，因为新客 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>买了块大硬盘，我就想把阿里云盘里的东西下载下来，可下了一个礼拜都没下来，就花 8 块买了个 svip，因为新客前三个月 8 元，我没想续费。而现在这种情况，更不想续费。没想到 svip 竟然不如免费的速度。找客服，客服说让技术看，得 1 到 3 个工作日答复。曾经的诺言更如同放屁！吐出来的东西还能吞回去，也是够恶心的！</p>



<figure class="wp-block-video"><video height="1420" style="aspect-ratio: 2128 / 1420;" width="2128" controls src="https://img.hjyl.org/uploads/2025/08/2025-08-13-20.30.54.mov"></video><figcaption class="wp-element-caption">这 svip 的意义在哪里，坑钱呢！</figcaption></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="2172" height="1440" src="https://img.hjyl.org/uploads/2025/08/wechat_2025-08-13_203704_508.png"  class="wp-image-5869" srcset="https://img.hjyl.org/uploads/2025/08/wechat_2025-08-13_203704_508.png 2172w, https://img.hjyl.org/uploads/2025/08/wechat_2025-08-13_203704_508-1536x1018.png 1536w, https://img.hjyl.org/uploads/2025/08/wechat_2025-08-13_203704_508-2048x1358.png 2048w" sizes="(max-width: 2172px) 100vw, 2172px" title="wechat_2025 08 13_203704_508.png" alt="wechat_2025 08 13_203704_508.png" /><figcaption class="wp-element-caption">下着下着失败了</figcaption></figure>
<div id="content-copyright"><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;font-size: 13px;">版权声明: </span><span style="font-size: 13px;">本文采用 <a href="https://hjyl.org/go/aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzMuMC8=" rel="nofollow" target="_blank">BY-NC-SA</a> 协议进行授权，如无注明均为原创，转载请注明转自 <a href="https://hjyl.org">皇家元林</a><br>本文链接: <a rel="bookmark" title="阿里云盘svip真的很垃圾" href="https://hjyl.org/sb-alipan-svip/">阿里云盘svip真的很垃圾</a></span></div>]]></content:encoded>
					
					<wfw:commentRss>https://hjyl.org/sb-alipan-svip/feed/</wfw:commentRss>
			<slash:comments>16</slash:comments>
		
		<enclosure url="https://img.hjyl.org/uploads/2025/08/2025-08-13-20.30.54.mov" length="543512" type="video/quicktime" />

			</item>
		<item>
		<title>记录这几天折腾的东西</title>
		<link>https://hjyl.org/aliyun-ecs-frp-emby-aliyundrive/</link>
					<comments>https://hjyl.org/aliyun-ecs-frp-emby-aliyundrive/#comments</comments>
		
		<dc:creator><![CDATA[皇家元林]]></dc:creator>
		<pubDate>Thu, 09 Nov 2023 11:59:02 +0000</pubDate>
				<category><![CDATA[元林手札]]></category>
		<category><![CDATA[alist]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[emby]]></category>
		<category><![CDATA[frp]]></category>
		<category><![CDATA[IPTV]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rclone]]></category>
		<category><![CDATA[webdav]]></category>
		<category><![CDATA[内网穿透]]></category>
		<category><![CDATA[刮削]]></category>
		<category><![CDATA[阿里云双十一活动]]></category>
		<category><![CDATA[阿里云盘]]></category>
		<guid isPermaLink="false">https://hjyl.org/?p=4754</guid>

					<description><![CDATA[#前言 今天如果有人访问我的博客，你会发现大部分时间无法访问，不止我的博客，我服务器上所有站点都无法访问，后来 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">#前言</h3>



<p>今天如果有人访问我的博客，你会发现大部分时间无法访问，不止我的博客，我服务器上所有站点都无法访问，后来就断断续续能访问，再后来就正常了。对此，我向影响到你使用体验不佳的朋友们说声抱歉。这几天折腾了不少东西，脑子都快不够用了，赶紧整理整理。</p>



<h3 class="wp-block-heading">#换服务器</h3>



<p>是的，又换服务器了。</p>



<p>今天早上一起床，第一件事就是备份插着移动硬盘的笔记本里的网站数据，是的，那个移动服务器现在插在笔记本上了。其实这件事昨晚就该干了，太困了睡着了。几天前我买了块M.2 sata3 2280固态，二手的，就是给<a href="https://hjyl.org/mini-computer-of-1111/">小主机</a>当系统盘的。测试了几天，小主机很稳定，于是趁今天休息，把服务器转移过来。本地备份和拷贝数据是非常快的，再加上我配置的shell命令，完全可以自动化部署。从此Linux不再用虚拟机了。</p>



<p>11点多的时候，收到一份邮件——阿里云双十一活动，2G2核心3M只需99元/年，可同价续费三年。于是我更兴奋了。直接拿下。其实这跟之前我买的<a href="https://hjyl.org/aliyun-light-server/">轻量服务器</a>配置差不多，而这款主机的带宽是固定带宽，价格更是没有可比性，还免费分配IPv6，只是我感觉这IPv6是内网地址，跟我电脑上分配的IPv6一样，公网访问不了。配置完新服务器，我就把轻量云给退了，退款按天计算。</p>



<figure class="wp-block-image size-full"><a href="https://img.hjyl.org/uploads/2023/11/20231109123026.jpg"><img decoding="async" width="1684" height="301" src="https://img.hjyl.org/uploads/2023/11/20231109123026.jpg"  class="wp-image-4755" srcset="https://img.hjyl.org/uploads/2023/11/20231109123026.jpg 1684w, https://img.hjyl.org/uploads/2023/11/20231109123026-1536x275.jpg 1536w" sizes="(max-width: 1684px) 100vw, 1684px" title="20231109123026.jpg" alt="20231109123026.jpg" /></a><figcaption class="wp-element-caption">轻量云退款</figcaption></figure>



<p>话说这个退款也不容易找，服务器管理界面连退款按钮都容不下。后来Bing了一下，找到<a href="https://hjyl.org/go/aHR0cHM6Ly9oZWxwLmFsaXl1bi5jb20vemgvc2ltcGxlLWFwcGxpY2F0aW9uLXNlcnZlci9wcm9kdWN0LW92ZXJ2aWV3L3JlZnVuZHM=" rel="nofollow" target="_blank">阿里云的产品文档</a>，拉到底，有个<a href="https://hjyl.org/go/aHR0cHM6Ly91c2VyY2VudGVyMi5hbGl5dW4uY29tL3JlZnVuZC8=" rel="nofollow" target="_blank">登录阿里云退订管理</a>页面，点进去就看见了。好了，又省了一大笔巨款。</p>



<h3 class="wp-block-heading">#frp内网穿透更新换代</h3>



<p>很久没管frp了，一个版本用着还很稳定，稳定到你都快忘了它。前几天突然发现frp官方文档和往常不一样，我才知道frp更新换代了，从0.52.0版本开始使用新的配置文件（TOML、YAML 和 JSON），老配置文件.ini截止到0.51.3版本。新版本的配置我折腾了一下午，这就是为什么今天我的博客大部分时间无法访问的原因了。它其实不难，可能一开始不适应，我就适应了一下午。基本上可以满足我当前的需求了。其中让我一眼看中的功能就是它支持配置拆分（includes），好比nginx各主机的配置文件.conf一样，需要哪个配置哪个，不需要删文件重启服务就好了。</p>



<p>配置参考完整版<a href="https://hjyl.org/go/aHR0cHM6Ly9naXRodWIuY29tL2ZhdGVkaWVyL2ZycC9ibG9iL2Rldi9jb25mL2ZycHNfZnVsbF9leGFtcGxlLnRvbWw=" rel="nofollow" target="_blank">frps_full_example.toml</a>和<a href="https://hjyl.org/go/aHR0cHM6Ly9naXRodWIuY29tL2ZhdGVkaWVyL2ZycC9ibG9iL2Rldi9jb25mL2ZycGNfZnVsbF9leGFtcGxlLnRvbWw=" rel="nofollow" target="_blank">frpc_full_example</a>，如果不能访问GitHub，可以看下面，怎么样，是不是很细。</p>



<p><strong>frps.toml完整配置：</strong></p>



<pre class="wp-block-code"><code lang="toml" class="language-toml line-numbers"># This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.

# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
# For single "bindAddr" field, no need square brackets, like `bindAddr = "::"`.
bindAddr = "0.0.0.0"
bindPort = 7000

# udp port used for kcp protocol, it can be same with 'bindPort'.
# if not set, kcp is disabled in frps.
kcpBindPort = 7000

# udp port used for quic protocol.
# if not set, quic is disabled in frps.
# quicBindPort = 7002

# Specify which address proxy will listen for, default value is same with bindAddr
# proxyBindAddr = "127.0.0.1"

# quic protocol options
# transport.quic.keepalivePeriod = 10
# transport.quic.maxIdleTimeout = 30
# transport.quic.maxIncomingStreams = 100000

# Heartbeat configure, it's not recommended to modify the default value
# The default value of heartbeatTimeout is 90. Set negative value to disable it.
# transport.heartbeatTimeout = 90

# Pool count in each proxy will keep no more than maxPoolCount.
transport.maxPoolCount = 5

# If tcp stream multiplexing is used, default is true
# transport.tcpMux = true

# Specify keep alive interval for tcp mux.
# only valid if tcpMux is true.
# transport.tcpMuxKeepaliveInterval = 60

# tcpKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
# If negative, keep-alive probes are disabled.
# transport.tcpKeepalive = 7200

# transport.tls.force specifies whether to only accept TLS-encrypted connections. By default, the value is false.
tls.force = false

# transport.tls.certFile = "server.crt"
# transport.tls.keyFile = "server.key"
# transport.tls.trustedCaFile = "ca.crt"

# If you want to support virtual host, you must set the http port for listening (optional)
# Note: http port and https port can be same with bindPort
vhostHTTPPort = 80
vhostHTTPSPort = 443

# Response header timeout(seconds) for vhost http server, default is 60s
# vhostHTTPTimeout = 60

# tcpmuxHTTPConnectPort specifies the port that the server listens for TCP
# HTTP CONNECT requests. If the value is 0, the server will not multiplex TCP
# requests on one single port. If it's not - it will listen on this value for
# HTTP CONNECT requests. By default, this value is 0.
# tcpmuxHTTPConnectPort = 1337

# If tcpmuxPassthrough is true, frps won't do any update on traffic.
# tcpmuxPassthrough = false

# Configure the web server to enable the dashboard for frps.
# dashboard is available only if webServer.port is set.
webServer.addr = "127.0.0.1"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
# webServer.tls.certFile = "server.crt"
# webServer.tls.keyFile = "server.key"
# dashboard assets directory(only for debug mode)
# webServer.assetsDir = "./static"

# Enable golang pprof handlers in dashboard listener.
# Dashboard port must be set first
webServer.pprofEnable = false

# enablePrometheus will export prometheus metrics on webServer in /metrics api.
enablePrometheus = true

# console or real logFile path like ./frps.log
log.to = "./frps.log"
# trace, debug, info, warn, error
log.level = "info"
log.maxDays = 3
# disable log colors when log.to is console, default is false
log.disablePrintColor = false

# DetailedErrorsToClient defines whether to send the specific error (with debug info) to frpc. By default, this value is true.
detailedErrorsToClient = true

# auth.method specifies what authentication method to use authenticate frpc with frps.
# If "token" is specified - token will be read into login message.
# If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token".
auth.method = "token"

# auth.additionalScopes specifies additional scopes to include authentication information.
# Optional values are HeartBeats, NewWorkConns.
# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]

# auth token
auth.token = "12345678"

# oidc issuer specifies the issuer to verify OIDC tokens with.
auth.oidc.issuer = ""
# oidc audience specifies the audience OIDC tokens should contain when validated.
auth.oidc.audience = ""
# oidc skipExpiryCheck specifies whether to skip checking if the OIDC token is expired.
auth.oidc.skipExpiryCheck = false
# oidc skipIssuerCheck specifies whether to skip checking if the OIDC token's issuer claim matches the issuer specified in OidcIssuer.
auth.oidc.skipIssuerCheck = false

# userConnTimeout specifies the maximum time to wait for a work connection.
# userConnTimeout = 10

# Only allow frpc to bind ports you list. By default, there won't be any limit.
allowPorts = [
  { start = 2000, end = 3000 },
  { single = 3001 },
  { single = 3003 },
  { start = 4000, end = 50000 }
]

# Max ports can be used for each client, default value is 0 means no limit
maxPortsPerClient = 0

# If subDomainHost is not empty, you can set subdomain when type is http or https in frpc's configure file
# When subdomain is est, the host used by routing is test.frps.com
subDomainHost = "frps.com"

# custom 404 page for HTTP requests
# custom404Page = "/path/to/404.html"

# specify udp packet size, unit is byte. If not set, the default value is 1500.
# This parameter should be same between client and server.
# It affects the udp and sudp proxy.
udpPacketSize = 1500

# Retention time for NAT hole punching strategy data.
natholeAnalysisDataReserveHours = 168

[[httpPlugins]]
name = "user-manager"
addr = "127.0.0.1:9000"
path = "/handler"
ops = ["Login"]

[[httpPlugins]]
name = "port-manager"
addr = "127.0.0.1:9001"
path = "/handler"
ops = ["NewProxy"]</code></pre>



<p><strong>frpc.toml完整配置文件：</strong></p>



<pre class="wp-block-code"><code lang="toml" class="language-toml line-numbers"># This configuration file is for reference only. Please do not use this configuration directly to run the program as it may have various issues.

# your proxy name will be changed to {user}.{proxy}
user = "your_name"

# A literal address or host name for IPv6 must be enclosed
# in square brackets, as in "[::1]:80", "[ipv6-host]:http" or "[ipv6-host%zone]:80"
# For single serverAddr field, no need square brackets, like serverAddr = "::".
serverAddr = "0.0.0.0"
serverPort = 7000

# STUN server to help penetrate NAT hole.
# natHoleStunServer = "stun.easyvoip.com:3478"

# Decide if exit program when first login failed, otherwise continuous relogin to frps
# default is true
loginFailExit = true

# console or real logFile path like ./frpc.log
log.to = "./frpc.log"
# trace, debug, info, warn, error
log.level = "info"
log.maxDays = 3
# disable log colors when log.to is console, default is false
log.disablePrintColor = false

auth.method = "token"
# auth.additionalScopes specifies additional scopes to include authentication information.
# Optional values are HeartBeats, NewWorkConns.
# auth.additionalScopes = ["HeartBeats", "NewWorkConns"]

# auth token
auth.token = "12345678"

# oidc.clientID specifies the client ID to use to get a token in OIDC authentication.
# auth.oidc.clientID = ""
# oidc.clientSecret specifies the client secret to use to get a token in OIDC authentication.
# auth.oidc.clientSecret = ""
# oidc.audience specifies the audience of the token in OIDC authentication.
# auth.oidc.audience = ""
# oidc.scope specifies the permisssions of the token in OIDC authentication if AuthenticationMethod == "oidc". By default, this value is "".
# auth.oidc.scope = ""
# oidc.tokenEndpointURL specifies the URL which implements OIDC Token Endpoint.
# It will be used to get an OIDC token.
# auth.oidc.tokenEndpointURL = ""

# oidc.additionalEndpointParams specifies additional parameters to be sent to the OIDC Token Endpoint.
# For example, if you want to specify the "audience" parameter, you can set as follow.
# frp will add "audience=&lt;value&gt;" "var1=&lt;value&gt;" to the additional parameters.
# auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/"
# auth.oidc.additionalEndpointParams.var1 = "foobar"

# Set admin address for control frpc's action by http api such as reload
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"
# Admin assets directory. By default, these assets are bundled with frpc.
# webServer.assetsDir = "./static"

# Enable golang pprof handlers in admin listener.
webServer.pprofEnable = false

# The maximum amount of time a dial to server will wait for a connect to complete. Default value is 10 seconds.
# transport.dialServerTimeout = 10

# dialServerKeepalive specifies the interval between keep-alive probes for an active network connection between frpc and frps.
# If negative, keep-alive probes are disabled.
# transport.dialServerKeepalive = 7200

# connections will be established in advance, default value is zero
transport.poolCount = 5

# If tcp stream multiplexing is used, default is true, it must be same with frps
# transport.tcpMux = true

# Specify keep alive interval for tcp mux.
# only valid if tcpMux is enabled.
# transport.tcpMuxKeepaliveInterval = 60

# Communication protocol used to connect to server
# supports tcp, kcp, quic, websocket and wss now, default is tcp
transport.protocol = "tcp"

# set client binding ip when connect server, default is empty.
# only when protocol = tcp or websocket, the value will be used.
transport.connectServerLocalIP = "0.0.0.0"

# if you want to connect frps by http proxy or socks5 proxy or ntlm proxy, you can set proxyURL here or in global environment variables
# it only works when protocol is tcp
# transport.proxyURL = "http://user:passwd@192.168.1.128:8080"
# transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080"
# transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080"

# quic protocol options
# transport.quic.keepalivePeriod = 10
# transport.quic.maxIdleTimeout = 30
# transport.quic.maxIncomingStreams = 100000

# If tls.enable is true, frpc will connect frps by tls.
# Since v0.50.0, the default value has been changed to true, and tls is enabled by default.
transport.tls.enable = true

# transport.tls.certFile = "client.crt"
# transport.tls.keyFile = "client.key"
# transport.tls.trustedCaFile = "ca.crt"
# transport.tls.serverName = "example.com"

# If the disableCustomTLSFirstByte is set to false, frpc will establish a connection with frps using the
# first custom byte when tls is enabled.
# Since v0.50.0, the default value has been changed to true, and the first custom byte is disabled by default.
# transport.tls.disableCustomTLSFirstByte = true

# Heartbeat configure, it's not recommended to modify the default value.
# The default value of heartbeatInterval is 10 and heartbeatTimeout is 90. Set negative value
# to disable it.
# transport.heartbeatInterval = 30
# transport.heartbeatTimeout = 90

# Specify a dns server, so frpc will use this instead of default one
# dnsServer = "8.8.8.8"

# Proxy names you want to start.
# Default is empty, means all proxies.
# start = ["ssh", "dns"]

# Specify udp packet size, unit is byte. If not set, the default value is 1500.
# This parameter should be same between client and server.
# It affects the udp and sudp proxy.
udpPacketSize = 1500

# Additional metadatas for client.
metadatas.var1 = "abc"
metadatas.var2 = "123"

# Include other config files for proxies.
# includes = ["./confd/*.ini"]

[[proxies]]
# 'ssh' is the unique proxy name
# If global user is not empty, it will be changed to {user}.{proxy} such as 'your_name.ssh'
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
# Limit bandwidth for this proxy, unit is KB and MB
transport.bandwidthLimit = "1MB"
# Where to limit bandwidth, can be 'client' or 'server', default is 'client'
transport.bandwidthLimitMode = "client"
# If true, traffic of this proxy will be encrypted, default is false
transport.useEncryption = false
# If true, traffic will be compressed
transport.useCompression = false
# Remote port listen by frps
remotePort = 6001
# frps will load balancing connections for proxies in same group
loadBalancer.group = "test_group"
# group should have same group key
loadBalancer.groupKey = "123456"
# Enable health check for the backend service, it supports 'tcp' and 'http' now.
# frpc will connect local service's port to detect it's healthy status
healthCheck.type = "tcp"
# Health check connection timeout
healthCheck.timeoutSeconds = 3
# If continuous failed in 3 times, the proxy will be removed from frps
healthCheck.maxFailed = 3
# every 10 seconds will do a health check
healthCheck.intervalSeconds = 10
# additional meta info for each proxy
metadatas.var1 = "abc"
metadatas.var2 = "123"

[[proxies]]
name = "ssh_random"
type = "tcp"
localIP = "192.168.31.100"
localPort = 22
# If remotePort is 0, frps will assign a random port for you
remotePort = 0

[[proxies]]
name = "dns"
type = "udp"
localIP = "114.114.114.114"
localPort = 53
remotePort = 6002

# Resolve your domain names to [serverAddr] so you can use http://web01.yourdomain.com to browse web01 and http://web02.yourdomain.com to browse web02
[[proxies]]
name = "web01"
type = "http"
localIP = "127.0.0.1"
localPort = 80
# http username and password are safety certification for http protocol
# if not set, you can access this customDomains without certification
httpUser = "admin"
httpPassword = "admin"
# if domain for frps is frps.com, then you can access [web01] proxy by URL http://web01.frps.com
subdomain = "web01"
customDomains = ["web01.yourdomain.com"]
# locations is only available for http type
locations = ["/", "/pic"]
# route requests to this service if http basic auto user is abc
# routeByHTTPUser = abc
hostHeaderRewrite = "example.com"
requestHeaders.set.x-from-where = "frp"
healthCheck.type = "http"
# frpc will send a GET http request '/status' to local http service
# http service is alive when it return 2xx http response code
healthCheck.path = "/status"
healthCheck.intervalSeconds = 10
healthCheck.maxFailed = 3
healthCheck.timeoutSeconds = 3

[[proxies]]
name = "web02"
type = "https"
localIP = "127.0.0.1"
localPort = 8000
subdomain = "web02"
customDomains = ["web02.yourdomain.com"]
# if not empty, frpc will use proxy protocol to transfer connection info to your local service
# v1 or v2 or empty
transport.proxyProtocolVersion = "v2"

[[proxies]]
name = "tcpmuxhttpconnect"
type = "tcpmux"
multiplexer = "httpconnect"
localIP = "127.0.0.1"
localPort = 10701
customDomains = ["tunnel1"]
# routeByHTTPUser = "user1"

[[proxies]]
name = "plugin_unix_domain_socket"
type = "tcp"
remotePort = 6003
# if plugin is defined, localIP and localPort is useless
# plugin will handle connections got from frps
[proxies.plugin]
type = "unix_domain_socket"
unixPath = "/var/run/docker.sock"

[[proxies]]
name = "plugin_http_proxy"
type = "tcp"
remotePort = 6004
[proxies.plugin]
type = "http_proxy"
httpUser = "abc"
httpPassword = "abc"

[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 6005
[proxies.plugin]
type = "socks5"
username = "abc"
password = "abc"

[[proxies]]
name = "plugin_static_file"
type = "tcp"
remotePort = 6006
[proxies.plugin]
type = "static_file"
localPath = "/var/www/blog"
stripPrefix = "static"
httpUser = "abc"
httpPassword = "abc"

[[proxies]]
name = "plugin_https2http"
type = "https"
customDomains = ["test.yourdomain.com"]
[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:80"
crtPath = "./server.crt"
keyPath = "./server.key"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"

[[proxies]]
name = "plugin_https2https"
type = "https"
customDomains = ["test.yourdomain.com"]
[proxies.plugin]
type = "https2https"
localAddr = "127.0.0.1:443"
crtPath = "./server.crt"
keyPath = "./server.key"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"

[[proxies]]
name = "plugin_http2https"
type = "http"
customDomains = ["test.yourdomain.com"]
[proxies.plugin]
type = "http2https"
localAddr = "127.0.0.1:443"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"

[[proxies]]
name = "secret_tcp"
# If the type is secret tcp, remotePort is useless
# Who want to connect local port should deploy another frpc with stcp proxy and role is visitor
type = "stcp"
# secretKey is used for authentication for visitors
secretKey = "abcdefg"
localIP = "127.0.0.1"
localPort = 22
# If not empty, only visitors from specified users can connect.
# Otherwise, visitors from same user can connect. '*' means allow all users.
allowUsers = ["*"]

[[proxies]]
name = "p2p_tcp"
type = "xtcp"
secretKey = "abcdefg"
localIP = "127.0.0.1"
localPort = 22
# If not empty, only visitors from specified users can connect.
# Otherwise, visitors from same user can connect. '*' means allow all users.
allowUsers = ["user1", "user2"]

# frpc role visitor -&gt; frps -&gt; frpc role server
[[visitors]]
name = "secret_tcp_visitor"
type = "stcp"
# the server name you want to visitor
serverName = "secret_tcp"
secretKey = "abcdefg"
# connect this address to visitor stcp server
bindAddr = "127.0.0.1"
# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
# other visitors. (This is not supported for SUDP now)
bindPort = 9000

[[visitors]]
name = "p2p_tcp_visitor"
type = "xtcp"
# if the server user is not set, it defaults to the current user
serverUser = "user1"
serverName = "p2p_tcp"
secretKey = "abcdefg"
bindAddr = "127.0.0.1"
# bindPort can be less than 0, it means don't bind to the port and only receive connections redirected from
# other visitors. (This is not supported for SUDP now)
bindPort = 9001
# when automatic tunnel persistence is required, set it to true
keepTunnelOpen = false
# effective when keepTunnelOpen is set to true, the number of attempts to punch through per hour
maxRetriesAnHour = 8
minRetryInterval = 90
# fallbackTo = "stcp_visitor"
# fallbackTimeoutMs = 500</code></pre>



<p>相比老版本，差距还是很大的，如果不需要什么新功能或者懒得折腾，我建议老版本也是一样的。</p>



<h3 class="wp-block-heading">#emby刮削阿里云盘影视</h3>



<p>这几天折腾最多的就是它——emby，这也是受<a href="https://hjyl.org/go/aHR0cHM6Ly96aHVqaWFubGluLmNvbQ==" rel="nofollow" target="_blank">老朱</a>的影响，之前感觉看电影的时间不是很多，也用不着搭建个服务这么麻烦。刚看完了神鬼八阵图，在电脑前看电脑，上厕所、洗澡、烧菜看手机或者平板，每次切换好麻烦，于是就想搭建个emby，这样各种设备就可以无缝衔接了。</p>



<p>影视资源阿里云盘用的多，有人说百度网盘也不少，它那速度我早放弃了，你有会员你牛逼。阿里云盘看个1080P电影还是很流畅的。所以我想法是这样的：将阿里云盘通过webdav挂载到Linux服务器上，emby直接加wendav里的资源就可以了。以前用的nas，docker，很简单，鼠标点点就可以了。如今要在Linux服务器上实现，基本上全是命令符了。现在Linux用的是Debian。因为它对lnmp最友好，系统也比较省资源。</p>



<h4 class="wp-block-heading">##挂载webdav</h4>



<p>挂载webdav我用rclone，这个应该是最简单方便的把（系统自带的mount.davfs也可以挂载，只是emby不能访问）。安装一条命令：</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">curl https://rclone.org/install.sh | sudo bash</code></pre>



<p>配置用rclone config命令，主要就是name、url、user、password填好即可，一步步来就可以了。</p>



<p>最后关键是挂载阿里云盘的命令。</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">rclone mount 远程名称:/ 本地挂载路径 --cache-dir /tmp --allow-other --vfs-cache-mode writes --header "Referer:https://www.aliyundrive.com/drive"</code></pre>



<p>譬如：</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">rclone mount alist:/ /mnt/alist --cache-dir /tmp --allow-other --vfs-cache-mode writes --header "Referer:https://www.aliyundrive.com/drive"</code></pre>



<p>没错，远程名称就是rclone config配置的name，本地挂载路径随你自己选择，不过事先建好文件夹即可。</p>



<p>然后来个开机自启。</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">#将加粗的部分改成你的，然后整段代码扔进ssh里，回车；
command="mount <strong>alist</strong>:/ <strong>/home/alist</strong> --cache-dir /tmp --allow-other --vfs-cache-mode writes --header "Referer:https://www.aliyundrive.com/drive""
cat &gt; /etc/systemd/system/rclone.service &lt;&lt;EOF
[Unit]
Description=Rclone
After=network-online.target

[Service]
Type=simple
ExecStart=$(command -v rclone) ${command}
Restart=on-abort
User=root

[Install]
WantedBy=default.target
EOF</code></pre>



<p>webdav最简单的搭建就是alist了，它既能添加绝大部分网盘资源，又能自动搭建webdav服务，确实是我见过最强大的网盘整合工具了。听说天翼网盘和中国移动网盘都是不限速的，做电影盘最好了。</p>



<h4 class="wp-block-heading">##安装emby</h4>



<p><a href="https://hjyl.org/go/aHR0cHM6Ly9lbWJ5Lm1lZGlhLw==" rel="nofollow" target="_blank">emby官网</a>下载对应的Debian安装包.deb，然后使用一条命令安装成功：</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash line-numbers">dpkg -i emby-server-deb_4.7.14.0_amd64.deb</code></pre>



<p>然后你就可以通过IP:8096访问到emby了。</p>



<h4 class="wp-block-heading">##刮削阿里云影视资源</h4>



<p>刮削这个活真不好做，我是折腾了好几天都没刮干净。你也可以搜索现成刮削好的网盘资源。刮削最关键的一步就是整理好资源的格式。iOS系统有一款软件叫VidHub，目前免费，干净无广告，可以连接阿里云盘，直接刮削阿里云盘的影视，只是刮削的数据只在播放器里使用。我最欣赏的是它对文件命名规则的整理。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><a href="https://hjyl.org/go/aHR0cHM6Ly96aC5va2FhcHBzLmNvbS9ibG9nLzY0ZmFkYWFkOTQ4MDA5MjA2YzU2MjhkYw==" rel="nofollow" target="_blank">VidHub媒体库文件命名规则</a></p>
<cite>1 - 电影文件名以影片的完整名字开头(中英文均可)，后面带上其他相关的文件信息。<br>​ The.Irishman.爱尔兰人.2019.1080p.x264.mp4<br>2 - 电视剧分集文件名以剧名开头(同一部剧所有分集文件开头的剧名保持一致，中英文均可)，后面必须跟上季和集的信息(S01E01/第一季第一集)。<br>​ Shameless.无耻之徒.S01E01.1080p.AMZN.WEB-DL.mkv<br>​ Shameless.无耻之徒.S03E03.720p.AMZN.WEB-DL.mkv<br>补充：因为emby的规则电视剧文件夹的结构是这样的：<br>           神鬼八阵图(2006) \ Season 1 \ 神鬼八阵图.S01E01.1080p.AVC1.AC.mp4<br>3 - 电视剧花絮、特别篇文件名以剧名开头，后面的季数信息必须设置为0，并指定集数(S00E01)。<br>​ Shameless.无耻之徒.S00E01.Sneak Peek.1080p.AMZN.mkv</cite></blockquote>



<p>老朱介绍了一款TMM——<a href="https://hjyl.org/go/aHR0cHM6Ly96aHVqaWFubGluLmNvbS9teXdvcmsvMzk1Lmh0bWw=" rel="nofollow" target="_blank">tinyMediaManager软件</a>，4.x版本不建议用，有限制收费。不过破解论坛里有不限制版本，我用过，不知道是不是姿势不对，看不到刮削的状态，看着干着急就放弃了。软件不错，只是资源不好弄，themoviedb资源时好时坏，不好刮削。需要的朋友可以看看他的方法。</p>



<h4 class="wp-block-heading">##介绍两个好东西</h4>



<p>IPTV直播源：https://live.fanmingming.com/</p>



<p>阿里云网盘搜索工具：https://www.upyunso.com</p>



<p>好了，这几天折腾的东西都整理好了，满满的干货有没有。</p>
<div id="content-copyright"><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;font-size: 13px;">版权声明: </span><span style="font-size: 13px;">本文采用 <a href="https://hjyl.org/go/aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzMuMC8=" rel="nofollow" target="_blank">BY-NC-SA</a> 协议进行授权，如无注明均为原创，转载请注明转自 <a href="https://hjyl.org">皇家元林</a><br>本文链接: <a rel="bookmark" title="记录这几天折腾的东西" href="https://hjyl.org/aliyun-ecs-frp-emby-aliyundrive/">记录这几天折腾的东西</a></span></div>]]></content:encoded>
					
					<wfw:commentRss>https://hjyl.org/aliyun-ecs-frp-emby-aliyundrive/feed/</wfw:commentRss>
			<slash:comments>15</slash:comments>
		
		
			</item>
		<item>
		<title>找回阿里云盘丢失的数据</title>
		<link>https://hjyl.org/recovery-aliyundrive-missing-data/</link>
					<comments>https://hjyl.org/recovery-aliyundrive-missing-data/#comments</comments>
		
		<dc:creator><![CDATA[皇家元林]]></dc:creator>
		<pubDate>Sun, 05 Nov 2023 17:18:03 +0000</pubDate>
				<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[客服工单]]></category>
		<category><![CDATA[数据丢失]]></category>
		<category><![CDATA[阿里云盘]]></category>
		<guid isPermaLink="false">https://hjyl.org/?p=4741</guid>

					<description><![CDATA[11月2日，瞎折腾，将小主机里的群晖虚拟机直接格式化了，试图安装Debian或者Fedora，可这俩系统怎么也 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>11月2日，瞎折腾，将小主机里的群晖虚拟机直接格式化了，试图安装Debian或者Fedora，可这俩系统怎么也安装不上，后来安装了Windows Server 2022，因为是机械硬盘，有些卡。既然系统安装好了，就试试nascab，看可能替代群晖的相册功能，后来还是放弃了，这个软件不好用，而且还耗资源。说实话能替代群晖的相册还真的是很难。当然百度网盘和阿里云盘的相册功能还是与之一拼的，可网盘限制太多，自由度太差。额......跑题了！言归正传！nascab有个webdav功能，再加上阿里云盘可以同步数据，想着将阿里云盘的数据同步到Windows Server 2022上的nascab，但是nasweb的webdav功能太烂了，果断放弃。后来想起来alist自带webdav，就想着把阿里云盘的同步数据的文件移到alist目录下，但是移动错误，显示该文件夹处于同步状态，请先停止同步。移不动，我就试试删除看看，嘿，居然能删除。然后呢，我从回收站里将那个文件夹捞回来。可文件夹捞回来了，里面数据除了音乐，其他的都不见了，没错，消失了，回收站里没有，其他地方也没有，没有任何记录。后悔不已啊，后悔为什么把群晖虚拟机删了，后悔操作前不备份，后悔好好的折腾啥......</p>



<p>第二天，越想越亏，于是我找客服看看能不能找回来，起码找出消失的原因吧。可找了半天也没找到客服的入口。于是我就在帮助与反馈里提交了问题，反馈找不到客服的问题，并说明自己的情况。这也是破罐子破摔了。晚上收到了来自阿里云盘的邮件，看图：</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;69c39c14c6bba&quot;}" data-wp-interactive="core/image" data-wp-key="69c39c14c6bba" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="682" height="546" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://img.hjyl.org/uploads/2023/11/20231106003512.jpg"  class="wp-image-4742" title="20231106003512.jpg" alt="20231106003512.jpg" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="放大"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">阿里云盘反馈邮件</figcaption></figure>



<p>不过气归气，这办事效率还是有的。我看了下这个答复，差点把我绕晕了，瞬间我都怀疑我的阅读理解能力了。这个客服工单功能藏的够深啊。我一步一步按邮件所示操作，提交。</p>



<p>11月4日晚答复了我，而我11月5日早上才看到答复，让我重新登录账号看看文件可有了，我兴奋不已，二话不说，拿起手机查了下，果然还真有了。我是万万没想到，这数据还能找到。真的让我尝了失而复得的感觉啊！</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;69c39c14c7004&quot;}" data-wp-interactive="core/image" data-wp-key="69c39c14c7004" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="781" height="767" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://img.hjyl.org/uploads/2023/11/20231106011448.jpg"  class="wp-image-4744" title="20231106011448.jpg" alt="20231106011448.jpg" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="放大"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">阿里云盘工单截图</figcaption></figure>



<p>虽然这效率很高，但是曾经许的不限速承诺被自己撕掉了，着实把我们恶心坏了。不管什么产品最终的目的还是为了赚钱，为了利益。天下没免费的午餐，这是至理啊。所以我还是把数据保存在自己的硬盘里才是最放心的，网盘可以临时当个备份盘。</p>
<div id="content-copyright"><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;font-size: 13px;">版权声明: </span><span style="font-size: 13px;">本文采用 <a href="https://hjyl.org/go/aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzMuMC8=" rel="nofollow" target="_blank">BY-NC-SA</a> 协议进行授权，如无注明均为原创，转载请注明转自 <a href="https://hjyl.org">皇家元林</a><br>本文链接: <a rel="bookmark" title="找回阿里云盘丢失的数据" href="https://hjyl.org/recovery-aliyundrive-missing-data/">找回阿里云盘丢失的数据</a></span></div>]]></content:encoded>
					
					<wfw:commentRss>https://hjyl.org/recovery-aliyundrive-missing-data/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
			</item>
		<item>
		<title>收集好听的无损音乐</title>
		<link>https://hjyl.org/flac-music/</link>
					<comments>https://hjyl.org/flac-music/#comments</comments>
		
		<dc:creator><![CDATA[皇家元林]]></dc:creator>
		<pubDate>Thu, 03 Aug 2023 14:28:45 +0000</pubDate>
				<category><![CDATA[生活点滴]]></category>
		<category><![CDATA[dock]]></category>
		<category><![CDATA[flac]]></category>
		<category><![CDATA[刀郎]]></category>
		<category><![CDATA[无损音乐]]></category>
		<category><![CDATA[罗刹海市]]></category>
		<category><![CDATA[群晖]]></category>
		<category><![CDATA[落雪音乐]]></category>
		<category><![CDATA[阿里云盘]]></category>
		<guid isPermaLink="false">https://hjyl.org/?p=4549</guid>

					<description><![CDATA[最近网络上轩起了一阵好大的风——刀郎的新歌《罗刹海市》，那热度简直了，据说可以打破吉尼斯世界纪录了。可以这么说 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>最近网络上轩起了一阵好大的风——刀郎的新歌《罗刹海市》，那热度简直了，据说可以打破吉尼斯世界纪录了。可以这么说吧，但凡有这首歌的短视频，都至少有上万的点击率，相当的恐怖！</p>



<p>前几天，想升级下黑群晖系统（版本号7.2），导致在加入旧硬盘数据的时候，把整个盘子数据割掉了，奇了怪了，之前从版本6换到版本7.1的时候都没有问题，那个心疼的啊，你懂的吧，所有的音乐、电影、照片（从开始拍照的时候留下的照片数据）、文档全没有了，大概有400多G的数据。</p>



<p>其他数据就算了，肯定找不回来了，但音乐还是很好找的，当时为了方便在车上听音乐，已经拷贝到U盘上了。以前不注重音质，收集了近700首mp3音乐，也才3、4G的容量。这次在刀郎的新歌感染下，加上了对音乐音质的了解，我开始喜欢收集无损音乐了。毕竟高质量的音频和视频都是数码时代发展的趋势，而相对超清视频，无损音乐就小的很多了，像我这700首无损音乐，才占用19G的容量，小的20多M，大的100多M。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>先来科普一下什么是无损音乐？此知识来自于网络。</p>
<cite>简而言之就是，没有刻意通过压缩的音乐，客观意义上更属于原汁原味的声音，但是现在很多舆论直接把无损音乐媲美CD音质，也就是说用CD音质做标杆。最常用的无损音乐格式有wav、flac、ape，其中wav是用EAC这类抓轨软件从CD上直接抓取，所以基本和CD保持一致的声频文件，这格式的音乐文件非常大，而其他两个格式是属于无损压缩的格式，相对小了很多，网络上现在流行的无损压缩音乐格式是flac。<br>另外MP3、RM、WMA，这几个压缩格式就是对某些片段进行取样而成的格式，客观定义属于有损压缩，但是对MP3而言，如果你有320K的MP3那么音质还行，建议保留，因为它音质有接近CD的感觉，但是这种320K的MP3仅限耳机，音箱或扬声器都不行。</cite></blockquote>



<p>好在很久以前我有收藏歌单的习惯，相对很多音乐平台，网易云音乐做的还算不错，不过如今都差不多了，因为版权的问题，所有音乐平台都有下载不了的音乐。所以要想在一个平台听到自己想听的音乐，最好的方式就是下载到本地。</p>



<p>我用到的工具是<a href="https://hjyl.org/go/aHR0cHM6Ly9naXRodWIuY29tL2x5c3dodXQvbHgtbXVzaWMtZGVza3RvcCNyZWFkbWU=" rel="nofollow" target="_blank">落雪音乐</a>，这是一款Electron + Vue 开发的开源软件，它含有很多音源，基本上可以实现听所有你想听的音乐。然后它还能导入现在流行的各大音乐平台的歌单，而且你收藏的音乐列表还可以同步到自己搭建的服务器上。譬如我之前在网易云收藏的歌单，就可以导入到落雪音乐，然后在群晖docker搭建数据同步服务，同步落雪的数据，用落雪工具免费下载音乐，不需要任何费用。嗯嗯，非常香。</p>



<p>然后用官方的话说就是音乐平台不易，请尊重版权，支持正版，本项目仅用于对技术可行性的探索及研究。现在版权的意识相当重，搞不好哪天这么好的开源项目无奈被迫停止。大家且用且珍惜。网上分享无损音乐的网站，要么收费，要么保存在那种下载龟速的网盘里，无论哪一种，都很难受！</p>



<p>当然，用落雪听音乐是没问题的，但下载不了无损音乐，可能是因为其他平台会员的问题吧。然而这问题作者也考虑到了，所以它可以添加音源。这时又有大神做到了，分享了音源，我们用到的音源来自于<a href="https://hjyl.org/go/aHR0cHM6Ly9zaXh5aW4uY29tLzg0OTguaHRtbA==" rel="nofollow" target="_blank">六音</a>。有了它我们就可以正常下载flac格式的无损音乐了。</p>



<p>经过三四天的努力，我的本地音乐数据恢复了，而且还提高了音质。老样子，还是保存在群晖里，但这次我学聪明了，利用群晖数据同步工具cloud sync+阿里云webdav套件，备份群晖的数据到阿里云盘里。可这个同步工具有个问题，它只会上传、下载和删除。群晖自带的音乐播放器除了可以播放群晖共享文件夹music之外，还可以播放home/music文件夹（它称之为个人音乐库）里的文件，但是文件夹名必须小写，不支持大写，而我习惯首写字母大写。所以我今天试了下，将Music改成music，结果同步工具就一个劲的删阿里云盘里的备份音乐。后来我在播放器里导歌单的时候才发现音乐少了，这才恍然大悟，好在阿里云盘里有个回收站，被删的文件都在，点击恢复，就又回来了。搞清楚这个原理，我也给群晖加个回收站，这样就更保险了。</p>



<p>顶部上有个音乐菜单，就是现在我收集的无损音乐，数据服务在阿里云盘，通过alist生成链接，最终体现在我这个音乐播放器上。这款音乐播放器来自于<a href="https://hjyl.org/go/aHR0cHM6Ly9naXRodWIuY29tL3poaGVvL0hlb011c2lj" rel="nofollow" target="_blank">HeoMusic</a>，它可以绑定各大流行音乐平台的歌单，我就简单修改了一下，用来播放本地音乐文件。但alist搭建服务感觉不太稳定，有时候会播放失败，可以尝试狠狠刷新一下（CTRL+F5）。可惜我的服务器带宽太小，播放大文件会卡。所以我一直在找能直接访问我本地数据的办法。据说IPv6都是公网的ip，但移动的客服和宽带师傅都是废物，装不懂，就是不给你弄！</p>



<p>罢了！慢慢来吧！如果有好听的音乐，欢迎推荐给我，在此先谢过了！</p>
<div id="content-copyright"><span style="font-weight:bold;text-shadow:0 1px 0 #ddd;font-size: 13px;">版权声明: </span><span style="font-size: 13px;">本文采用 <a href="https://hjyl.org/go/aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzMuMC8=" rel="nofollow" target="_blank">BY-NC-SA</a> 协议进行授权，如无注明均为原创，转载请注明转自 <a href="https://hjyl.org">皇家元林</a><br>本文链接: <a rel="bookmark" title="收集好听的无损音乐" href="https://hjyl.org/flac-music/">收集好听的无损音乐</a></span></div>]]></content:encoded>
					
					<wfw:commentRss>https://hjyl.org/flac-music/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
	</channel>
</rss>
