不忘初心

​ 1987年,那封email告诉我们,Across the Great Wall we can reach every corner in the world”(“越过长城,走向世界”)。

​ 入手爪云后,勾起越过长城,走向世界的心。在此之前的越法参考iPhone配置socks代理,在本地服务器如192.168.1.25通过SSH代理,然后内网客户端浏览器设置特定代理访问,手机WiFi设置http代理访问。这一次,想找一款工具替代SSH、gost或Potatso的方式穿越。

选定工具

​ sing-box

​ 优点:简洁易用(入手后才易),全平台,免费,还可以隐藏VPN图标~~~;

​ 缺点:不易入手,并非不宜入手;LOGO略丑。

​ 官网地址:https://sing-box.sagernet.org/

​ 项目地址:https://github.com/SagerNet/sing-box

​ 第三方GUI:https://github.com/GUI-for-Cores/GUI.for.SingBox

​ sing-box 程序本身不区分客户端与服务端,区别在于JSON配置文件。

安装管理

1
bash <(curl -fsSL https://sing-box.app/rpm-install.sh)
Operation Command
Enable sudo systemctl enable sing-box
Disable sudo systemctl disable sing-box
Start sudo systemctl start sing-box
Stop sudo systemctl stop sing-box
Kill sudo systemctl kill sing-box
Restart sudo systemctl restart sing-box
Logs sudo journalctl -u sing-box --output cat -e
New Logs sudo journalctl -u sing-box --output cat -f

订阅转换

  1. 下载安装配置好python环境;
  2. 下载sing-box-subscribe-no-flask-2.8.0解压;
  3. 拷贝要转换的如http、ss链接替换文件providers.json里的url;
  4. CMD或powershell下执行python main.py,选择相应配置文件,最终生成config.json;
  5. 苹果手机安装sing-box后导入config.json。

一个小坑

WIN平台用的是第三方GUI,导入订阅链接或设置单个链接后,一直无法启动。提示:

1
fork/exec data/sing-box/sing-box.exe: The system cannot find the file specified.

解决方法是使用前需要先更新一下内核。打开GUI.for.SingBox,设置,点击最右侧更新。

1
2
本地:无核心 远程:1.11.3 更新:1.11.3
local: Core Not Found Remote:1.11.3 Update:1.11.3

前段日子入手的VPS,阿里的机器、阿里的线路、阿里的IP,江湖人称阿里云青春版、小阿里等,马云看了都心动想入手一台测试~~~

蛛丝马迹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Your ISP is AS45102 (Alibaba (US) Technology Co., Ltd.)

[root@s32974 ~]# curl http://100.100.100.200/latest/meta-data/instance/instance-type
ecs.e-c1m1.small (普通线路)

[root@s32985 ~]# curl http://100.100.100.200/latest/meta-data/instance/instance-type
ecs.e-c2m1.large (优化线路)

[root@s32974 ~]# curl 100.100.100.200/latest/meta-data/owner-account-id
1278417500339501

curl 100.100.100.200/latest/meta-data/owner-account-id
账号是 1278417500339501

1 开头是国内站
5 开头是国际站

root@s32974 ~]# ping oss-cn-hongkong-internal.aliyuncs.com
PING oss-cn-hongkong-internal.aliyuncs.com (100.115.61.10) 56(84) bytes of data.
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=1 ttl=102 time=1.20 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=2 ttl=102 time=1.11 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=3 ttl=102 time=1.10 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=4 ttl=102 time=1.10 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=5 ttl=102 time=1.09 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=6 ttl=102 time=1.07 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=7 ttl=102 time=1.07 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=8 ttl=102 time=1.07 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=9 ttl=102 time=1.09 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=10 ttl=102 time=1.11 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=11 ttl=102 time=1.10 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=12 ttl=102 time=1.12 ms
64 bytes from 100.115.61.10 (100.115.61.10): icmp_seq=13 ttl=102 time=1.25 ms
--- oss-cn-hongkong-internal.aliyuncs.com ping statistics ---
13 packets transmitted, 13 received, 0% packet loss, time 12019ms
rtt min/avg/max/mdev = 1.067/1.113/1.246/0.050 ms

联通回程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
优化线路 AS10099->AS4837 

广州商宽

My traceroute [v0.94]
s32985 (10.3.26.148) -> 112.94.11.83 2025-01-22T07:55:57+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.0.154 81.1% 1311 2.3 2.4 2.2 14.5 0.8
2. AS749 11.73.13.90 85.6% 1311 2.9 3.2 2.8 5.4 0.4
3. AS749 26.25.157.98 0.0% 1311 2.6 3.3 2.5 32.0 3.6
4. AS??? 47.246.116.58 0.3% 1311 2.2 3.0 2.2 42.7 3.5
5. AS??? 47.246.115.106 0.0% 1311 2.2 3.2 2.0 68.8 4.7
6. AS??? 47.246.113.241 0.0% 1311 2.9 3.4 2.6 37.2 3.5
7. AS??? 61.14.203.165 0.7% 1311 4.2 4.1 3.9 14.2 0.9
8. AS??? 61.14.201.106 99.2% 1311 3.7 4.0 3.7 5.3 0.5
9. AS10099 202.77.23.29 17.3% 1311 3.8 3.7 3.6 24.5 1.7
10. AS4837 219.158.3.105 0.0% 1311 8.2 11.1 7.3 15.7 2.3
11. AS4837 219.158.4.109 0.0% 1311 13.7 11.6 8.0 22.6 2.4
12. AS4837 219.158.3.97 93.3% 1310 8.7 9.3 8.6 26.9 2.5
13. AS17816 120.80.0.98 86.2% 1310 7.7 9.1 7.5 25.8 3.6
14. AS17622 120.80.123.254 0.2% 1310 10.3 10.0 10.0 12.4 0.1
15. AS17622 112.94.11.83 0.0% 1310 9.9 9.7 9.6 39.4 1.2

广州普宽

My traceroute [v0.94]
s32985 (10.3.26.148) -> 120.80.123.253 2025-01-22T08:24:56+0000
Loss% Snt Last Avg Best Wrst StDevtics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.0.154 84.6% 1576 2.3 2.5 2.2 19.2 1.6
2. (waiting for reply)
3. AS749 26.25.157.122 0.0% 1576 2.5 6.9 2.4 75.7 9.9
4. AS??? 47.246.116.54 0.0% 1576 4.7 3.1 2.1 40.4 3.9
5. AS749 11.94.177.126 0.0% 1576 2.4 3.1 2.2 41.9 4.1
6. AS??? 47.246.113.245 0.0% 1576 2.9 3.4 2.7 67.7 3.7
7. AS??? 61.14.203.169 0.2% 1576 4.4 4.2 4.0 17.3 0.9
8. AS??? 61.14.201.106 98.8% 1576 3.9 4.1 3.8 7.9 0.9
9. AS10099 202.77.23.29 42.3% 1575 3.6 3.9 3.6 19.5 1.6
10. AS4837 219.158.3.209 0.0% 1575 7.9 10.3 6.7 16.8 2.3
11. AS4837 219.158.24.133 0.0% 1575 8.7 11.6 7.7 22.3 2.4
12. AS4837 219.158.8.113 20.7% 1575 9.6 9.4 8.5 24.7 0.9
13. AS17816 120.83.0.166 0.1% 1575 9.6 13.3 8.6 253.0 21.9
14. AS17622 120.80.123.242 0.4% 1575 10.2 10.3 9.9 26.0 1.4
15. AS17622 120.80.123.253 0.0% 1575 8.6 8.5 8.5 13.4 0.2

珠海家宽

My traceroute [v0.94]
s32985 (10.3.26.148) -> 120.80.201.117 2025-01-22T08:37:10+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.0.154 81.0% 616 2.4 2.4 2.2 2.8 0.1
2. AS749 11.73.0.101 91.9% 616 2.8 3.1 2.7 4.9 0.4
3. AS749 26.25.157.90 0.0% 616 2.5 2.6 2.4 23.5 1.2
4. AS??? 10.54.154.182 29.6% 615 2.6 2.6 2.5 5.2 0.2
5. AS749 11.94.177.146 0.0% 615 4.9 4.2 2.9 50.9 4.3
6. AS??? 47.246.113.245 0.0% 615 16.7 3.7 3.0 42.4 3.5
7. AS??? 61.14.203.165 0.7% 615 4.6 4.7 4.2 21.9 1.2
8. AS??? 61.14.201.106 99.2% 615 4.4 4.1 4.0 4.4 0.1
9. AS10099 202.77.23.29 12.2% 615 4.0 4.2 3.9 31.0 1.8
10. AS4837 219.158.3.209 0.0% 615 12.6 10.9 7.0 15.1 2.3
11. AS4837 219.158.4.33 0.0% 615 11.4 11.9 8.0 17.9 2.3
12. AS4837 219.158.3.57 1.0% 615 10.4 9.5 8.4 13.7 0.7
13. AS17816 120.80.201.117 0.0% 615 12.2 15.9 11.8 43.8 3.3

===========================================================================================================================

普通线路

广州联通 普宽

My traceroute [v0.94]
s32974 (10.2.79.193) -> 120.80.123.253 2025-01-22T08:37:59+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.11.226 33.3% 892 2.6 2.5 2.4 9.7 0.3
2. AS749 11.73.11.225 76.8% 892 2.5 2.6 2.5 4.5 0.2
3. AS749 11.91.95.97 0.0% 892 2.2 3.1 2.1 48.5 4.5
4. AS749 11.94.183.26 96.4% 892 2.7 2.7 2.5 3.0 0.2
5. AS45102 116.251.86.194 0.0% 891 3.3 32.1 2.9 509.4 80.9
6. AS3491 hu0-0-0-20.br04.hkg12.as3491.net 23.8% 891 3.2 3.3 3.0 53.4 2.5
7. (waiting for reply)
8. AS3491 Hu0-0-0-13.br06.sjo01.as3491.net 76.5% 891 156.0 156.1 155.8 171.6 1.1
9. AS3491 63-217-21-126.static.as3491.net 74.0% 891 156.1 156.1 156.1 157.1 0.1
10. AS??? 0.ae1.GW2.LAX1.ALTER.NET 1.0% 891 178.9 161.9 161.4 197.2 2.7
11. AS701 WS-CHINAUNICOM-HK-OPERATIONSLTD.customer.alter.net 0.0% 891 168.4 168.8 167.4 315.3 5.4
12. AS4837 219.158.98.49 0.0% 891 307.0 308.2 304.4 312.8 2.3
13. AS4837 219.158.3.161 0.0% 891 320.9 324.7 320.8 337.0 2.4
14. AS4837 219.158.3.13 0.0% 891 317.1 316.8 315.8 326.5 0.9
15. AS17816 120.86.0.182 0.1% 891 318.9 327.1 318.3 741.2 41.3
16. AS17622 120.80.123.242 0.7% 891 317.9 318.2 317.4 367.3 2.7
17. AS17622 120.80.123.253 0.0% 891 317.0 316.9 316.9 319.8 0.2


珠海家宽

My traceroute [v0.94]
s32974 (10.2.79.193) -> 120.80.201.117 2025-01-22T08:49:38+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.11.226 41.3% 282 2.5 2.6 2.4 3.3 0.1
2. AS749 11.73.12.1 68.8% 282 2.4 2.5 2.3 3.7 0.2
3. AS749 11.91.95.73 0.0% 282 9.4 3.1 2.2 33.7 3.1
4. AS749 11.94.183.26 99.6% 282 2.9 2.9 2.9 2.9 0.0
5. AS45102 116.251.86.194 0.0% 282 3.3 39.9 3.0 348.7 86.1
6. AS3491 hu0-0-0-20.br04.hkg12.as3491.net 38.3% 282 3.6 3.6 2.9 43.1 3.4
7. (waiting for reply)
8. AS3491 Hu0-0-0-13.br06.sjo01.as3491.net 79.4% 282 156.1 156.2 156.1 157.0 0.1
9. AS3491 63-217-21-126.static.as3491.net 79.7% 282 156.6 156.4 156.3 156.9 0.1
10. AS??? 0.ae1.GW2.LAX1.ALTER.NET 3.2% 281 162.9 163.8 161.7 200.6 5.7
11. AS701 WS-CHINAUNICOM-HK-OPERATIONSLTD.customer.alter.net 0.0% 281 160.0 163.8 159.4 322.8 20.3
12. AS4837 219.158.97.205 0.0% 281 320.5 320.2 316.2 324.2 2.3
13. AS4837 219.158.4.29 0.0% 281 327.9 324.5 320.5 333.1 2.4
14. AS4837 219.158.3.33 0.0% 281 321.9 322.3 321.2 323.7 0.7
15. AS17816 120.80.201.117 0.0% 281 328.0 327.4 325.5 336.8 1.3

广州联通 商宽

My traceroute [v0.94]
s32974 (10.2.79.193) -> 112.94.11.83 2025-01-22T08:42:46+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.11.226 39.6% 241 2.5 2.6 2.4 3.0 0.1
2. AS749 11.91.95.26 35.3% 241 2.6 2.6 2.6 3.2 0.1
3. AS749 11.91.95.89 0.0% 241 2.3 3.4 2.1 28.2 3.9
4. AS749 11.94.183.26 36.7% 241 2.6 2.6 2.5 3.2 0.2
5. AS45102 116.251.86.194 0.0% 241 3.1 21.8 3.0 322.5 60.9
6. AS3491 hu0-0-0-20.br04.hkg12.as3491.net 30.3% 241 3.1 3.3 2.9 16.4 1.4
7. (waiting for reply)
8. AS3491 Hu0-0-0-13.br06.sjo01.as3491.net 81.2% 241 156.3 156.5 156.1 165.6 1.4
9. AS3491 63-217-21-126.static.as3491.net 71.2% 241 156.5 156.4 156.3 157.0 0.1
10. AS??? 0.ae1.GW2.LAX1.ALTER.NET 1.7% 241 161.8 162.5 161.7 193.3 2.9
11. AS701 WS-CHINAUNICOM-HK-OPERATIONSLTD-C.customer.alter.net 0.0% 241 160.8 159.9 158.8 161.3 0.6
12. AS4837 219.158.4.197 0.0% 241 306.1 302.4 298.4 306.4 2.3
13. AS4837 219.158.96.210 40.8% 241 309.2 309.4 309.1 318.6 0.9
14. AS4837 219.158.103.41 95.4% 240 311.0 307.6 305.2 311.0 2.4
15. AS17816 112.89.0.70 89.1% 240 308.3 308.5 308.2 311.2 0.7
16. AS17622 120.80.123.254 0.4% 240 314.9 314.9 314.9 316.6 0.1
17. AS17622 112.94.11.83 0.0% 240 309.4 309.6 309.3 310.7 0.2

电信回程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
优化线路 AS10099->AS4837

广州电信 普宽

My traceroute [v0.94]
s32985 (10.3.26.148) -> 61.140.126.153 2025-01-23T03:58:22+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.0.154 75.8% 501 2.3 2.4 2.2 6.0 0.3
2. AS749 11.73.13.82 88.2% 501 2.8 3.0 2.6 4.0 0.3
3. AS749 26.25.157.66 0.0% 501 2.5 2.6 2.5 7.0 0.4
4. AS??? 10.54.154.182 99.6% 501 3.4 3.0 2.6 3.4 0.6
5. AS749 11.94.177.146 0.0% 501 2.9 4.2 2.9 96.4 5.7
6. AS??? 47.246.114.1 0.0% 501 3.2 3.3 3.2 32.8 1.9
7. AS??? 61.14.203.61 0.0% 501 3.2 3.2 3.1 4.7 0.2
8. AS10099 202.77.18.194 60.9% 501 4.0 4.8 3.3 36.3 4.5
9. AS10099 103.239.176.121 18.2% 501 7.4 7.5 7.3 22.6 0.9
10. AS4837 219.158.6.105 0.0% 501 6.9 10.5 6.6 14.7 2.4
11. AS4837 219.158.3.165 0.0% 501 8.2 11.1 7.2 15.3 2.3
12. AS4837 219.158.3.125 39.9% 501 8.0 8.1 7.9 20.5 1.0
13. AS4837 219.158.9.30 14.2% 501 10.9 12.5 8.6 17.5 2.4
14. (waiting for reply)
15. AS4134 202.97.95.141 84.4% 501 8.0 8.9 8.0 21.8 2.1
16. AS4134 14.147.4.114 0.0% 501 9.0 14.2 7.9 136.6 13.6
17. AS4134 14.147.8.1 0.0% 501 9.9 10.3 9.6 23.1 1.1

广州电信 商宽

My traceroute [v0.94]
s32985 (10.3.26.148) -> 61.144.3.54 2025-01-23T09:53:00+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.0.154 81.0% 1355 2.3 2.3 2.2 4.6 0.3
2. AS749 11.73.13.146 98.2% 1355 6.2 4.5 3.5 10.3 1.6
3. AS749 26.25.157.170 0.0% 1355 2.4 7.7 2.1 105.5 12.2
4. AS??? 10.54.154.190 13.5% 1355 3.0 2.5 2.5 26.6 1.1
5. AS45102 116.251.86.198 4.8% 1355 3.1 4.0 2.7 75.1 4.9
6. AS??? 47.246.113.241 0.0% 1355 3.2 3.6 2.9 45.4 3.3
7. AS??? 61.14.203.165 0.1% 1355 4.6 4.4 4.2 16.4 0.9
8. AS??? 61.14.201.102 98.4% 1355 4.0 5.0 4.0 10.7 2.0
9. AS10099 103.239.176.121 31.4% 1355 8.0 7.9 7.8 18.0 0.8
10. AS4837 219.158.6.105 0.0% 1355 13.9 10.9 7.1 20.7 2.3
11. AS4837 219.158.4.37 0.4% 1355 12.5 11.3 7.3 20.5 2.3
12. AS4837 219.158.3.157 96.8% 1355 9.5 9.8 8.3 19.7 2.2
13. AS4837 219.158.112.25 60.7% 1355 59.0 42.7 40.6 61.5 3.9
14. AS4837 219.158.25.22 45.9% 1355 45.3 46.3 42.6 51.9 2.3
15. AS4837 219.158.44.134 96.6% 1355 40.7 41.6 40.4 50.3 2.1
16. AS4134 202.97.17.125 94.0% 1355 40.1 40.4 40.0 51.0 1.6
17. AS4134 202.97.22.154 94.4% 1354 41.1 41.6 41.0 48.3 1.2
18. AS4134 61.144.3.54 0.0% 1354 40.6 40.6 40.6 41.4 0.1

========================================================================================================================

普通线路

广州电信 普宽

My traceroute [v0.94]
s32974 (10.2.79.193) -> 14.147.10.189 2025-01-22T08:57:47+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.11.226 44.7% 445 2.9 2.7 2.4 4.7 0.2
2. AS749 11.91.95.26 38.2% 445 2.6 2.7 2.6 9.5 0.5
3. AS749 11.91.95.89 0.0% 445 10.0 3.1 2.1 29.8 3.5
4. AS749 11.94.183.26 94.4% 445 2.5 2.6 2.5 2.8 0.1
5. AS45102 116.251.86.194 0.0% 445 176.2 21.7 3.0 310.7 54.1
6. AS3491 hu0-0-0-20.br04.hkg12.as3491.net 23.4% 445 3.8 3.7 3.0 61.0 4.6
7. (waiting for reply)
8. AS3491 Bundle-Ether41.br06.sjo01.as3491.net 80.4% 445 170.5 170.5 170.3 172.8 0.3
9. AS3491 63-217-21-126.static.as3491.net 72.5% 445 170.7 170.7 170.7 171.2 0.1
10. AS??? 0.ae28.GW7.SJC7.ALTER.NET 0.0% 445 173.5 174.0 173.3 212.9 3.6
11. AS701 ChinaTelecomAmericas-ChinaTelecomAm.customer.alter.net 2.0% 445 241.3 257.2 215.7 274.6 13.0
12. AS4134 202.97.63.29 76.1% 445 415.8 413.2 379.1 430.2 12.4
13. AS4134 202.97.12.42 9.7% 444 414.8 426.5 355.6 465.6 18.5
14. AS4134 202.97.71.249 11.3% 444 417.9 426.6 354.5 453.8 18.9
15. AS4134 14.147.8.26 84.9% 444 450.9 419.6 374.5 465.2 16.8
16. AS4134 14.147.10.189 1.8% 444 410.8 416.6 356.6 450.1 15.3

广州电信 商宽

My traceroute [v0.95]
5d30c3.h2.nexus (10.19.159.159) -> 61.144.3.54 2025-01-23T07:15:12+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS??? 10.0.0.1 0.0% 71 0.1 0.1 0.1 0.2 0.0
2. AS215730 core-fra.h2.nexus 0.0% 71 3.9 3.8 3.8 4.0 0.0
3. AS??? 100.65.40.1 0.0% 70 5.0 6.3 4.6 40.2 5.1
4. AS28917 frankfurt-nt-b1-ae1-vla 0.0% 70 19.3 6.8 4.1 32.6 5.0
5. AS4134 81.173.22.33 0.0% 70 6.5 6.0 4.7 13.7 1.2
6. AS4134 202.97.89.109 4.3% 70 188.0 188.1 187.9 190.1 0.3
7. AS4134 202.97.66.226 98.5% 70 166.4 166.4 166.4 166.4 0.0
8. (waiting for reply)
9. AS4134 14.147.5.130 7.1% 70 193.3 198.4 190.5 306.6 16.8
10. (waiting for reply)
11. AS4134 61.144.3.54 0.0% 70 173.9 172.1 170.3 174.2 1.6

移动回程

AS58453->AS9808

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
广州移动 商宽 (优化线路)

My traceroute [v0.94]
s32985 (10.3.26.148) -> 120.196.91.104 2025-01-23T05:16:33+0000
Loss% Snt Last Avg Best Wrst StDevtics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS749 11.73.0.154 81.5% 4612 2.3 2.3 2.1 25.8 0.9
2. (waiting for reply)
3. AS??? 10.36.51.137 0.0% 4612 2.4 5.1 2.2 89.9 9.0
4. AS??? 47.246.116.54 72.0% 4612 2.6 2.5 2.3 37.0 2.2
5. AS749 11.94.177.122 0.0% 4612 4.2 44.2 3.3 928.0 99.1
6. AS58453 223.119.19.45 0.7% 4612 3.6 3.4 3.3 23.1 1.3
7. AS58453 223.120.22.69 11.0% 4611 4.3 4.1 4.0 32.3 0.9
8. AS58453 223.120.2.6 0.0% 4611 9.2 8.9 8.7 30.5 2.2
9. AS9808 221.183.55.58 12.8% 4611 9.8 9.7 9.7 20.8 0.6
10. AS9808 221.183.92.21 2.1% 4611 9.8 9.8 9.7 33.7 1.1
11. AS9808 221.183.89.246 97.9% 4611 22.6 13.3 11.8 30.0 3.6
12. AS9808 221.183.39.182 73.4% 4611 23.4 14.0 13.4 37.3 2.3
13. AS9808 183.233.59.226 0.0% 4611 14.5 14.3 14.2 25.4 0.5
14. AS9808 120.196.91.104 0.0% 4611 15.6 15.4 14.4 226.2 5.2

广州移动 商宽 (普通线路)

My traceroute [v0.95]
5d30c3.h2.nexus (10.19.159.159) -> 120.196.91.104 (120.2025-01-23T07:12:06+0000
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS??? 10.0.0.1 0.0% 52 0.1 0.1 0.1 0.1 0.0
2. AS215730 core-fra.h2.nexus 0.0% 52 3.8 3.8 3.8 4.0 0.0
3. AS??? 100.65.40.1 0.0% 52 4.5 6.4 4.5 36.0 5.4
4. AS28917 frankfurt-nt-b1-ae1-vla 0.0% 51 7.8 7.4 4.0 16.6 3.7
5. AS3257 ae19-1245.cr4-fra6.ip4. 0.0% 51 4.7 7.1 4.2 31.0 5.6
6. AS3257 ae7.cr1-nyc2.ip4.gtt.ne 0.0% 51 83.3 86.8 83.1 119.6 7.6
7. AS1299 nyk-b7-link.ip.twelve99 0.0% 51 83.2 83.3 83.1 83.7 0.1
8. AS1299 ewr-bb2-link.ip.twelve9 0.0% 51 83.9 84.2 83.9 92.9 1.2
9. AS1299 ldn-bb2-link.ip.twelve9 88.0% 51 84.0 84.0 83.9 84.2 0.1
10. AS1299 ldn-b3-link.ip.twelve99 0.0% 51 84.2 84.3 84.0 87.6 0.6
11. AS1299 chinamobile-ic-311724.i 0.0% 51 87.0 86.7 86.5 87.1 0.2
12. AS58453 223.118.21.10 3.9% 51 87.8 87.9 87.7 90.5 0.4
13. AS58453 223.120.22.10 0.0% 51 284.9 284.8 284.7 285.3 0.1
14. AS9808 221.183.55.82 0.0% 51 282.5 282.4 282.3 282.8 0.1
15. AS9808 221.183.92.17 0.0% 51 281.5 281.4 281.3 282.1 0.1
16. (waiting for reply)
17. AS9808 221.183.39.178 24.0% 51 281.6 281.9 281.6 282.9 0.2
18. AS9808 183.233.59.222 0.0% 51 281.3 281.8 281.0 284.2 0.8
19. AS9808 120.196.91.104 0.0% 51 282.2 282.1 281.2 283.7 0.5

文件信息

视频文件里的粤语音轨有些在轨道 ID 3: audio (AAC),有些在轨道 ID 2: audio (AAC)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
G:\>D:\software\mkvtoolnix\mkvmerge -i 灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.001.mkv
文件 「灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.001.mkv」: 容器: Matroska
轨道 ID 0: video (AVC/H.264/MPEG-4p10)
轨道 ID 1: audio (AAC)
轨道 ID 2: audio (FLAC)
轨道 ID 3: audio (AAC)
轨道 ID 4: subtitles (SubStationAlpha)

G:\>D:\software\mkvtoolnix\mkvmerge -i 灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.002.mkv
文件 「灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.002.mkv」: 容器: Matroska
轨道 ID 0: video (AVC/H.264/MPEG-4p10)
轨道 ID 1: audio (AAC)
轨道 ID 2: audio (FLAC)
轨道 ID 3: audio (AAC)
轨道 ID 4: subtitles (SubStationAlpha)

G:\>D:\software\mkvtoolnix\mkvmerge -i 灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.003.mkv
文件 「灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.003.mkv」: 容器: Matroska
轨道 ID 0: video (AVC/H.264/MPEG-4p10)
轨道 ID 1: audio (AAC)
轨道 ID 2: audio (AAC)
轨道 ID 3: audio (FLAC)
轨道 ID 4: subtitles (SubStationAlpha)
轨道 ID 5: subtitles (SubStationAlpha)

G:\>D:\software\mkvtoolnix\mkvmerge -i 灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.004.mkv
文件 「灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.004.mkv」: 容器: Matroska
轨道 ID 0: video (AVC/H.264/MPEG-4p10)
轨道 ID 1: audio (AAC)
轨道 ID 2: audio (AAC)
轨道 ID 3: audio (FLAC)
轨道 ID 4: subtitles (SubStationAlpha)

单件处理

1
D:\software\mkvtoolnix\mkvpropedit.exe "灌篮高手.1080P.国粤日三语.软字幕.AVC.默认国语音频.001.mkv" --edit track:a1 --set flag-default=0 --set flag-forced=0 --edit track:a2 --set flag-default=0 --set flag-forced=0 --edit track:a3 --set flag-default=1 --set flag-forced=1

批量处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
@echo off
setlocal enabledelayedexpansion

:: 设置输入文件夹
set "input_folder=G:\"

:: 遍历输入文件夹中的所有 MKV 文件
for %%f in ("%input_folder%\*.mkv") do (
echo Processing file: %%f

:: 获取音轨信息并存储到临时文件
D:\software\mkvtoolnix\mkvmerge.exe -i "%%f" > temp_tracks.txt

:: 初始化变量
set "hasAAC2=0"
set "hasAAC3=0"
set "hasFLAC=0"

:: 检查音轨信息
for /f "tokens=*" %%a in (temp_tracks.txt) do (
echo Debug: %%a
if "%%a"=="轨道 ID 2: audio (AAC)" (
set "hasAAC2=1"
) else if "%%a"=="轨道 ID 3: audio (AAC)" (
set "hasAAC3=1"
) else if "%%a"=="轨道 ID 3: audio (FLAC)" (
set "hasFLAC=1"
)
)

:: 根据条件修改默认音轨
if "!hasAAC2!"=="1" (
echo Setting AAC track ID 2 as default for file: %%f
D:\software\mkvtoolnix\mkvpropedit.exe "%%f" --edit track:a1 --set flag-default=0 --set flag-forced=0 --edit track:a2 --set flag-default=1 --set flag-forced=1 --edit track:a3 --set flag-default=0 --set flag-forced=0
) else if "!hasAAC3!"=="1" (
echo Setting AAC track ID 3 as default for file: %%f
D:\software\mkvtoolnix\mkvpropedit.exe "%%f" --edit track:a1 --set flag-default=0 --set flag-forced=0 --edit track:a2 --set flag-default=0 --set flag-forced=0 --edit track:a3 --set flag-default=1 --set flag-forced=1
) else (
echo No valid AAC track found for file: %%f
)

:: 删除临时文件
del temp_tracks.txt
)

echo All files processed.
pause

重新命名

保存rename.py,执行python rename.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import os

# 定义文件夹路径
folder_path = r"G:\"

# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
# 检查文件扩展名是否为.mkv
if filename.endswith(".mkv"):
# 检查文件名是否符合特定模式
if "国语音频" in filename:
# 替换最后一个“国”字为“粤”字
new_name = filename.rsplit("", 1)[0] + "" + filename.rsplit("", 1)[1]
# 构造完整的文件路径
old_file_path = os.path.join(folder_path, filename)
new_file_path = os.path.join(folder_path, new_name)
# 重命名文件
os.rename(old_file_path, new_file_path)
print(f"重命名:{filename} -> {new_name}")

print("所有符合条件的文件已重命名完成。")

处理结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
G:\>D:\software\mkvtoolnix\mkvinfo.exe 灌篮高手.1080P.国粤日三语.软字幕.AVC.默认粤语音频.001.mkv
+ EBML 头
|+ EBML 版本: 1
|+ EBML 读取版本: 1
|+ EBML ID 最大长度: 4
|+ EBML 大小最大长度: 8
|+ 文档类型: matroska
|+ 文档类型版本: 4
|+ 文档类型读取版本: 2
+ 剪辑: 大小 1397911679
|+ 定位头 (子条目将被跳过)
|+ 轨道
| + 轨道
| + 轨道编号: 1 (mkvmerge & mkvextract 的轨道 ID: 0)
| + 轨道 UID: 1
| + 轨道类型: 视频
| + 「紧缩」 标记: 0
| + 编码格式 ID: V_MPEG4/ISO/AVC
| + 编解码器私有数据: 大小 45 (H.264 档次: High 10 @L5.1)
| + 默认帧时长: 00:00:00.041708333 (对应视频轨的 23.976 帧/场每秒)
| + 语言: jpn
| + 名称: [Kagura] Slam Dunk - 001 [BDRip 1440x1080 x264 Hi10P FLAC]
| + 视频轨道
| + 像素宽度: 1440
| + 像素高度: 1080
| + 显示宽度: 1440
| + 显示高度: 1080
| + 轨道
| + 轨道编号: 2 (mkvmerge & mkvextract 的轨道 ID: 1)
| + 轨道 UID: 4259734031005461432
| + 轨道类型: 音频
| + 「强制显示」 标记: 0
| + 编码格式 ID: A_AAC
| + 编解码器私有数据: 大小 5
| + 默认帧时长: 00:00:00.021333333 (对应视频轨的 46.875 帧/场每秒)
| + 语言: chi
| + 名称: 国语Mandarin
| + 音频轨
| + 采样率: 48000
| + 声道数: 2
| + 「默认轨」 标记: 0
| + 轨道
| + 轨道编号: 3 (mkvmerge & mkvextract 的轨道 ID: 2)
| + 轨道 UID: 17988462785428992699
| + 轨道类型: 音频
| + 「默认轨」 标记: 0
| + 「强制显示」 标记: 0
| + 编码格式 ID: A_FLAC
| + 编解码器私有数据: 大小 113
| + 默认帧时长: 00:00:00.085333333 (对应视频轨的 11.719 帧/场每秒)
| + 语言: jpn
| + 音频轨
| + 采样率: 48000
| + 声道数: 2
| + 位深: 16
| + 轨道
| + 轨道编号: 4 (mkvmerge & mkvextract 的轨道 ID: 3)
| + 轨道 UID: 4385456018886019507
| + 轨道类型: 音频
| + 「默认轨」 标记: 1
| + 编码格式 ID: A_AAC
| + 编解码器私有数据: 大小 5
| + 默认帧时长: 00:00:00.046439909 (对应视频轨的 21.533 帧/场每秒)
| + 语言: chi
| + 名称: 粤语Cantonese
| + 音频轨
| + 采样率: 22050
| + 输出采样频率: 44100
| + 「强制显示」 标记: 1
| + 轨道
| + 轨道编号: 5 (mkvmerge & mkvextract 的轨道 ID: 4)
| + 轨道 UID: 4592099748104795573
| + 轨道类型: 字幕
| + 「紧缩」 标记: 0
| + 编码格式 ID: S_TEXT/ASS
| + 编解码器私有数据: 大小 1488
| + 语言: chi
| + 名称: 诸神简日双语字幕
|+ EBML void: 大小 1923
|+ 剪辑信息
| + 时间戳缩放: 1000000
| + 混流应用程序: libebml v1.3.6 + libmatroska v1.4.9
| + 写入应用程序: mkvmerge v24.0.0 ('Beyond The Pale') 64-bit
| + 时长: 00:19:39.921000000
| + 日期: 2018-06-13 04:01:56 UTC
| + 剪辑 UID: 0x1c 0xe1 0xb8 0x3d 0x99 0x9b 0x00 0x62 0x4c 0x68 0x7d 0x14 0x12 0xf2 0x71 0xf9
|+ EBML void: 大小 3282
|+ 簇

广州电信商宽

  • 去程 AS4134-AS2914 NTT线路 直连 广州->日本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 My traceroute  [v0.94]
localhost.localdomain (192.168.1.25) -> 140.91.206.90 2025-01-21T11:42:03+0800
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS??? _gateway 0.0% 3453 0.5 0.3 0.2 36.2 1.0
2. AS??? 192.168.1.254 0.0% 3453 0.5 0.3 0.3 22.8 0.7
3. AS4134 183.6.107.1 0.0% 3453 3.7 3.4 2.1 25.3 1.7
4. AS4134 14.147.9.14 13.7% 3453 5.8 4.6 2.2 33.1 3.8
5. AS4134 117.176.37.59.broad.dg.gd.dynamic.163data.com.cn 49.3% 3453 3.7 5.2 2.2 51.9 4.4
6. AS4134 61.144.2.17 80.2% 3453 3.1 3.0 2.2 19.1 1.0
7. AS4134 202.97.71.250 23.1% 3453 4.1 4.2 2.9 118.3 7.9
8. AS4134 202.97.12.1 20.4% 3453 5.2 4.6 3.7 42.7 1.4
9. AS??? 203.86.97.18 0.0% 3453 166.0 165.6 164.7 216.1 3.5
10. AS2914 ae-3.r33.tokyjp05.jp.bb.gin.ntt.net 63.0% 3453 157.3 160.9 156.3 250.8 9.6
11. AS2914 ae-5.a01.tokyjp10.jp.bb.gin.ntt.net 0.0% 3453 165.3 170.0 164.0 221.6 7.0
12. AS2914 ae-0.oracle-oci.tokyjp10.jp.bb.gin.ntt.net 0.0% 3453 163.3 160.2 155.8 229.5 8.8
13. AS31898 140.91.206.90 0.0% 3453 164.1 164.0 163.2 186.0 0.9
  • 回程 AS2914-AS4134 NTT线路 绕美 日本->美国->广州
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
My traceroute  [v0.85]
instance-20220225-1301 (0.0.0.0) Tue Jan 21 03:46:30 2025
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS31898 140.91.206.100 0.0% 127 0.3 0.2 0.2 0.4 0.0
2. AS2914 ae-0.oracle-oci.tokyjp10.jp.bb.gin.ntt.net 0.0% 127 1.9 3.0 1.0 30.2 4.7
3. AS2914 ae-33.a01.tokyjp10.jp.bb.gin.ntt.net 0.0% 127 3.2 7.2 1.0 29.0 7.0
4. AS2914 ae-17.r32.tokyjp05.jp.bb.gin.ntt.net 73.8% 127 1.7 6.2 1.1 46.0 8.6
5. AS2914 ae-4.r27.snjsca04.us.bb.gin.ntt.net 0.0% 126 103.8 103.8 103.7 104.4 0.0
6. AS2914 ae-20.a03.snjsca04.us.bb.gin.ntt.net 0.0% 126 104.1 105.7 104.0 299.3 17.4
7. AS4134 218.30.53.50 0.0% 126 109.3 108.5 104.6 117.1 2.3
8. AS4134 202.97.63.29 68.0% 126 167.2 167.4 167.1 169.9 0.4
9. AS4134 202.97.94.89 0.0% 126 167.4 169.9 167.2 385.8 19.5
10. AS4134 202.97.82.57 84.0% 126 168.0 179.3 167.9 363.0 43.5
11. AS4134 14.147.8.26 84.1% 126 167.4 169.0 167.2 178.2 3.1
12. ???
13. AS4134 183.6.107.1 0.0% 126 167.1 168.2 167.0 309.2 12.6

广州电信普宽

  • 去程 AS4134-AS2914 广州-日本 直连 丢包30% 延迟120ms左右 日本NTT线路
  • 回程 AS2914-AS4134 日本-广州 直连 丢包30% 延迟120ms左右 日本NTT线路
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
My traceroute  [v0.85]
instance-20220225-1301 (0.0.0.0) Tue Jan 21 06:00:38 2025
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS31898 140.91.206.172 0.0% 522 0.3 0.3 0.2 3.9 0.2
2. AS2914 ae-0.oracle-oci.tokyjp10.jp.bb.gin.ntt.net 0.0% 522 1.3 2.4 1.0 41.2 4.7
3. AS2914 ae-33.a01.tokyjp10.jp.bb.gin.ntt.net 0.0% 522 1.3 2.5 1.1 34.7 4.0
4. AS2914 ae-17.r32.tokyjp05.jp.bb.gin.ntt.net 79.2% 521 6.9 3.2 1.4 14.5 2.4
5. AS2914 ae-0.a03.tokyjp05.jp.bb.gin.ntt.net 0.0% 521 4.8 2.4 1.1 31.6 3.7
6. AS??? 203.86.97.9 29.6% 521 87.8 89.0 86.8 112.6 4.2
7. AS4134 202.97.12.189 26.9% 521 80.2 82.9 79.9 312.1 12.2
8. AS4134 202.97.57.26 96.0% 521 100.3 91.4 84.0 100.3 5.4
9. AS4134 202.97.29.134 97.1% 521 121.1 115.7 107.8 121.1 5.5
10. AS4134 121.8.134.110 26.9% 521 128.4 120.6 108.1 236.4 12.4
11. AS4134 113.98.87.202 29.4% 521 122.1 118.3 109.4 340.5 12.8

总结:中国电信广州163骨干网日本方向,普宽去程回程均直连,延时120ms左右,丢包30%~45%左右;商宽去程直连,回程绕美,延时168ms左右,丢包0%。

广州联通商宽

  • 去程 AS4837-AS6453 TaTa线路 广州-北京-美国-日本 经北京出口联接NTT线路美国到达日本

    OR

  • 去程 AS4837-AS2914 NTT线路 广州-北京-日本 经北京出口联接NTT线路日本到达日本

  • 回程 AS6453-AS4837 TaTa线路 日本-美国洛杉机-北京-广州 绕美回国

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
My traceroute  [v0.85]
instance-20220225-1301 (0.0.0.0) Tue Jan 21 06:42:21 2025
Resolver: Received error response 2. (server failure)er of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS31898 140.91.206.136 0.0% 531 0.3 1.4 0.2 301.5 18.4
2. AS6453 180.87.180.138 0.0% 531 9.6 2.8 1.0 75.2 6.1
3. AS6453 ix-be-35.ecore1.tv2-tokyo.as6453.net 42.2% 531 1.6 1.7 1.4 23.0 1.5
4. AS6453 209.58.55.69 81.7% 531 110.1 110.5 109.8 117.7 0.8
5. AS6453 if-ae-58-2.tcore1.av3-toyohashi.as6453.net 17.1% 531 113.0 113.3 112.7 132.3 1.6
6. AS6453 if-ae-2-2.tcore2.av3-toyohashi.as6453.net 22.8% 531 112.7 113.1 112.4 145.9 2.6
7. AS6453 if-ae-28-2.tcore2.lvw-losangeles.as6453.net 42.8% 531 114.2 114.3 113.8 146.8 2.5
8. AS6453 if-bundle-34-2.qcore2.lvw-losangeles.as6453.net 71.7% 531 114.2 113.9 113.4 116.9 0.2
9. AS6453 if-bundle-2-2.qcore1.lvw-losangeles.as6453.net 62.1% 531 114.5 115.1 114.4 118.7 0.6
10. AS6453 207.45.219.9 0.2% 531 322.1 188.0 156.8 915.3 84.2
11. AS4837 219.158.17.81 0.0% 530 174.6 191.4 166.5 883.9 80.1
12. AS4837 219.158.9.185 75.0% 530 167.2 198.3 167.1 1027. 92.1
13. AS4837 219.158.9.201 60.4% 529 168.5 189.2 167.8 676.7 75.9
14. AS4837 219.158.7.226 93.6% 529 197.9 203.1 197.4 323.5 22.9
15. AS17816 120.80.0.98 92.4% 529 199.3 226.5 199.3 632.1 75.9
16. AS17622 120.80.123.254 0.2% 528 203.1 220.8 199.7 1015. 80.5

广州联通普宽

  • 去程 AS4837-AS2914 NTT线路 广州-北京-日本 经北京出口联接NTT线路到达日本
  • 回程 AS6453-AS4837 TaTa线路 日本-美国洛杉机-北京-广州 绕美回国
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
My traceroute  [v0.85]
instance-20220225-1301 (0.0.0.0) Tue Jan 21 06:20:08 2025
Resolver: Received error response 2. (server failure)er of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS31898 140.91.206.158 0.0% 1003 0.2 0.3 0.2 296.3 9.3
2. AS6453 180.87.180.138 0.0% 1002 1.2 2.1 1.0 42.5 3.9
3. AS6453 ix-be-35.ecore1.tv2-tokyo.as6453.net 0.0% 1002 1.6 1.7 1.4 28.4 1.8
4. AS6453 209.58.55.69 82.2% 1002 110.8 110.3 109.7 113.5 0.4
5. AS6453 if-ae-58-2.tcore1.av3-toyohashi.as6453.net 16.6% 1002 113.4 113.7 112.7 351.4 8.6
6. AS6453 if-ae-2-2.tcore2.av3-toyohashi.as6453.net 37.4% 1002 112.5 112.8 112.2 298.4 7.4
7. AS6453 if-ae-28-2.tcore2.lvw-losangeles.as6453.net 83.9% 1002 114.1 114.6 113.8 131.7 2.8
8. AS6453 if-ae-2-2.tcore1.lvw-losangeles.as6453.net 15.3% 1002 115.1 114.7 114.5 124.0 0.7
9. AS6453 if-bundle-33-2.qcore1.lvw-losangeles.as6453.net 65.0% 1002 111.1 111.5 111.0 117.6 0.4
10. AS6453 207.45.219.9 0.0% 1002 157.8 208.3 156.8 1456. 146.7
11. AS4837 219.158.4.9 0.0% 1002 166.3 212.2 160.4 1410. 144.2
12. AS4837 219.158.16.81 0.0% 1002 165.5 211.8 160.5 1377. 142.2
13. AS4837 219.158.18.69 94.2% 1002 478.8 232.7 161.4 997.0 156.7
14. AS4837 219.158.8.86 79.1% 1002 196.3 245.0 194.0 1072. 131.2
15. AS17816 112.92.0.62 0.0% 1002 195.2 248.4 193.9 1581. 148.1
16. AS17622 120.80.123.242 0.2% 1002 193.4 241.0 193.0 1864. 145.5
17. AS17622 120.80.123.253 0.0% 1001 194.5 240.6 194.4 1874. 144.1

总结:中国联通广州169骨干网日本方向,普宽商宽去程由北京出口直连日本NTT线路或TaTa线路绕美,回程绕美TaTa线路经北京入口回国,延时250ms左右,丢包0%。

广州移动商宽

  • 去程 AS9808-AS58453-AS6453 TaTa线路 出国绕美 广州-美国-日本 延时220ms左右,丢包0%;
  • 回程 AS6453-AS58453-AS9808 TaTa线路 日本-广州 直连回国 延时175ms左右,丢包0%。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 My traceroute  [v0.85]
instance-20220225-1301 (0.0.0.0) Thu Jan 23 09:58:14 2025
Resolver: Received error response 2. (server failure)er of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS31898 140.91.206.98 0.0% 103 0.3 0.3 0.2 0.8 0.0
2. AS6453 180.87.180.138 0.0% 103 1.1 2.1 1.0 24.5 3.0
3. AS6453 ix-be-35.ecore1.tv2-tokyo.as6453.net 34.0% 103 1.6 1.7 1.5 6.2 0.5
4. AS6453 209.58.55.73 72.5% 103 2.4 2.0 1.3 3.5 0.3
5. AS6453 209.58.61.43 0.0% 103 2.0 1.8 1.5 3.2 0.1
6. AS58453 223.120.2.26 0.0% 103 56.4 56.0 55.3 66.3 1.5
7. AS9808 221.183.55.82 0.0% 102 57.2 57.2 57.1 59.2 0.2
8. AS9808 221.183.92.21 0.0% 102 62.1 62.4 62.0 70.6 1.2
9. AS9808 221.183.89.246 46.1% 102 68.2 68.7 68.2 80.3 1.6
10. AS9808 221.183.39.182 58.4% 102 66.0 67.4 65.4 81.5 3.9
11. AS9808 183.233.59.226 6.9% 102 71.3 71.5 71.2 76.4 0.6
12. AS9808 120.196.91.105 0.0% 102 175.7 176.7 173.4 242.1 10.2

广州移动CMCC

  • 去程 AS9808-AS58453-AS6453 CMI-TaTa线路 广州-香港-新加坡-日本 经香港出口绕新加坡联接日本TaTa线路到达日本 延时80ms~200ms左右。
  • 回程 AS6453-AS58453-AS9808 TaTa线路-CMI 日本-广州 直连回国,延时80ms左右,丢包0%。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
My traceroute  [v0.85]
instance-20220225-1301 (0.0.0.0) Fri Jan 24 09:46:46 2025
Resolver: Received error response 2. (server failure)er of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS31898 140.91.206.100 0.0% 938 0.2 0.2 0.2 6.1 0.3
2. AS6453 180.87.180.138 0.0% 938 1.1 2.8 1.0 51.1 5.3
3. AS6453 ix-be-35.ecore1.tv2-tokyo.as6453.net 0.0% 938 1.9 1.6 1.4 30.7 1.9
4. AS6453 209.58.55.73 64.9% 938 2.1 1.8 1.3 6.5 0.4
5. AS6453 209.58.61.43 0.0% 938 1.6 5.6 1.4 552.3 25.7
6. AS58453 223.120.2.26 1.7% 938 55.5 59.3 55.3 564.8 22.8
7. AS9808 221.183.55.82 5.1% 938 58.1 60.4 57.0 517.2 19.7
8. AS9808 221.183.92.17 5.0% 938 63.0 66.7 62.9 679.9 29.3
9. AS9808 221.183.89.242 99.4% 938 175.3 175.3 174.2 177.8 1.1
10. AS9808 221.183.39.170 93.1% 938 174.0 179.8 173.9 250.7 14.5
11. AS9808 183.235.226.125 9.2% 938 71.8 77.6 71.3 701.8 33.3
12. AS9808 183.235.226.9 33.6% 938 207.8 181.2 175.5 461.2 17.1
13. AS56040 221.179.3.240 0.0% 937 71.1 75.4 71.0 585.8 27.5

广州移动4G

  • 去程 AS9808-AS58453-AS6453 CMI-TaTa线路 广州-香港-新加坡-日本 经香港出口绕新加坡联接日本TaTa线路到达日本 延时150ms左右。
  • 回程 AS6453-AS58453-AS9808 TaTa线路-CMI 日本-广州 直连回国,延时75ms左右,丢包0%。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
My traceroute  [v0.85]
instance-20220225-1301 (0.0.0.0) Fri Jan 24 09:55:37 2025
Resolver: Received error response 2. (server failure)er of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. AS31898 140.91.206.138 0.0% 224 0.3 0.2 0.2 3.1 0.2
2. AS6453 180.87.180.138 0.0% 224 1.1 1.9 1.0 43.3 3.8
3. AS6453 ix-be-35.ecore1.tv2-tokyo.as6453.net 36.2% 224 1.5 1.9 1.4 18.4 1.8
4. AS6453 209.58.55.73 69.5% 224 1.3 1.7 1.2 2.5 0.0
5. AS6453 209.58.61.43 0.0% 224 1.8 2.6 1.5 73.1 5.3
6. AS58453 223.120.2.26 0.0% 224 55.6 56.9 55.3 134.0 6.8
7. AS9808 221.183.55.82 0.0% 224 57.2 59.4 57.1 250.1 13.6
8. AS9808 221.183.92.21 0.0% 224 62.3 64.3 62.1 224.7 11.5
9. AS9808 221.183.89.246 98.2% 224 68.3 68.5 68.3 69.0 0.0
10. AS9808 221.183.142.82 96.0% 224 230.9 181.4 173.4 230.9 19.0
11. AS56040 211.136.208.93 97.3% 224 71.3 72.4 68.4 85.6 6.5
12. AS56040 211.136.208.62 32.1% 224 66.1 73.4 65.7 620.3 45.4
13. AS9808 183.235.230.125 0.0% 223 67.8 68.7 67.2 99.5 3.8
14. AS56040 221.179.54.45 0.0% 223 69.2 70.4 69.0 136.6 5.3

总结:中国移动CMI骨干网日本方向,出国到处绕,回国有直连。

《名侦探柯南》是一部长期连载的日本推理动画和漫画,围绕高中生侦探工藤新一化身为少年江户川柯南后,解决各种案件的故事。以下是《名侦探柯南》的主要版本分类:


1. TV版(动画剧集)

  • 首播:1996年1月8日,至今仍在连载。
  • 内容:以周播形式放送,根据漫画原作改编,并加入原创剧情(俗称“动画原创”)。
  • 集数:截至2025年1月,已超过1100集。
  • 特点:主要面向电视观众,剧情以单集案件和多集连续案件为主。

2. 剧场版(电影版)

  • 首映:1997年至今,每年一部剧场版。
  • 特点:以高质量的制作和独立的剧情为主,通常包含更多动作戏、悬疑和戏剧性,面向更广泛的观众群体。
  • 数量:截至2024年,已有27部剧场版。
  • 列表:1997-2024
    1. 1997年:《名侦探柯南:计时引爆摩天楼》(名探偵コナン 時計じかけの摩天楼)
    2. 1998年:《名侦探柯南:第十四个目标》(名探偵コナン 第14番目の標的)
    3. 1999年:《名侦探柯南:世纪末的魔术师》(名探偵コナン 世紀末の魔術師)
    4. 2000年:《名侦探柯南:瞳孔中的暗杀者》(名探偵コナン 瞳の中の暗殺者)
    5. 2001年:《名侦探柯南:通向天国的倒计时》(名探偵コナン 天国へのカウントダウン)
    6. 2002年:《名侦探柯南:贝克街的亡灵》(名探偵コナン ベイカー街の亡霊)
    7. 2003年:《名侦探柯南:迷宫的十字路口》(名探偵コナン 迷宮の十字路)
    8. 2004年:《名侦探柯南:银翼的奇术师》(名探偵コナン 銀翼の奇術師)
    9. 2005年:《名侦探柯南:水平线上的阴谋》(名探偵コナン 水平線上の陰謀)
    10. 2006年:《名侦探柯南:侦探们的镇魂歌》(名探偵コナン 探偵たちの鎮魂歌)
    11. 2007年:《名侦探柯南:绀碧之棺》(名探偵コナン 紺碧の棺)
    12. 2008年:《名侦探柯南:战栗的乐谱》(名探偵コナン 戦慄の楽譜)
    13. 2009年:《名侦探柯南:漆黑的追踪者》(名探偵コナン 漆黒の追跡者)
    14. 2010年:《名侦探柯南:天空的遇难船》(名探偵コナン 天空の難破船)
    15. 2011年:《名侦探柯南:沉默的15分钟》(名探偵コナン 沈黙の15分)
    16. 2012年:《名侦探柯南:第十一个前锋》(名探偵コナン 11人目のストライカー)
    17. 2013年:《名侦探柯南:绝海的侦探》(名探偵コナン 絶海の探偵)
    18. 2014年:《名侦探柯南:异次元的狙击手》(名探偵コナン 異次元の狙撃手)
    19. 2015年:《名侦探柯南:业火的向日葵》(名探偵コナン 業火の向日葵)
    20. 2016年:《名侦探柯南:纯黑的恶梦》(名探偵コナン 純黒の悪夢)
    21. 2017年:《名侦探柯南:唐红的恋歌》(名探偵コナン から紅の恋歌)
    22. 2018年:《名侦探柯南:零的执行人》(名探偵コナン ゼロの執行人)
    23. 2019年:《名侦探柯南:绀青之拳》(名探偵コナン 紺青の拳)4月
    24. 2019年:《名侦探柯南:绀青之拳(重映版)》(名探偵コナン 紺青の拳 再映)8月
    25. 2021年:《名侦探柯南:绯色的子弹》(名探偵コナン 緋色の弾丸)
    26. 2022年:《名侦探柯南:万圣节的新娘》(名探偵コナン ハロウィンの花嫁)
    27. 2023年: 《名侦探柯南:黑铁的鱼影》(名探偵コナン 黒鉄の魚影)
    28. 2024年:《名侦探柯南:百万美元的五稜星》(名探偵コナン 100万ドルの五稜星)

3. OVA版(Original Video Animation)

  • 数量:共12部,1999年至2012年发行。
  • 特点:通常为原创剧情,以附赠形式发布,例如随漫画特典或DVD发行。
  • 例子:
    • OVA1:《柯南 vs 基德 vs 阿剑 宝刀争夺大作战》
    • OVA10:《怪盗基德的惊异空中步行》

4. 特别篇

  • 类型:特殊长度的TV版(通常为1小时或以上),或在特殊节假日播出的特别内容。
  • 例子:
    • 《世纪末的福尔摩斯》
    • 《大阪双重迷案》

5. SP真人版(真人电视电影)

  • 数量:5部(2006-2011年)。
  • 特点:由真人演员出演,主要以工藤新一未变小前的故事为主。
  • 例子:
    • 《名侦探柯南:工藤新一的复活!与黑暗组织的对决》

6. 其他版本

  • 短片:如《迷你版柯南》,风格幽默轻松。
  • 衍生漫画和外传动画:
    • 《名侦探柯南:零的日常》(以安室透为主角的日常故事)
    • 《犯人犯泽先生》(搞笑风格,以黑影犯人为主角)

版本总结

  • TV版是主要剧情连载形式;
  • 剧场版每年一部,规模宏大;
  • OVA和特别篇多为补充故事;
  • 真人版和外传则是扩展内容。

文件信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
D:\software\mkvtoolnix>mkvinfo 难兄难弟-01.mkv
+ EBML 头
|+ EBML 版本: 1
|+ EBML 读取版本: 1
|+ EBML ID 最大长度: 4
|+ EBML 大小最大长度: 8
|+ 文档类型: matroska
|+ 文档类型版本: 4
|+ 文档类型读取版本: 2
+ 剪辑: 大小 880540184
|+ 定位头 (子条目将被跳过)
|+ EBML void: 大小 4027
|+ 剪辑信息
| + 时间戳缩放: 1000000
| + 混流应用程序: libebml v1.3.5 + libmatroska v1.4.8
| + 写入应用程序: mkvmerge v17.0.0 ('Be Ur Friend') 64-bit
| + 时长: 00:45:17.199000000
| + 日期: 2018-10-02 13:32:30 UTC
| + 剪辑 UID: 0xb1 0x6b 0xa9 0xaf 0x75 0x12 0xf5 0xa7 0xad 0xab 0xd6 0xaa 0x19 0xf5 0x91 0xbd
|+ 轨道
| + 轨道
| + 轨道编号: 1 (mkvmerge & mkvextract 的轨道 ID: 0)
| + 轨道 UID: 12099609334088513866
| + 轨道类型: 视频
| + 「紧缩」 标记: 0
| + 编码格式 ID: V_MPEG4/ISO/AVC
| + 编解码器私有数据: 大小 47 (H.264 档次: High @L4.1)
| + 默认帧时长: 00:00:00.040000000 (对应视频轨的 25.000 帧/场每秒)
| + 语言: chi
| + 视频轨道
| + 像素宽度: 1280
| + 像素高度: 720
| + 显示宽度: 1280
| + 显示高度: 720
| + 轨道
| + 轨道编号: 2 (mkvmerge & mkvextract 的轨道 ID: 1)
| + 轨道 UID: 11992976042516049637
| + 轨道类型: 音频
| + 编码格式 ID: A_AAC
| + 编解码器私有数据: 大小 2
| + 默认帧时长: 00:00:00.023219954 (对应视频轨的 43.066 帧/场每秒)
| + 语言: chi
| + 名称: 国语
| + 音频轨
| + 采样率: 44100
| + 声道数: 2
| + 轨道
| + 轨道编号: 3 (mkvmerge & mkvextract 的轨道 ID: 2)
| + 轨道 UID: 9059807628854784062
| + 轨道类型: 音频
| + 「默认轨」 标记: 0
| + 编码格式 ID: A_AAC
| + 编解码器私有数据: 大小 2
| + 默认帧时长: 00:00:00.023219954 (对应视频轨的 43.066 帧/场每秒)
| + 语言: chi
| + 名称: 粤语
| + 音频轨
| + 采样率: 44100
| + 声道数: 2
| + 轨道
| + 轨道编号: 4 (mkvmerge & mkvextract 的轨道 ID: 3)
| + 轨道 UID: 6875262301070943117
| + 轨道类型: 字幕
| + 「紧缩」 标记: 0
| + 编码格式 ID: S_TEXT/UTF8
| + 语言: chi
| + 名称: 简体中文
| + 轨道
| + 轨道编号: 5 (mkvmerge & mkvextract 的轨道 ID: 4)
| + 轨道 UID: 5198950236804616601
| + 轨道类型: 字幕
| + 「默认轨」 标记: 0
| + 「紧缩」 标记: 0
| + 编码格式 ID: S_TEXT/UTF8
| + 语言: chi
| + 名称: 繁体中文
|+ EBML void: 大小 1196
|+ 簇

单件处理

1
2
3
cd D:\software\mkvtoolnix

mkvmerge -o 难兄难弟-01-粤语.mkv --audio-tracks 2 --subtitle-tracks 3,4 难兄难弟-01.mkv

批量处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

REM 定义 mkvmerge 可执行文件路径
set "exe=D:\software\mkvtoolnix\mkvmerge.exe"

REM 输入文件夹路径
set "input=G:\video"

REM 输出文件夹路径
set "output=G:\video\done"

REM 检查 mkvmerge 是否存在
if not exist "%exe%" (
echo "%exe%" not found
goto end
)

REM 检查输入文件夹是否存在
if not exist "%input%" (
echo "%input%" not found
goto end
)

REM 创建输出文件夹(如果不存在)
md "%output%" 2>nul

REM 遍历 G:\video 下的一层子目录
for /d %%a in ("%input%\*") do (
if /i not "%%~nxa"=="done" (
call :process_directory "%%~fa"
)
)

:end
echo All directories processed.
pause
exit /b

:process_directory
REM 获取当前子目录路径
set "subdir=%~1"

REM 定义输出子目录路径
set "output_subdir=%output%\!subdir:%input%\=!"

REM 创建输出子目录(如果不存在)
md "!output_subdir!" 2>nul

REM 遍历当前子目录中的所有 .mkv 文件
for %%b in ("%subdir%\*.mkv") do (
call :process_file "%%b" "!output_subdir!"
)

exit /b

:process_file
REM 获取当前文件路径和输出目录
set "input_file=%~1"
set "output_dir=%~2"

REM 修改输出文件名,在原文件名后添加“粤语”
for %%c in ("%input_file%") do (
set "output_file=%output_dir%\%%~nc-粤语%%~xc"
)

REM 使用 mkvmerge 保留粤语声轨(音频轨 2)
echo Processing "!input_file!"
echo Output will be saved to "!output_file!"
"%exe%" -o "!output_file!" --audio-tracks 2 --default-track-flag 2:yes "!input_file!"

REM 处理完成提示
if !errorlevel! equ 0 (
echo Successfully processed: "!input_file!"
) else (
echo Failed to process: "!input_file!"
)

exit /b

输出效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
G:\video>tree /F
卷 新加卷 的文件夹 PATH 列表
卷序列号为 D423-6A93
G:.
├─1
│ 难兄难弟-01.mkv
│ 难兄难弟-02.mkv

├─2
│ 难兄难弟-06.mkv
│ 难兄难弟-07.mkv

└─done
├─1
│ 难兄难弟-01-粤语.mkv
│ 难兄难弟-02-粤语.mkv

└─2
难兄难弟-06-粤语.mkv
难兄难弟-07-粤语.mkv

hexo版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[root@localhost hexo]# pwd
/root/hexo

[root@localhost hexo]# hexo version
INFO Validating config
hexo: 7.3.0
hexo-cli: 4.3.2
os: linux 5.14.0-427.42.1.el9_4.x86_64 Rocky Linux 9.4 (Blue Onyx)
node: 18.20.4
acorn: 8.11.3
ada: 2.7.8
ares: 1.28.1
base64: 0.5.2
brotli: 1.0.9
cjs_module_lexer: 1.2.2
cldr: 44.1
icu: 74.2
llhttp: 6.1.1
modules: 108
napi: 9
nghttp2: 1.61.0
nghttp3: 0.7.0
ngtcp2: 1.3.0
openssl: 3.0.13+quic
simdutf: 5.2.4
tz: 2024a
undici: 5.28.4
unicode: 15.1
uv: 1.44.2
uvwasi: 0.0.19
v8: 10.2.154.26-node.37
zlib: 1.3.0.1-motley
[root@localhost hexo]#

next版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[root@localhost next]# pwd
/root/hexo/themes/next

[root@localhost next]# cat package.json
{
"name": "hexo-theme-next",
"version": "7.8.0",
"description": "Elegant and powerful theme for Hexo.",
"main": "gulpfile.js",
"scripts": {
"test": "gulp"
},
"repository": {
"type": "git",
"url": "git+https://github.com/theme-next/hexo-theme-next.git"
},
"keywords": [
"hexo",
"theme",
"next"
],
"author": "NexT <support@theme-next.org> (https://theme-next.org)",
"license": "AGPL-3.0-or-later",
"bugs": {
"url": "https://github.com/theme-next/hexo-theme-next/issues"
},
"homepage": "https://theme-next.org",
"devDependencies": {
"eslint": "^6.8.0",
"eslint-config-theme-next": "^1.1.4",
"gulp": "^4.0.2",
"gulp-eslint": "^6.0.0",
"gulp-shell": "^0.8.0",
"js-yaml": "^3.13.1",
"stylint": "^2.0.0"
},
"engines": {
"node": ">=10.9.0"
}
}
[root@localhost next]#

主题更新

旧版更名

1
2
3
4
[root@localhost hexo]# pwd
/root/hexo

[root@localhost hexo]# mv themes/next themes/next-v7

更新新版

1
git clone https://github.com/next-theme/hexo-theme-next themes/next
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
[root@localhost next]# pwd
/root/hexo/themes/next

[root@localhost next]# ll
total 80
-rw-r--r--. 1 root root 29634 Jan 15 15:48 _config.yml
-rw-r--r--. 1 root root 232 Jan 15 15:27 crowdin.yml
drwxr-xr-x. 4 root root 82 Jan 15 15:27 docs
-rw-r--r--. 1 root root 79 Jan 15 15:27 eslint.config.js
drwxr-xr-x. 2 root root 4096 Jan 15 15:27 languages
drwxr-xr-x. 6 root root 4096 Jan 15 15:27 layout
-rw-r--r--. 1 root root 2955 Jan 15 15:27 LICENSE.md
-rw-r--r--. 1 root root 1148 Jan 15 15:27 package.json
-rw-r--r--. 1 root root 9484 Jan 15 15:27 README.md
-rw-r--r--. 1 root root 41 Jan 15 15:27 renovate.json
drwxr-xr-x. 6 root root 62 Jan 15 15:27 scripts
drwxr-xr-x. 5 root root 41 Jan 15 15:27 source
drwxr-xr-x. 5 root root 65 Jan 15 15:27 test
-rw-r--r--. 1 root root 4836 Jan 15 15:27 _vendors.yml
[root@localhost next]# cat package.json
{
"name": "hexo-theme-next",
"version": "8.22.0",
"description": "Elegant and powerful theme for Hexo.",
"main": "package.json",
"files": [
"docs",
"languages",
"layout",
"scripts",
"source",
"_config.yml",
"_vendors.yml"
],
"scripts": {
"eslint": "eslint scripts/ source/js test/",
"prepare": "node .githooks/install.js",
"stylint": "stylelint source/css/ --ip source/css/_common/scaffolding/highlight/index.styl",
"test": "mocha test/index.js",
"test-cov": "c8 npm test"
},
"repository": "next-theme/hexo-theme-next",
"keywords": [
"hexo",
"theme",
"next"
],
"author": "NexT (https://theme-next.js.org)",
"license": "AGPL-3.0-only",
"bugs": {
"url": "https://github.com/next-theme/hexo-theme-next/issues"
},
"homepage": "https://theme-next.js.org",
"devDependencies": {
"@next-theme/eslint-config": "0.0.4",
"c8": "10.1.3",
"chai": "4.5.0",
"eslint": "9.17.0",
"hexo": "7.3.0",
"hexo-renderer-marked": "6.3.0",
"js-yaml": "4.1.0",
"mocha": "11.0.1",
"stylelint": "16.12.0",
"stylelint-stylus": "1.0.0"
}
}
[root@localhost next]#

配置修改

主题配置修改

1
vi themes/next-v7/_config.yml (vi多视窗对照编辑  :sp themes/next/_config.yml)

开启mermaid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
(站点配置文件_config.yml添加 - mermaid)

[root@localhost hexo]# pwd
/root/hexo

[root@localhost hexo]# vi _config.yml
highlight:
line_number: true
auto_detect: false
tab_replace: ''
wrap: true
hljs: false
exclude_languages:
- mermaid

(主题配置文件_config.yml开启mermaid)

[root@localhost next]# pwd
/root/hexo/themes/next

[root@localhost next]# vi _config.yml

mermaid:
enable: true

最后测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@localhost hexo]# hexo clean
INFO Validating config
INFO Deleted database.
[root@localhost hexo]# hexo s
INFO Validating config
INFO ==================================
███╗ ██╗███████╗██╗ ██╗████████╗
████╗ ██║██╔════╝╚██╗██╔╝╚══██╔══╝
██╔██╗ ██║█████╗ ╚███╔╝ ██║
██║╚██╗██║██╔══╝ ██╔██╗ ██║
██║ ╚████║███████╗██╔╝ ██╗ ██║

╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═╝
========================================

NexT version 8.22.0

Documentation: https://theme-next.js.org
========================================

INFO Start processing
INFO Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.

点击查看Mermaid效果

hexo: 7.3.0

hexo-theme-next 8.22.0

流程图

1
2
3
4
5
6
7
8
9
graph TD;

A-->B;

A-->C;

B-->D;

C-->D;
graph TD;

    A-->B;

    A-->C;

    B-->D;

    C-->D;
1
2
3
4
5
6
graph TD 
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
graph TD 
	A[Christmas] -->|Get money| B(Go shopping) 
	B --> C{Let me think} 
	C -->|One| D[Laptop] 
	C -->|Two| E[iPhone] 
	C -->|Three| F[fa:fa-car Car]

时序图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sequenceDiagram

participant Alice

participant Bob

Alice->>John: Hello John, how are you?

loop Healthcheck

John->>John: Fight against hypochondria

end

Note right of John: Rational thoughts <br/>prevail!

John-->>Alice: Great!

John->>Bob: How about you?

Bob-->>John: Jolly good!
sequenceDiagram

	participant Alice

	participant Bob

	Alice->>John: Hello John, how are you?

	loop Healthcheck

    	John->>John: Fight against hypochondria

	end

	Note right of John: Rational thoughts <br/>prevail!

	John-->>Alice: Great!

	John->>Bob: How about you?

	Bob-->>John: Jolly good!

甘特图

1
2
3
4
5
6
7
8
9
10
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram to mermaid
excludes weekdays 2025-01-10

section A section
Completed task :done, des1, 2025-01-06,2025-01-08
Active task :active, des2, 2025-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
gantt
dateFormat  YYYY-MM-DD
title Adding GANTT diagram to mermaid
excludes weekdays 2025-01-10

section A section
Completed task            :done,    des1, 2025-01-06,2025-01-08
Active task               :active,  des2, 2025-01-09, 3d
Future task               :         des3, after des2, 5d
Future task2               :         des4, after des3, 5d

文件说明

  • gdtv_to_epg.log 日志文件
  • epg.xml XMLTV格式文件
  • gdtv_to_epg.py 电子节目表抓取
  • git_commit.sh 日志提交脚本文件
  • /etc/init.d/gdtv_to_epg 开机执行脚本
  • /etc/rc.local 开机执行脚本

改清华源

vi /etc/opkg/distfeeds.conf

1
2
3
4
5
6
src/gz openwrt_core http://mirrors.tuna.tsinghua.edu.cn/lede/releases/23.05.4/targets/ramips/mt7620/packages
src/gz openwrt_base http://mirrors.tuna.tsinghua.edu.cn/lede/releases/23.05.4/packages/mipsel_24kc/base
src/gz openwrt_luci http://mirrors.tuna.tsinghua.edu.cn/lede/releases/23.05.4/packages/mipsel_24kc/luci
src/gz openwrt_packages http://mirrors.tuna.tsinghua.edu.cn/lede/releases/23.05.4/packages/mipsel_24kc/packages
src/gz openwrt_routing http://mirrors.tuna.tsinghua.edu.cn/lede/releases/23.05.4/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://mirrors.tuna.tsinghua.edu.cn/lede/releases/23.05.4/packages/mipsel_24kc/telephony

安装配置git

1
2
3
4
5
6
7
8
opkg update
opkg install git
opkg install openssh-keygen
opkg install openssh-client
cd /www
git init
ssh-keygen
ssh -T git@gitee.com

抓取源码

/www/gdtv_to_epg.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import datetime
import requests
import warnings
import logging
from bs4 import BeautifulSoup as bs
from xml.etree.ElementTree import Element, SubElement, ElementTree

# 日志配置
logging.basicConfig(
filename="/www/gdtv_to_epg.log", # 日志文件路径
level=logging.INFO, # 日志级别
format="%(asctime)s - %(levelname)s - %(message)s",
filemode="w" # 每次运行脚本时覆盖日志
)

# 定义请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# 忽略 XMLParsedAsHTMLWarning
warnings.filterwarnings('ignore')

# 获取广东电视台频道列表
def get_channels_gdtv():
logging.info("开始获取频道列表...")
url = 'http://epg.gdtv.cn/f/1.xml'
try:
res = requests.get(url, headers=headers, timeout=8)
res.encoding = 'utf-8'
soup = bs(res.text, 'html.parser')
contents = soup.select('channel')
channels = []
for content in contents:
channel_id = content.attrs['id']
name = content.ctitle.text.strip()
channels.append({'id': channel_id, 'name': name})
logging.info(f"获取到 {len(channels)} 个频道")
return channels
except requests.exceptions.RequestException as e:
logging.error(f"获取频道列表失败: {e}")
return []

# 处理节目标题中的 HTML 实体和标签
def clean_html(text):
text = bs(text, "html.parser").get_text()
return text.replace('<br />', '\n').replace('<br>', '\n').strip()

# 获取指定日期范围内的节目表
def get_epgs_gdtv(channel_id, start_date, end_date):
logging.info(f"开始抓取频道 {channel_id} 的节目表...")
epgs = []
current_date = start_date
while current_date <= end_date:
url = f'http://epg.gdtv.cn/f/{channel_id}/{current_date.strftime("%Y-%m-%d")}.xml'
try:
res = requests.get(url, headers=headers, timeout=8)
res.encoding = 'utf-8'
soup = bs(res.text, 'html.parser')
epgs_contents = soup.select('content')

for epga in epgs_contents:
starttime = datetime.datetime.fromtimestamp(int(epga.attrs['time1']))
endtime = datetime.datetime.fromtimestamp(int(epga.attrs['time2']))
title = clean_html(epga.get_text())
epgs.append({
'title': title,
'start': starttime,
'end': endtime
})
logging.info(f"完成抓取频道 {channel_id} {current_date} 的节目表,共 {len(epgs)} 条节目")
except requests.exceptions.RequestException as e:
logging.error(f"抓取频道 {channel_id} {current_date} 的节目表失败: {e}")
current_date += datetime.timedelta(days=1)
return epgs

# 创建 XMLTV 文件
def create_epg_xml(channels, epg_data, output_file):
logging.info("开始生成 XMLTV 文件...")
tv = Element('tv')

for channel in channels:
channel_element = SubElement(tv, 'channel', id=channel['id'])
display_name = SubElement(channel_element, 'display-name')
display_name.text = channel['name']

for channel_id, programs in epg_data.items():
for program in programs:
programme = SubElement(tv, 'programme', start=program['start'].strftime('%Y%m%d%H%M%S +0800'),
stop=program['end'].strftime('%Y%m%d%H%M%S +0800'),
channel=channel_id)
title = SubElement(programme, 'title')
title.text = program['title']

tree = ElementTree(tv)
tree.write(output_file, encoding='utf-8', xml_declaration=True)
logging.info(f"XMLTV 文件生成完成: {output_file}")

# 主函数
if __name__ == "__main__":
today = datetime.datetime.now().date()
start_date = today - datetime.timedelta(days=6)
end_date = today + datetime.timedelta(days=2)

try:
logging.info("脚本开始执行")

channels = get_channels_gdtv()
if not channels:
logging.error("没有获取到频道列表,脚本将结束执行。")
exit(1) # 如果未获取到频道列表,则退出

epg_data = {}
for channel in channels:
channel_id = channel['id']
epg_data[channel_id] = get_epgs_gdtv(channel_id, start_date, end_date)

output_file = "/www/epg.xml"
create_epg_xml(channels, epg_data, output_file)

logging.info(f"完成!EPG 文件已保存为 {output_file}")
except Exception as e:
logging.error(f"脚本执行过程中发生错误: {e}")


开机脚本

/etc/rc.local

1
2
3
4
5
6
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

ntpd -q -p pool.ntp.org

exit 0

/etc/init.d/gdtv_to_epg

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/sh /etc/rc.common
# OpenWrt init script for gdtv_to_epg

START=99
USE_PROCD=1

start_service() {
# 第一个任务,延迟 180 秒执行
procd_open_instance
procd_set_param command /bin/sh -c "sleep 180 && /usr/bin/python /www/gdtv_to_epg.py"
procd_set_param network 1
procd_close_instance

# 第二个任务,延迟 480 秒执行
procd_open_instance
procd_set_param command /bin/sh -c "sleep 480 && /bin/sh /www/git_commit.sh"
procd_set_param network 1
procd_close_instance
}

提交脚本

/www/git_commit.sh

1
2
3
4
5
6
#!/bin/sh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
cd /www || exit 1 # 进入 Git 仓库的工作目录
git add . # 添加所有修改
git commit -m "更新日志" # 提交修改
git push origin master # 推送到远程仓库

日志文件

/www/gdtv_to_epg.log

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
2025-01-02 18:02:36,843 - INFO - 脚本开始执行
2025-01-02 18:02:36,846 - INFO - 开始获取频道列表...
2025-01-02 18:02:37,149 - INFO - 获取到 15 个频道
2025-01-02 18:02:37,154 - INFO - 开始抓取频道 1 的节目表...
2025-01-02 18:02:37,423 - INFO - 完成抓取频道 1 2024-12-27 的节目表,共 28 条节目
2025-01-02 18:02:37,686 - INFO - 完成抓取频道 1 2024-12-28 的节目表,共 58 条节目
2025-01-02 18:02:37,948 - INFO - 完成抓取频道 1 2024-12-29 的节目表,共 88 条节目
2025-01-02 18:02:38,193 - INFO - 完成抓取频道 1 2024-12-30 的节目表,共 117 条节目
2025-01-02 18:02:38,451 - INFO - 完成抓取频道 1 2024-12-31 的节目表,共 146 条节目
2025-01-02 18:02:38,688 - INFO - 完成抓取频道 1 2025-01-01 的节目表,共 173 条节目
2025-01-02 18:02:38,909 - INFO - 完成抓取频道 1 2025-01-02 的节目表,共 202 条节目
2025-01-02 18:02:39,124 - INFO - 完成抓取频道 1 2025-01-03 的节目表,共 230 条节目
2025-01-02 18:02:39,383 - INFO - 完成抓取频道 1 2025-01-04 的节目表,共 261 条节目
2025-01-02 18:02:39,387 - INFO - 开始抓取频道 2 的节目表...
2025-01-02 18:02:39,559 - INFO - 完成抓取频道 2 2024-12-27 的节目表,共 14 条节目
2025-01-02 18:02:39,701 - INFO - 完成抓取频道 2 2024-12-28 的节目表,共 24 条节目
2025-01-02 18:02:39,856 - INFO - 完成抓取频道 2 2024-12-29 的节目表,共 35 条节目
2025-01-02 18:02:40,033 - INFO - 完成抓取频道 2 2024-12-30 的节目表,共 50 条节目
2025-01-02 18:02:40,201 - INFO - 完成抓取频道 2 2024-12-31 的节目表,共 63 条节目
2025-01-02 18:02:40,358 - INFO - 完成抓取频道 2 2025-01-01 的节目表,共 74 条节目
2025-01-02 18:02:40,538 - INFO - 完成抓取频道 2 2025-01-02 的节目表,共 88 条节目
2025-01-02 18:02:40,716 - INFO - 完成抓取频道 2 2025-01-03 的节目表,共 102 条节目
2025-01-02 18:02:40,902 - INFO - 完成抓取频道 2 2025-01-04 的节目表,共 113 条节目
2025-01-02 18:02:40,905 - INFO - 开始抓取频道 6 的节目表...
2025-01-02 18:02:41,234 - INFO - 完成抓取频道 6 2024-12-27 的节目表,共 44 条节目
2025-01-02 18:02:41,558 - INFO - 完成抓取频道 6 2024-12-28 的节目表,共 88 条节目
2025-01-02 18:02:41,888 - INFO - 完成抓取频道 6 2024-12-29 的节目表,共 133 条节目
2025-01-02 18:02:42,221 - INFO - 完成抓取频道 6 2024-12-30 的节目表,共 177 条节目
2025-01-02 18:02:42,532 - INFO - 完成抓取频道 6 2024-12-31 的节目表,共 221 条节目
2025-01-02 18:02:42,873 - INFO - 完成抓取频道 6 2025-01-01 的节目表,共 266 条节目
2025-01-02 18:02:43,201 - INFO - 完成抓取频道 6 2025-01-02 的节目表,共 310 条节目
2025-01-02 18:02:43,537 - INFO - 完成抓取频道 6 2025-01-03 的节目表,共 355 条节目
2025-01-02 18:02:44,060 - INFO - 完成抓取频道 6 2025-01-04 的节目表,共 399 条节目
2025-01-02 18:02:44,064 - INFO - 开始抓取频道 4 的节目表...
2025-01-02 18:02:44,279 - INFO - 完成抓取频道 4 2024-12-27 的节目表,共 20 条节目
2025-01-02 18:02:44,487 - INFO - 完成抓取频道 4 2024-12-28 的节目表,共 40 条节目
2025-01-02 18:02:44,694 - INFO - 完成抓取频道 4 2024-12-29 的节目表,共 62 条节目
2025-01-02 18:02:44,915 - INFO - 完成抓取频道 4 2024-12-30 的节目表,共 84 条节目
2025-01-02 18:02:45,122 - INFO - 完成抓取频道 4 2024-12-31 的节目表,共 104 条节目
2025-01-02 18:02:45,580 - INFO - 完成抓取频道 4 2025-01-01 的节目表,共 122 条节目
2025-01-02 18:02:45,796 - INFO - 完成抓取频道 4 2025-01-02 的节目表,共 137 条节目
2025-01-02 18:02:45,983 - INFO - 完成抓取频道 4 2025-01-03 的节目表,共 151 条节目
2025-01-02 18:02:46,180 - INFO - 完成抓取频道 4 2025-01-04 的节目表,共 166 条节目
2025-01-02 18:02:46,183 - INFO - 开始抓取频道 3 的节目表...
2025-01-02 18:02:46,442 - INFO - 完成抓取频道 3 2024-12-27 的节目表,共 24 条节目
2025-01-02 18:02:46,742 - INFO - 完成抓取频道 3 2024-12-28 的节目表,共 56 条节目
2025-01-02 18:02:47,028 - INFO - 完成抓取频道 3 2024-12-29 的节目表,共 86 条节目
2025-01-02 18:02:47,346 - INFO - 完成抓取频道 3 2024-12-30 的节目表,共 118 条节目
2025-01-02 18:02:47,665 - INFO - 完成抓取频道 3 2024-12-31 的节目表,共 152 条节目
2025-01-02 18:02:47,990 - INFO - 完成抓取频道 3 2025-01-01 的节目表,共 181 条节目
2025-01-02 18:02:48,302 - INFO - 完成抓取频道 3 2025-01-02 的节目表,共 212 条节目
2025-01-02 18:02:48,540 - INFO - 完成抓取频道 3 2025-01-03 的节目表,共 236 条节目
2025-01-02 18:02:48,781 - INFO - 完成抓取频道 3 2025-01-04 的节目表,共 269 条节目
2025-01-02 18:02:48,785 - INFO - 开始抓取频道 14 的节目表...
2025-01-02 18:02:48,940 - INFO - 完成抓取频道 14 2024-12-27 的节目表,共 18 条节目
2025-01-02 18:02:49,153 - INFO - 完成抓取频道 14 2024-12-28 的节目表,共 41 条节目
2025-01-02 18:02:49,379 - INFO - 完成抓取频道 14 2024-12-29 的节目表,共 66 条节目
2025-01-02 18:02:49,566 - INFO - 完成抓取频道 14 2024-12-30 的节目表,共 84 条节目
2025-01-02 18:02:49,744 - INFO - 完成抓取频道 14 2024-12-31 的节目表,共 101 条节目
2025-01-02 18:02:49,931 - INFO - 完成抓取频道 14 2025-01-01 的节目表,共 119 条节目
2025-01-02 18:02:50,117 - INFO - 完成抓取频道 14 2025-01-02 的节目表,共 136 条节目
2025-01-02 18:02:50,326 - INFO - 完成抓取频道 14 2025-01-03 的节目表,共 154 条节目
2025-01-02 18:02:50,546 - INFO - 完成抓取频道 14 2025-01-04 的节目表,共 177 条节目
2025-01-02 18:02:50,550 - INFO - 开始抓取频道 8 的节目表...
2025-01-02 18:02:50,736 - INFO - 完成抓取频道 8 2024-12-27 的节目表,共 18 条节目
2025-01-02 18:02:50,936 - INFO - 完成抓取频道 8 2024-12-28 的节目表,共 38 条节目
2025-01-02 18:02:51,162 - INFO - 完成抓取频道 8 2024-12-29 的节目表,共 60 条节目
2025-01-02 18:02:51,470 - INFO - 完成抓取频道 8 2024-12-30 的节目表,共 79 条节目
2025-01-02 18:02:51,697 - INFO - 完成抓取频道 8 2024-12-31 的节目表,共 98 条节目
2025-01-02 18:02:51,900 - INFO - 完成抓取频道 8 2025-01-01 的节目表,共 117 条节目
2025-01-02 18:02:52,087 - INFO - 完成抓取频道 8 2025-01-02 的节目表,共 136 条节目
2025-01-02 18:02:52,293 - INFO - 完成抓取频道 8 2025-01-03 的节目表,共 156 条节目
2025-01-02 18:02:52,397 - INFO - 完成抓取频道 8 2025-01-04 的节目表,共 156 条节目
2025-01-02 18:02:52,401 - INFO - 开始抓取频道 13 的节目表...
2025-01-02 18:02:52,679 - INFO - 完成抓取频道 13 2024-12-27 的节目表,共 34 条节目
2025-01-02 18:02:52,966 - INFO - 完成抓取频道 13 2024-12-28 的节目表,共 70 条节目
2025-01-02 18:02:53,260 - INFO - 完成抓取频道 13 2024-12-29 的节目表,共 105 条节目
2025-01-02 18:02:53,368 - INFO - 完成抓取频道 13 2024-12-30 的节目表,共 105 条节目
2025-01-02 18:02:53,482 - INFO - 完成抓取频道 13 2024-12-31 的节目表,共 105 条节目
2025-01-02 18:02:53,592 - INFO - 完成抓取频道 13 2025-01-01 的节目表,共 105 条节目
2025-01-02 18:02:53,707 - INFO - 完成抓取频道 13 2025-01-02 的节目表,共 105 条节目
2025-01-02 18:02:53,821 - INFO - 完成抓取频道 13 2025-01-03 的节目表,共 105 条节目
2025-01-02 18:02:53,923 - INFO - 完成抓取频道 13 2025-01-04 的节目表,共 105 条节目
2025-01-02 18:02:53,927 - INFO - 开始抓取频道 17 的节目表...
2025-01-02 18:02:54,080 - INFO - 完成抓取频道 17 2024-12-27 的节目表,共 10 条节目
2025-01-02 18:02:54,230 - INFO - 完成抓取频道 17 2024-12-28 的节目表,共 19 条节目
2025-01-02 18:02:54,385 - INFO - 完成抓取频道 17 2024-12-29 的节目表,共 28 条节目
2025-01-02 18:02:54,549 - INFO - 完成抓取频道 17 2024-12-30 的节目表,共 39 条节目
2025-01-02 18:02:54,712 - INFO - 完成抓取频道 17 2024-12-31 的节目表,共 50 条节目
2025-01-02 18:02:54,881 - INFO - 完成抓取频道 17 2025-01-01 的节目表,共 61 条节目
2025-01-02 18:02:55,054 - INFO - 完成抓取频道 17 2025-01-02 的节目表,共 72 条节目
2025-01-02 18:02:55,216 - INFO - 完成抓取频道 17 2025-01-03 的节目表,共 82 条节目
2025-01-02 18:02:55,653 - INFO - 完成抓取频道 17 2025-01-04 的节目表,共 90 条节目
2025-01-02 18:02:55,657 - INFO - 开始抓取频道 16 的节目表...
2025-01-02 18:02:55,832 - INFO - 完成抓取频道 16 2024-12-27 的节目表,共 19 条节目
2025-01-02 18:02:56,003 - INFO - 完成抓取频道 16 2024-12-28 的节目表,共 39 条节目
2025-01-02 18:02:56,222 - INFO - 完成抓取频道 16 2024-12-29 的节目表,共 60 条节目
2025-01-02 18:02:56,411 - INFO - 完成抓取频道 16 2024-12-30 的节目表,共 79 条节目
2025-01-02 18:02:56,721 - INFO - 完成抓取频道 16 2024-12-31 的节目表,共 97 条节目
2025-01-02 18:02:56,931 - INFO - 完成抓取频道 16 2025-01-01 的节目表,共 113 条节目
2025-01-02 18:02:57,164 - INFO - 完成抓取频道 16 2025-01-02 的节目表,共 129 条节目
2025-01-02 18:02:57,337 - INFO - 完成抓取频道 16 2025-01-03 的节目表,共 144 条节目
2025-01-02 18:02:57,503 - INFO - 完成抓取频道 16 2025-01-04 的节目表,共 157 条节目
2025-01-02 18:02:57,506 - INFO - 开始抓取频道 18 的节目表...
2025-01-02 18:02:57,657 - INFO - 完成抓取频道 18 2024-12-27 的节目表,共 9 条节目
2025-01-02 18:02:57,809 - INFO - 完成抓取频道 18 2024-12-28 的节目表,共 17 条节目
2025-01-02 18:02:57,944 - INFO - 完成抓取频道 18 2024-12-29 的节目表,共 25 条节目
2025-01-02 18:02:58,106 - INFO - 完成抓取频道 18 2024-12-30 的节目表,共 36 条节目
2025-01-02 18:02:58,258 - INFO - 完成抓取频道 18 2024-12-31 的节目表,共 46 条节目
2025-01-02 18:02:58,409 - INFO - 完成抓取频道 18 2025-01-01 的节目表,共 56 条节目
2025-01-02 18:02:58,559 - INFO - 完成抓取频道 18 2025-01-02 的节目表,共 66 条节目
2025-01-02 18:02:58,709 - INFO - 完成抓取频道 18 2025-01-03 的节目表,共 76 条节目
2025-01-02 18:02:58,858 - INFO - 完成抓取频道 18 2025-01-04 的节目表,共 84 条节目
2025-01-02 18:02:58,861 - INFO - 开始抓取频道 7 的节目表...
2025-01-02 18:02:59,074 - INFO - 完成抓取频道 7 2024-12-27 的节目表,共 21 条节目
2025-01-02 18:02:59,295 - INFO - 完成抓取频道 7 2024-12-28 的节目表,共 42 条节目
2025-01-02 18:02:59,487 - INFO - 完成抓取频道 7 2024-12-29 的节目表,共 60 条节目
2025-01-02 18:02:59,711 - INFO - 完成抓取频道 7 2024-12-30 的节目表,共 82 条节目
2025-01-02 18:02:59,927 - INFO - 完成抓取频道 7 2024-12-31 的节目表,共 105 条节目
2025-01-02 18:03:00,098 - INFO - 完成抓取频道 7 2025-01-01 的节目表,共 125 条节目
2025-01-02 18:03:00,264 - INFO - 完成抓取频道 7 2025-01-02 的节目表,共 143 条节目
2025-01-02 18:03:00,345 - INFO - 完成抓取频道 7 2025-01-03 的节目表,共 143 条节目
2025-01-02 18:03:00,413 - INFO - 完成抓取频道 7 2025-01-04 的节目表,共 143 条节目
2025-01-02 18:03:00,417 - INFO - 开始抓取频道 33 的节目表...
2025-01-02 18:03:00,659 - INFO - 完成抓取频道 33 2024-12-27 的节目表,共 32 条节目
2025-01-02 18:03:00,901 - INFO - 完成抓取频道 33 2024-12-28 的节目表,共 61 条节目
2025-01-02 18:03:01,111 - INFO - 完成抓取频道 33 2024-12-29 的节目表,共 88 条节目
2025-01-02 18:03:01,359 - INFO - 完成抓取频道 33 2024-12-30 的节目表,共 122 条节目
2025-01-02 18:03:01,599 - INFO - 完成抓取频道 33 2024-12-31 的节目表,共 155 条节目
2025-01-02 18:03:01,883 - INFO - 完成抓取频道 33 2025-01-01 的节目表,共 187 条节目
2025-01-02 18:03:02,150 - INFO - 完成抓取频道 33 2025-01-02 的节目表,共 224 条节目
2025-01-02 18:03:02,384 - INFO - 完成抓取频道 33 2025-01-03 的节目表,共 256 条节目
2025-01-02 18:03:02,461 - INFO - 完成抓取频道 33 2025-01-04 的节目表,共 256 条节目
2025-01-02 18:03:02,465 - INFO - 开始抓取频道 31 的节目表...
2025-01-02 18:03:02,541 - INFO - 完成抓取频道 31 2024-12-27 的节目表,共 3 条节目
2025-01-02 18:03:02,657 - INFO - 完成抓取频道 31 2024-12-28 的节目表,共 12 条节目
2025-01-02 18:03:02,746 - INFO - 完成抓取频道 31 2024-12-29 的节目表,共 15 条节目
2025-01-02 18:03:02,833 - INFO - 完成抓取频道 31 2024-12-30 的节目表,共 18 条节目
2025-01-02 18:03:02,923 - INFO - 完成抓取频道 31 2024-12-31 的节目表,共 21 条节目
2025-01-02 18:03:03,015 - INFO - 完成抓取频道 31 2025-01-01 的节目表,共 24 条节目
2025-01-02 18:03:03,098 - INFO - 完成抓取频道 31 2025-01-02 的节目表,共 27 条节目
2025-01-02 18:03:03,195 - INFO - 完成抓取频道 31 2025-01-03 的节目表,共 30 条节目
2025-01-02 18:03:03,280 - INFO - 完成抓取频道 31 2025-01-04 的节目表,共 33 条节目
2025-01-02 18:03:03,284 - INFO - 开始抓取频道 32 的节目表...
2025-01-02 18:03:03,697 - INFO - 完成抓取频道 32 2024-12-27 的节目表,共 66 条节目
2025-01-02 18:03:04,106 - INFO - 完成抓取频道 32 2024-12-28 的节目表,共 127 条节目
2025-01-02 18:03:04,523 - INFO - 完成抓取频道 32 2024-12-29 的节目表,共 193 条节目
2025-01-02 18:03:04,884 - INFO - 完成抓取频道 32 2024-12-30 的节目表,共 248 条节目
2025-01-02 18:03:05,241 - INFO - 完成抓取频道 32 2024-12-31 的节目表,共 303 条节目
2025-01-02 18:03:05,587 - INFO - 完成抓取频道 32 2025-01-01 的节目表,共 355 条节目
2025-01-02 18:03:05,926 - INFO - 完成抓取频道 32 2025-01-02 的节目表,共 408 条节目
2025-01-02 18:03:06,290 - INFO - 完成抓取频道 32 2025-01-03 的节目表,共 465 条节目
2025-01-02 18:03:06,734 - INFO - 完成抓取频道 32 2025-01-04 的节目表,共 516 条节目
2025-01-02 18:03:06,738 - INFO - 开始生成 XMLTV 文件...
2025-01-02 18:03:09,085 - INFO - XMLTV 文件生成完成: /www/epg.xml
2025-01-02 18:03:09,114 - INFO - 完成!EPG 文件已保存为 /www/epg.xml

终端访问

1
http://192.168.1.1/epg.xml

重启直至日志提交完成,全程约需10分钟。

旧站点 数年前部署在github上,hexo发布后是编译过的html文件,源文件.md和配置文件等并不上传到github。年代久远,之前电脑及文件均已无法找到,无法再更新,重新部署记录。

基本思路

  • github新建一个私有仓库,备份源文件等;
  • github新建一个公开仓库,发布博客文件。

准备工作

  • 密钥ssh-keygen -t rsa -b 4096 -C “your_email@example.com
  • 登录github,Repositories,heiok.github.io改名为oldsite,Settings,Pages,Custom domain,删除域名绑定;
  • 新建私有仓库hexo,新建公开仓库heiok.github.io(域名绑定);
  • 测试ssh -T git@github.com

博客发布

  • 安装 npm install -g cnpm –registry=https://registry.npmmirror.com

  • 插件 cnpm install hexo-deployer-git –save

  • 设置 hexo/_config.yml

    1
    2
    3
    4
    5
    6
    # Deployment
    ## Docs: https://hexo.io/docs/one-command-deployment
    deploy:
    type: git
    repo: git@github.com:heiok/heiok.github.io.git
    branch: main
  • 发布

    1
    2
    3
    hexo clean   // 清除缓存
    hexo g // 生成静态网页
    hexo d // 开始部署

备份推送

如果远程仓库已经有内容,先拉取远程内容解决冲突后再推送:

1
2
3
4
5
6
7
git pull origin main --rebase
git init
git remote add origin git@github.com:heiok/hexo.git
git checkout -b main
git add .
git commit -m "blog source files backup"
git push origin main

旧站处理

站点改名为oldsite后,原站点CSS样式需要处理。

1
2
3
4
5
6
7
git clone git@github.com:heiok/oldsite.git
find . -name "*.html" -exec sed -i 's|href="/css|href="/oldsite/css|g' {} \;
find . -name "*.html" -exec sed -i 's|src="/js|src="/oldsite/js|g' {} \;
find . -name "*.html" -exec sed -i 's|href="/\([^o][^/]*\)|href="/oldsite/\1|g' {} \;
find . -name "*.html" -exec sed -i 's|href="/"|href="/oldsite"|' {} \;
find . -name "*.html" -exec sed -i 's|src="/images/|src="/oldsite/images/|g' {} \;
find . -name "*.html" -exec sed -i 's|content="/images/|content="/oldsite/images/|g' {} \;
0%