-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
2465 lines (2165 loc) · 226 KB
/
atom.xml
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
<title>🌟Edwardzcn blog</title>
<subtitle>Promised land</subtitle>
<link rel="self" type="application/atom+xml" href="https://www.edwardzcn.me/atom.xml"/>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me"/>
<generator uri="https://www.getzola.org/">Zola</generator>
<updated>2025-01-27T00:00:00+00:00</updated>
<id>https://www.edwardzcn.me/atom.xml</id>
<entry xml:lang="en">
<title>ArmSom-Sige5开发版使用Armbian——Cockpit面板</title>
<published>2025-01-27T00:00:00+00:00</published>
<updated>2025-01-27T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/programming/armsom-sige5-armbian-cockpit/"/>
<id>https://www.edwardzcn.me/blog/programming/armsom-sige5-armbian-cockpit/</id>
<summary type="html"><p>接上一篇<a href="https://www.edwardzcn.me/blog/programming/armsom-sige5-armbian-cockpit/./ArmSom-Sige5%E5%BC%80%E5%8F%91%E7%89%88%E4%BD%BF%E7%94%A8Armbian%E2%80%94%E2%80%94%E5%9F%BA%E7%A1%80%E8%B7%AF%E7%94%B1.md">《ArmSom-Sige5开发版使用Armbian——基础路由》</a>,本文将介绍如何在 ArmSom-Sige5 开发板上安装 <a href="https://cockpit-project.org/">Cockpit</a> Web GUI 作为管理面板,监视其他服务器(包括 Homelab设备 和 VPS)。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>ArmSom-Sige5开发版使用Armbian——基础路由</title>
<published>2025-01-18T00:00:00+00:00</published>
<updated>2025-01-18T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/programming/armsom-sige5-armbian-basic-router/"/>
<id>https://www.edwardzcn.me/blog/programming/armsom-sige5-armbian-basic-router/</id>
<content type="html" xml:base="https://www.edwardzcn.me/blog/programming/armsom-sige5-armbian-basic-router/"><p>记录过年回家前的一次折腾,把ArmSom-Sige5开发版<del>刷了社区版Armbian又降回板子厂商提供的unofficial Armbian</del>,配置软路由功能兼有Linux环境开发体验。</p>
<p>免责声明:初次接触开发版<del>我也忘记哪里看到ArmSom的广告就买了,可能我只是喜欢他家的💜紫色外壳</del>,不保证本文有参考价值,仅作为个人踩坑记录。</p>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian0.jpeg" alt="sige5" /></p>
<h2 id="gu-jian-emmcshao-xie">固件eMMC烧写</h2>
<p>因为手头没有可用的microSD卡,选择type-C数据线直连电脑和板子烧录固件到eMMC。具体步骤如下:</p>
<h3 id="zhun-bei-gong-zuo">准备工作</h3>
<ul>
<li>两根type-C线,一根用于开发版和电脑连接,一根为开发版供电。</li>
<li>准备 MiniLoader (ArmSom官方提供,sige5为RK3576_MiniLoaderAll)</li>
<li>准备 System Image
<ul>
<li>我使用的是ArmSom提供的unofficial Armbian镜像</li>
<li><a href="https://github.com/armbian/community/releases/">Armbian Community 镜像</a></li>
<li>其他镜像请参考<a href="https://docs.armsom.org/zh/armsom-sige5">ArmSom Sige5文档</a></li>
</ul>
</li>
<li>烧录工具
<ul>
<li>Windows 使用 RKDevTool(ArmSom官方提供)</li>
<li>Linux/macOS 使用 <a href="https://github.com/rockchip-linux/rkdeveloptool">rkdeveloptool</a></li>
</ul>
</li>
</ul>
<h3 id="shao-lu-bu-zou">烧录步骤</h3>
<p>进入 Maskrom 模式,参考<a href="https://docs.armsom.org/zh/getting-start/flash-img#232-usb%E7%BA%BF%E7%83%A7%E5%BD%95%E5%88%B0emmc">镜像烧录步骤</a></p>
<ol>
<li>断开所有供电电线,连接开发版和电脑</li>
<li>使用一根Type-C线连接开发版Type-C口(非供电接口)和电脑的usb接口,使用软件检测
<ul>
<li>Windows RKDevTool 下方显示 <code>No Devices Found</code></li>
<li>Linux/macOS 运行 <code>rkdevelotool ld</code> 显示 <code>not found any devices!</code></li>
</ul>
</li>
<li>按住Mashrom按键,使用另一根Type-C线连接开发版Type-C口(供电接口)和电源
<ul>
<li>Windows RKDevTool 下方显示 “Found One Loader Device”,可松开按键</li>
<li>Linux/macOS 运行 <code>rkdevelotool ld</code> 检测到设备 <code>DevNo=1 Vid=0x2207,Pid=0x350e,LocationID=201 Maskrom</code>,可松开按键</li>
</ul>
</li>
<li>根据下面的平台/软件选择要烧录的 System Image 进行烧录</li>
</ol>
<h4 id="windows-rkdevtool">Windows RkDevTool</h4>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian1.png" alt="RKDevTool" /></p>
<p>其中 Loader Path 为MiniLoader路径,Image Path 为所烧录镜像的路径。起始地址为 0x0000 无需修改,注意勾选 Write by Address,点击 Run 开始烧录。右侧Download image完成即烧录完成。</p>
<h4 id="linux-macos-rkdeveloptool">Linux/macOS rkdeveloptool</h4>
<p>命令行执行</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">rkdeveloptool</span><span> db RK3576_MiniLoaderAll.bin
</span><span style="color:#bf616a;">rkdeveloptool</span><span> wl 0x0000 Armbian_community_25.2.0-trunk.86_Armsom-sige5_noble_vendor_6.1.75_gnome_desktop.img
</span><span style="color:#bf616a;">rkdeveloptool</span><span> rd
</span></code></pre>
<p>等待烧录完成。</p>
<h2 id="armbian-chu-shi-pei-zhi">Armbian 初始配置</h2>
<p>开发版接电,使用HDMI接口外接显示器,我烧录的是带有GNOME桌面环境的Armbian镜像,初次登录需要一些配置,还不能直接进入桌面系统。<a href="https://docs.armbian.com/User-Guide_Getting-Started/">Armbian 默认登录root密码为1234</a>。初始配置包含以下:</p>
<pre data-lang="txt" style="background-color:#2b303b;color:#c0c5ce;" class="language-txt "><code class="language-txt" data-lang="txt"><span>Welcome to Armbian!
</span><span>
</span><span>Documentation: https://docs.armbian.com/ | Community support: https://forum.armbian.com/
</span><span>
</span><span>IP address: Network connection timeout!
</span><span>
</span><span>Create root password: ********
</span><span>Repeat root password: ********
</span><span>
</span><span>Shell: BASH
</span><span>
</span><span>Please provide a username (eg. your first name): ?
</span><span>
</span><span>Create user (Jane) password: ********
</span><span>Repeat user (Jane) password: ********
</span><span>
</span><span>...
</span></code></pre>
<p>完成配置后桌面系统会重启进入GNOME桌面,非桌面系统会新建 ssh 对话。</p>
<h2 id="armbian-xi-tong-huan-yuan">Armbian 系统换源</h2>
<p>由于国内网络问题,进入系统首先更换镜像源<sup class="footnote-reference" id="fr-1-1"><a href="#fn-1">[1]</a></sup> <sup class="footnote-reference" id="fr-2-1"><a href="#fn-2">[2]</a></sup>,Armbian是构建在Debian或Ubuntu发行版上,需要编辑:</p>
<ul>
<li><code>/etc/apt/sources.list/armbian.list</code>armbian专属软件源和</li>
<li><code>/etc/apt/sources.list</code>发行版基础的软件源。</li>
</ul>
<h3 id="armbian-zhuan-shu-ruan-jian-yuan-huan-yuan">Armbian 专属软件源换源</h3>
<p>可参考 <a href="https://mirrors.tuna.tsinghua.edu.cn/help/armbian/">TUNA Mirror Help</a></p>
<p>或者使用下面的镜像选择脚本</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span>
</span><span style="color:#65737e;">#!/bin/bash
</span><span style="color:#bf616a;">GREEN</span><span>=&#39;</span><span style="color:#a3be8c;">\033[0;32m</span><span>&#39;
</span><span style="color:#bf616a;">CYAN</span><span>=&#39;</span><span style="color:#a3be8c;">\033[0;36m</span><span>&#39;
</span><span style="color:#bf616a;">RED</span><span>=&#39;</span><span style="color:#a3be8c;">\033[0;31m</span><span>&#39;
</span><span style="color:#bf616a;">NC</span><span>=&#39;</span><span style="color:#a3be8c;">\033[0m</span><span>&#39;
</span><span>
</span><span style="color:#bf616a;">SOURCE_FILE</span><span>=&quot;</span><span style="color:#a3be8c;">/etc/apt/sources.list.d/armbian.list</span><span>&quot;
</span><span>
</span><span style="color:#bf616a;">CURRENT_SOURCE</span><span>=$</span><span style="color:#a3be8c;">(</span><span style="color:#bf616a;">grep -Eo </span><span>&#39;</span><span style="color:#a3be8c;">https?://[^ ]+</span><span>&#39; &quot;$</span><span style="color:#bf616a;">SOURCE_FILE</span><span>&quot; | </span><span style="color:#bf616a;">head -n</span><span style="color:#a3be8c;"> 1)
</span><span>
</span><span style="color:#b48ead;">if </span><span style="color:#96b5b4;">[[ </span><span>&quot;$</span><span style="color:#bf616a;">CURRENT_SOURCE</span><span>&quot; == *&quot;</span><span style="color:#a3be8c;">tuna.tsinghua.edu.cn</span><span>&quot;* </span><span style="color:#96b5b4;">]]</span><span>; </span><span style="color:#b48ead;">then
</span><span> </span><span style="color:#bf616a;">CURRENT_SOURCE_NAME</span><span>=&quot;</span><span style="color:#a3be8c;">Tsinghua 清华大学镜像源</span><span>&quot;
</span><span style="color:#b48ead;">elif </span><span style="color:#96b5b4;">[[ </span><span>&quot;$</span><span style="color:#bf616a;">CURRENT_SOURCE</span><span>&quot; == *&quot;</span><span style="color:#a3be8c;">ustc.edu.cn</span><span>&quot;* </span><span style="color:#96b5b4;">]]</span><span>; </span><span style="color:#b48ead;">then
</span><span> </span><span style="color:#bf616a;">CURRENT_SOURCE_NAME</span><span>=&quot;</span><span style="color:#a3be8c;">USTC 中国科学技术大学镜像源</span><span>&quot;
</span><span style="color:#b48ead;">elif </span><span style="color:#96b5b4;">[[ </span><span>&quot;$</span><span style="color:#bf616a;">CURRENT_SOURCE</span><span>&quot; == *&quot;</span><span style="color:#a3be8c;">apt.armbian.com</span><span>&quot;* </span><span style="color:#96b5b4;">]]</span><span>; </span><span style="color:#b48ead;">then
</span><span> </span><span style="color:#bf616a;">CURRENT_SOURCE_NAME</span><span>=&quot;</span><span style="color:#a3be8c;">官方镜像源</span><span>&quot;
</span><span style="color:#b48ead;">else
</span><span> </span><span style="color:#bf616a;">CURRENT_SOURCE_NAME</span><span>=&quot;</span><span style="color:#a3be8c;">未知镜像源</span><span>&quot;
</span><span style="color:#b48ead;">fi
</span><span>
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">CYAN</span><span style="color:#a3be8c;">}======================================</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">CYAN</span><span style="color:#a3be8c;">} Armbian Mirror Switcher Script </span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">CYAN</span><span style="color:#a3be8c;">}======================================</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span>
</span><span style="color:#b48ead;">if </span><span style="color:#96b5b4;">[ </span><span style="color:#bf616a;">-n </span><span>&quot;$</span><span style="color:#bf616a;">CURRENT_SOURCE</span><span>&quot; </span><span style="color:#96b5b4;">]</span><span>; </span><span style="color:#b48ead;">then
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}当前源:</span><span>$</span><span style="color:#bf616a;">CURRENT_SOURCE</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}镜像源名称:</span><span>$</span><span style="color:#bf616a;">CURRENT_SOURCE_NAME</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#b48ead;">else
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">RED</span><span style="color:#a3be8c;">}未检测到有效的源配置!</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#b48ead;">fi
</span><span>
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}请选择要切换的镜像源:</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;</span><span style="color:#a3be8c;">1. Tsinghua 清华大学源 (https://mirrors.tuna.tsinghua.edu.cn)</span><span>&quot;
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;</span><span style="color:#a3be8c;">2. USTC 中国科学技术大学源 (https://mirrors.ustc.edu.cn)</span><span>&quot;
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;</span><span style="color:#a3be8c;">3. 恢复为默认的官方源 (http://apt.armbian.com)</span><span>&quot;
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-ne </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">CYAN</span><span style="color:#a3be8c;">}请输入选项 (1, 2 或 3): </span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#96b5b4;">read </span><span style="color:#bf616a;">-r</span><span> choice
</span><span>
</span><span style="color:#b48ead;">case </span><span>$</span><span style="color:#bf616a;">choice </span><span style="color:#b48ead;">in
</span><span> 1</span><span style="color:#b48ead;">)
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}切换到 Tsinghua 源...</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> </span><span style="color:#bf616a;">sudo</span><span> sed</span><span style="color:#bf616a;"> -i</span><span>.bak</span><span style="color:#bf616a;"> -E </span><span>&#39;</span><span style="color:#a3be8c;">s#https?://(mirrors\.(tuna\.tsinghua\.edu\.cn|ustc\.edu\.cn)|apt\.armbian\.com)#https://mirrors.tuna.tsinghua.edu.cn#g</span><span>&#39; &quot;$</span><span style="color:#bf616a;">SOURCE_FILE</span><span>&quot;
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}源已成功更换为 Tsinghua 清华大学镜像!</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> ;;
</span><span> 2</span><span style="color:#b48ead;">)
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}切换到 USTC 源...</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> </span><span style="color:#bf616a;">sudo</span><span> sed</span><span style="color:#bf616a;"> -i</span><span>.bak</span><span style="color:#bf616a;"> -E </span><span>&#39;</span><span style="color:#a3be8c;">s#https?://(mirrors\.(tuna\.tsinghua\.edu\.cn|ustc\.edu\.cn)|apt\.armbian\.com)#https://mirrors.ustc.edu.cn#g</span><span>&#39; &quot;$</span><span style="color:#bf616a;">SOURCE_FILE</span><span>&quot;
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}源已成功更换为 USTC 中国科学技术大学镜像!</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> ;;
</span><span> 3</span><span style="color:#b48ead;">)
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}恢复为默认的官方源...</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> </span><span style="color:#bf616a;">sudo</span><span> sed</span><span style="color:#bf616a;"> -i</span><span>.bak</span><span style="color:#bf616a;"> -E </span><span>&#39;</span><span style="color:#a3be8c;">s#https?://(mirrors\.(tuna\.tsinghua\.edu\.cn|ustc\.edu\.cn)|apt\.armbian\.com)#http://apt.armbian.com#g</span><span>&#39; &quot;$</span><span style="color:#bf616a;">SOURCE_FILE</span><span>&quot;
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}源已恢复为默认的官方镜像!</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> ;;
</span><span> *</span><span style="color:#b48ead;">)
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">RED</span><span style="color:#a3be8c;">}无效输入!请重新运行脚本并选择 1, 2 或 3。</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> </span><span style="color:#96b5b4;">exit</span><span> 1
</span><span> ;;
</span><span style="color:#b48ead;">esac
</span><span>
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-ne </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">CYAN</span><span style="color:#a3be8c;">}是否立即更新软件包索引?(y/n): </span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#96b5b4;">read </span><span style="color:#bf616a;">-r</span><span> update_choice
</span><span>
</span><span style="color:#b48ead;">if </span><span style="color:#96b5b4;">[[ </span><span>&quot;$</span><span style="color:#bf616a;">update_choice</span><span>&quot; =~ ^</span><span style="color:#b48ead;">[</span><span>Yy</span><span style="color:#b48ead;">]</span><span>$ </span><span style="color:#96b5b4;">]]</span><span>; </span><span style="color:#b48ead;">then
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">CYAN</span><span style="color:#a3be8c;">}更新软件包索引...</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span> </span><span style="color:#bf616a;">sudo</span><span> apt-get update
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}软件包索引更新完成!</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#b48ead;">else
</span><span> </span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">CYAN</span><span style="color:#a3be8c;">}已跳过更新软件包索引。</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span><span style="color:#b48ead;">fi
</span><span>
</span><span style="color:#96b5b4;">echo </span><span style="color:#bf616a;">-e </span><span>&quot;$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">GREEN</span><span style="color:#a3be8c;">}镜像源切换操作完成!</span><span>$</span><span style="color:#a3be8c;">{</span><span style="color:#bf616a;">NC</span><span style="color:#a3be8c;">}</span><span>&quot;
</span></code></pre>
<h3 id="fa-xing-ban-ji-chu-debian-ubuntu-huan-yuan">发行版基础Debian/Ubuntu 换源</h3>
<p>根据登录开发版 motd 信息获取确定发行版基础<sup class="footnote-reference" id="fr-2-2"><a href="#fn-2">[2]</a></sup>,比如我的显示如下:</p>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian2.png" alt="motd" /></p>
<p>Noble 表示基于 Ubuntu 24.04 (noble)</p>
<p>或者可以使用<code>cat /etc/os-release</code>获取详细系统信息</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">edwardzcn@armsom-sige5:~$</span><span> cat /etc/os-release
</span><span style="color:#bf616a;">PRETTY_NAME</span><span>=&quot;</span><span style="color:#a3be8c;">Armbian 24.11.3 noble</span><span>&quot;
</span><span style="color:#bf616a;">NAME</span><span>=&quot;</span><span style="color:#a3be8c;">Ubuntu</span><span>&quot;
</span><span style="color:#bf616a;">VERSION_ID</span><span>=&quot;</span><span style="color:#a3be8c;">24.04</span><span>&quot;
</span><span style="color:#bf616a;">VERSION</span><span>=&quot;</span><span style="color:#a3be8c;">24.04 LTS (Noble Numbat)</span><span>&quot;
</span><span style="color:#bf616a;">VERSION_CODENAME</span><span>=</span><span style="color:#a3be8c;">noble
</span><span style="color:#bf616a;">ID</span><span>=</span><span style="color:#a3be8c;">ubuntu
</span><span style="color:#bf616a;">ID_LIKE</span><span>=</span><span style="color:#a3be8c;">debian
</span><span style="color:#bf616a;">HOME_URL</span><span>=&quot;</span><span style="color:#a3be8c;">https://www.armbian.com</span><span>&quot;
</span><span style="color:#bf616a;">SUPPORT_URL</span><span>=&quot;</span><span style="color:#a3be8c;">https://forum.armbian.com</span><span>&quot;
</span><span style="color:#bf616a;">BUG_REPORT_URL</span><span>=&quot;</span><span style="color:#a3be8c;">https://www.armbian.com/bugs</span><span>&quot;
</span><span style="color:#bf616a;">PRIVACY_POLICY_URL</span><span>=&quot;</span><span style="color:#a3be8c;">https://www.armbian.com</span><span>&quot;
</span><span style="color:#bf616a;">UBUNTU_CODENAME</span><span>=</span><span style="color:#a3be8c;">noble
</span><span style="color:#bf616a;">LOGO</span><span>=&quot;</span><span style="color:#a3be8c;">armbian-logo</span><span>&quot;
</span><span style="color:#bf616a;">ARMBIAN_PRETTY_NAME</span><span>=&quot;</span><span style="color:#a3be8c;">Armbian 24.11.3 noble</span><span>&quot;
</span></code></pre>
<p>确定是ubuntu还是debian就可以选择镜像源,以清华源为例</p>
<ul>
<li>清华大学Debian源 https://mirrors.tuna.tsinghua.edu.cn/help/debian</li>
<li>清华大学Ubuntu Ports源 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports</li>
</ul>
<p>注意Ubuntu系要选择ubuntu-port源,换源可参考 <a href="https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/">TUNA Mirror help</a> 或者 <a href="https://mirrors.ustc.edu.cn/help/ubuntu-ports.html">USTC Mirror Help</a></p>
<p>还是以使用清华源为例,手动修改<code>/etc/apt/sources.list</code></p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">sudo</span><span> nano /etc/apt/sources.list
</span></code></pre>
<pre data-lang="txt" style="background-color:#2b303b;color:#c0c5ce;" class="language-txt "><code class="language-txt" data-lang="txt"><span>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ noble main restricted universe multiverse
</span><span># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ noble main restricted universe multiverse
</span><span>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ noble-updates main restricted universe multiverse
</span><span># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ noble-updates main restricted universe multiverse
</span><span>deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ noble-backports main restricted universe multiverse
</span><span># deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ noble-backports main restricted universe multiverse
</span></code></pre>
<p>现在你<del>不用看着10+Kbps的网速干着急</del>可放心使用</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">sudo</span><span> apt update
</span><span style="color:#bf616a;">sudo</span><span> apt upgrade
</span></code></pre>
<p>瞧瞧你的板子,说实话ASCII画我还是喜欢原来那个大A。</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">sudo</span><span> apt install neofetch</span><span style="color:#bf616a;"> -y </span><span>&amp;&amp; </span><span style="color:#bf616a;">neofetch
</span></code></pre>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian3.png" alt="neofetch" /></p>
<h3 id="jing-tai-ip-ssh-diao-shi">静态 IP + ssh 调试</h3>
<p>我更习惯使用我的工作机(一台mac)通过网线连接板子,使用 ssh 做基础路由设置以及一些软件更新,桌面系统开始会有卡顿(以及无浏览器等问题)</p>
<p>插入网线后,假定工作机以太网接口连接开发版eth1接口</p>
<ul>
<li>在工作机上设置网络-以太网<code>手动</code>配置IPv4,IP地址 <code>192.168.1.100</code>,子网掩码 <code>255.255.255.0</code></li>
<li>在开发版上设置网络 手动(Manual)IPv4(取消掉自动DHCP),IP地址 <code>192.168.1.1</code>(常见路由器地址),子网掩码 <code>255.255.255.0</code></li>
</ul>
<p><code>ping</code>测试是否可以连通,确定ICMP可用,然后使用 Armbian初始配置中 设置的用户密码(桌面系统建议连接非root用户)</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#65737e;"># 工作机 ping 开发板
</span><span style="color:#bf616a;">zmac-mini:~:</span><span>% ping</span><span style="color:#bf616a;"> -c</span><span> 5 192.168.1.1
</span><span style="color:#bf616a;">PING</span><span> 192.168.1.1 (192.168.1.1)</span><span style="color:#96b5b4;">:</span><span> 56 data bytes
</span><span style="color:#bf616a;">64</span><span> bytes from 192.168.1.1: icmp_seq=0 ttl=64 time=0.918 ms
</span><span style="color:#bf616a;">64</span><span> bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.885 ms
</span><span style="color:#bf616a;">64</span><span> bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.818 ms
</span><span style="color:#bf616a;">64</span><span> bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.773 ms
</span><span style="color:#bf616a;">64</span><span> bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.867 ms
</span><span>
</span><span style="color:#bf616a;">---</span><span> 192.168.1.1 ping statistics ---
</span><span style="color:#bf616a;">5</span><span> packets transmitted, 5 packets received, 0.0% packet loss
</span><span style="color:#bf616a;">round-trip</span><span> min/avg/max/stddev = 0.773/0.852/0.918/0.051 ms
</span></code></pre>
<p>使用 ssh 密码登录,后续 Armbian开发板 ssh 登录配置类似于 VPS 远程 ssh 登录配置<sup class="footnote-reference" id="fr-3-1"><a href="#fn-3">[3]</a></sup>,可根据自己习惯和需求配置密钥登录等。</p>
<h3 id="diao-zheng-dian-yuan-ji-hua-he-xiu-mian-she-zhi">调整电源计划和休眠设置</h3>
<p>有些时候可能 ssh连接一段时间会遇到系统被挂起(suspend)的提示,方便起见还是关掉GNOME电源选项的 Automatic Suspend,<del>我并不确定是因为这个挂起的,因为suspend的日志没看懂也没找到命令行设置方式</del>。</p>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian4.png" alt="suspend" /></p>
<h2 id="armbian-ji-chu-lu-you">Armbian 基础路由</h2>
<p>好的似乎终于进入正题了,先说说为什么突然想着折腾小板子,以及为什么选择了 Armbian,我先放几个理由,有想到再补充</p>
<ol>
<li>兼顾软路由,但又不想要openwrt</li>
</ol>
<ul>
<li>openwrt固然很方便,但有两个点为人诟病:包管理问题、为照顾大量低性能的设备做了兼容(但事实上,你并不一定会用这些IoT设备对吗?)。Armbian 基于Ubuntu或者Debian给了更多玩法,特别是对有Linux使用经验的玩家/开发者,可以使用apt包管理工具,充分利用这一价位开发版的价值(比如利用板载npu做一点推理,毕竟都自称mini computer了)</li>
<li>套壳/层叠的软件栈带来很多负担。个人便好,不喜欢docker虚拟机套壳最后只部署一个软路由。</li>
<li>另外有技术佬说<del>openwrt 很灵车但我没遇到过</del></li>
</ul>
<ol start="2">
<li>Use Armbian just like Ubuntu+/Debian+</li>
</ol>
<ul>
<li>虽然没有openwrt或者硬路由提供的面板,<code>armbian-config</code>基本上覆盖了应有的便捷配置(如果你喜欢这种 CLI 交互就更适合了),<del>不过你现在还用不了,<code>armbian-config</code>需建立和github.com的通信</del></li>
<li>恰有基于arm镜像的服务需要跑</li>
<li>剩余的性能释放出来跑我的脚本和检测🐤面板</li>
<li><del>出来吧 NAS</del></li>
</ul>
<p>本节先更新基础的路由部分,以及对桌面环境的必要调整</p>
<p>其实一个基本的(软)路由器系统主要包括下面几项服务,开箱即用的面板或者一键式脚本只是简化帮助完成这些配置<sup class="footnote-reference" id="fr-1-2"><a href="#fn-1">[1]</a></sup>。</p>
<ul>
<li><strong>DNS</strong>:域名解析服务,用于将主机名称(局域网主机名,域名解析)解析为IP地址
<ul>
<li>可以当作:<strong>小区户名-门牌号查询簿</strong></li>
<li>请注意:公网上提供DNS服务是被禁止的,会被封IP,该项服务只允许运营商提供</li>
<li>由于传统DNS查询是明文,可以被中间人截留修改造成DNS污染,需要适当调整,比如使用DoH和DoT分流。</li>
<li>可用工具 systemd-resolved,TelescopeDNS,EasyMosdns和dnsmasq</li>
</ul>
</li>
<li><strong>DHCP</strong>:动态IP地址分配协议(服务器)。终端网络设备一般会装载DHCP客户端(client)来自动请求并获取动态ip。(软)路由器系统的DHCP这里实际上是指DHCP服务器(server),用来分发管理局域网的ip地址,回应DHCP客户端发来的请求。
<ul>
<li>可以当作:<strong>小区住户门牌号地址簿(搬家会更新)</strong></li>
<li>可用工具 coredhcp(yaml配置)/ dnsmasq(conf配置)</li>
</ul>
</li>
<li><strong>NAT</strong>:网络地址转换,建立局域网<code>&lt;IP,Port&gt;</code>元组与外网<code>&lt;IP,Port&gt;</code>映射,并进行转换。
<ul>
<li>可以当作:<strong>小区特派巴士座位表(巴士是和城市沟通的交通方式)</strong></li>
<li>可用工具 iptables,nftables</li>
</ul>
</li>
<li><strong>IP Forwarding</strong>:IP转发,只有启用后才会将开发版某个接口(比如连接局域网设备)不经本地程序转发至外网接口。作为操作系统内核功能,用于支持多网卡设备在不同接口间的通信。
<ul>
<li>可以当作:<strong>手拿座位表的特派巴士司机/售票员</strong></li>
</ul>
</li>
</ul>
<p>在基础路由中我都挑选配置尽量简单,易兼容的工具。</p>
<h3 id="wang-luo-lian-jie-guan-li">网络连接管理</h3>
<p>Linux的网络连接管理可以使用 <code>systemd-networkd</code> 或 <code>NetworkManager</code> 。我搭建的基于Ubuntu的Armbian习惯用后者,还提供了更高层次的抽象<code>netplan</code>。理解成网络计划,简化编写,完成后可以自动渲染成<code>NetworkManager</code>描述。</p>
<p>修改<code>netplan</code>配置文件,默认在<code>/etc/netplan/</code>目录,序号大的覆盖小的,为避免冲突,合并用一个文件描述,名字设为<code>00-default-use-network-manager.yaml</code>。如果你看到了其他以UUID命名的文件,则是通过GUI界面生成的配置,可以删除。</p>
<p>未经修改的文件类似:</p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">network</span><span>:
</span><span> </span><span style="color:#bf616a;">version</span><span>: </span><span style="color:#d08770;">2
</span><span> </span><span style="color:#bf616a;">renderer</span><span>: </span><span style="color:#a3be8c;">NetworkManager
</span></code></pre>
<p>修改后:</p>
<pre data-lang="yaml" style="background-color:#2b303b;color:#c0c5ce;" class="language-yaml "><code class="language-yaml" data-lang="yaml"><span style="color:#bf616a;">network</span><span>:
</span><span> </span><span style="color:#bf616a;">version</span><span>: </span><span style="color:#d08770;">2
</span><span> </span><span style="color:#bf616a;">renderer</span><span>: </span><span style="color:#a3be8c;">NetworkManager
</span><span> </span><span style="color:#bf616a;">ethernets</span><span>:
</span><span> </span><span style="color:#bf616a;">eth1</span><span>:
</span><span> </span><span style="color:#bf616a;">dhcp4</span><span>: </span><span style="color:#d08770;">false
</span><span> </span><span style="color:#bf616a;">addresses</span><span>:
</span><span> - </span><span style="color:#a3be8c;">192.168.1.1/24
</span><span> </span><span style="color:#bf616a;">nameservers</span><span>:
</span><span> </span><span style="color:#bf616a;">addresses</span><span>:
</span><span> - </span><span style="color:#d08770;">192.168.1.1
</span></code></pre>
<p>执行<code>sudo netplan apply</code>使改变生效。可以在 GNOME 桌面的网络配置 GUI 中看到改变生效(名称暴露了是谁修改的):</p>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian5.png" alt="netplan0" /></p>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian6.png" alt="netplan1" /></p>
<h3 id="dns-he-dhcp-pei-zhi">DNS 和 DHCP 配置</h3>
<p>Armbian 默认使用 NetworkManager 中的 systemd-resolved组件,这个 DNSstub 监听 <code>127.0.0.53</code> 上的 <code>53</code>端口,其仅能监听本机请求而不能接受局域网内其他机器的请求,当路由肯定是不够的,安装并使用 <code>dnsmasq</code>作为DNS服务器,同时它也是一个轻量级的DHCP服务器,配置文件默认在<code>/etc/dnsmasq.conf</code><sup class="footnote-reference" id="fr-4-1"><a href="#fn-4">[4]</a></sup>。</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">sudo</span><span> apt install dnsmasq
</span><span style="color:#bf616a;">sudo</span><span> vim /etc/dnsmasq.conf
</span></code></pre>
<p>dnsmasq默认配置注释,初看很吓人,但实际上我们需要让路由跑起来并不需要调整很多,大多数配置看注释就能明白。这里给出我的最小化配置(还是假定开发版的eth1接口连接局域网设备)</p>
<pre data-lang="txt" style="background-color:#2b303b;color:#c0c5ce;" class="language-txt "><code class="language-txt" data-lang="txt"><span>port=0 # 关闭 DNS
</span><span>server=1.1.1.1 # 指明上游 DNS服务器
</span><span>interface=eth1 # 指定 DHCP 服务绑定的网络接口
</span><span>bind-interfaces # 只监听对应接口的请求(即eth1 接口的地址)
</span><span>dhcp-range=192.168.1.100,192.168.1.200,12h # 分配 IP 地址范围(这里分配100-200)
</span><span>dhcp-option=option:router,192.168.1.1 # 指定使用本网关 (默认网关)
</span><span>dhcp-option=option:dns-server,192.168.1.1 # 指定使用本路由器 DNS
</span><span>log-queries
</span><span>log-dhcp
</span></code></pre>
<p><code>bind-interfaces</code> 设置使<code>dnsmasq</code>只监听对应接口请求,而非监听0.0.0.0所有可用地址,用于兼容正在运行的 <code>systemd-resolved</code> (监听127.0.0.53的53端口),防止冲突。<code>port=0</code>配置也会禁用掉监听DNS请求的服务,也可以避免冲突(目前我们暂不使用 dnsmasq 的 DNS 服务)。<code>dhcp-option</code>开头的设置都和DHCP协议中option段有关,上述两条会让client端自动配置网关和DNS为当前配置路由器的地址。</p>
<p>如果不打算兼容<code>systemd-resolved</code>,我们需要调整<code>/etc/resolv.conf</code>并停止<code>systemd-resolved</code>服务,这里我们暂不考虑,优先让路由器跑起来。</p>
<p>重启 <code>dnsmasq</code> 服务,查看状态</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">sudo</span><span> systemctl restart dnsmasq.service
</span><span style="color:#bf616a;">sudo</span><span> systemctl status dnsmasq.service
</span></code></pre>
<p>服务Active,<del>请先忽略那条Fail</del>,现在可以修改你工作机的网络设置,调整为DHCP(动态获取IP地址),效果如下:</p>
<p><img src="https://eddyblog.oss-cn-shenzhen.aliyuncs.com/2025-01-18/armbian7.png" alt="dhcp" /></p>
<h3 id="nat-he-ip-forwarding">NAT 和 IP Forwarding</h3>
<p>虽然客户机能拿到ip地址,但我们还不能访问外网。此时开发版并不会将数据包从eth1(内网接口)递送至eth0(外网接口),也不知道内网地址和外网地址的翻译规则。</p>
<p>IP Forwarding 是 NAT 实现的基础,它负责将数据包在不同接口之间转发,而NAT更像是定义规则怎么修改为内网/外网地址,两者搭配食用味道更佳。</p>
<h4 id="qi-yong-ip-zhuan-fa">启用 IP 转发</h4>
<p>编辑<code>/etc/systl.conf</code>:</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">sudo</span><span> vim /etc/sysctl.conf
</span></code></pre>
<p>找到对应行取消注释,开启ipv4和ipv6转发。</p>
<pre data-lang="txt" style="background-color:#2b303b;color:#c0c5ce;" class="language-txt "><code class="language-txt" data-lang="txt"><span># Uncomment the next line to enable packet forwarding for IPv4
</span><span>net.ipv4.ip_forward=1
</span><span>
</span><span># Uncomment the next line to enable packet forwarding for IPv6
</span><span># Enabling this option disables Stateless Address Autoconfiguration
</span><span># based on Router Advertisements for this host
</span><span>net.ipv6.conf.all.forwarding=1
</span></code></pre>
<p>运行<code>sudo sysctl -p</code>使改变生效。</p>
<h4 id="pei-zhi-iptables-jin-xing-nat">配置 iptables 进行 NAT</h4>
<p>在我的实验环境中,外网接口为 <code>eth0</code>,内网接口为 <code>eth1</code>:</p>
<pre data-lang="bash" style="background-color:#2b303b;color:#c0c5ce;" class="language-bash "><code class="language-bash" data-lang="bash"><span style="color:#bf616a;">sudo</span><span> iptables</span><span style="color:#bf616a;"> -t</span><span> nat</span><span style="color:#bf616a;"> -A</span><span> POSTROUTING</span><span style="color:#bf616a;"> -o</span><span> eth0</span><span style="color:#bf616a;"> -j</span><span> MASQUERADE
</span><span style="color:#bf616a;">sudo</span><span> iptables</span><span style="color:#bf616a;"> -A</span><span> FORWARD</span><span style="color:#bf616a;"> -i</span><span> eth1</span><span style="color:#bf616a;"> -o</span><span> eth0</span><span style="color:#bf616a;"> -m</span><span> state</span><span style="color:#bf616a;"> --state</span><span> RELATED,ESTABLISHED</span><span style="color:#bf616a;"> -j</span><span> ACCEPT
</span><span style="color:#bf616a;">sudo</span><span> iptables</span><span style="color:#bf616a;"> -A</span><span> FORWARD</span><span style="color:#bf616a;"> -i</span><span> eth1</span><span style="color:#bf616a;"> -o</span><span> eth0</span><span style="color:#bf616a;"> -j</span><span> ACCEPT
</span></code></pre>
<p>保存规则:</p>
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>sudo apt-get install iptables-persistent
</span><span>sudo netfilter-persistent save
</span></code></pre>
<p>由于iptables规则默认只在当前会话生效。一旦系统重启或者服务重启规则会被清空,借助<code>iptables-persistent</code>持久化规则到文件中,每次系统或服务启动时自动加载。</p>
<p>基本路由配置 Done!现在可以试试用工作机通过板子访问外部网络了。</p>
<hr><ol class="footnotes-list">
<li id="fn-1">
<p><a href="https://cyp0633.icu/post/armbian-r2s/">Armbian,更适合 R2S 软路由的系统</a> <a href="#fr-1-1">↩</a> <a href="#fr-1-2">↩2</a></p>
</li>
<li id="fn-2">
<p><a href="https://xiau.net/990.html/">夏的博客 | Armbian换源教程</a>. <a href="#fr-2-1">↩</a> <a href="#fr-2-2">↩2</a></p>
</li>
<li id="fn-3">
<p><a href="https://linux.do/t/topic/267502#p-2476630-h-9">VPS基本安全措施 - 开发调优 - LINUX DO</a> <a href="#fr-3-1">↩</a></p>
</li>
<li id="fn-4">
<p><a href="https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/configuring_and_managing_networking/using-different-dns-servers-for-different-domains_configuring-and-managing-networking#using-systemd-resolved-in-networkmanager-to-send-dns-requests-for-a-specific-domain-to-a-selected-dns-server_using-different-dns-servers-for-different-domains">RHEL 9 | systemd-resolved 使用</a> <a href="#fr-4-1">↩</a></p>
</li>
</ol>
</content>
</entry>
<entry xml:lang="en">
<title>「我在泰缅边境调查电诈产业200天」</title>
<published>2025-01-16T00:00:00+00:00</published>
<updated>2025-01-16T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/wo-zai-tai-mian-bian-jing-diao-cha-dian-zha-chan-ye-200tian/"/>
<id>https://www.edwardzcn.me/blog/reading/wo-zai-tai-mian-bian-jing-diao-cha-dian-zha-chan-ye-200tian/</id>
<summary type="html"><p>转自 伍勤 <a href="https://mp.weixin.qq.com/s/t8y7yMyFfs7LI33zyXRMzw">正面连接</a></p>
<p>泰缅边境成为了一片“法外之地”。</p>
<p>军阀割据创造出治理真空,泰国成为交通枢纽,当地华人铺平道路——泰国华人打通移民局、警察局和边防军,缅甸华人打通“民地武”(民族地区武装)的门路,搞到园区用地。</p>
<p>这些统一构成了逃避统治的基础设施,让电诈产业得以发展壮大。</p>
<p>全球资本主义中“<strong>残余</strong>”的人被吸引或诱拐至此。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>Blog Migration to Zola</title>
<published>2025-01-10T00:00:00+00:00</published>
<updated>2025-01-10T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/blog-migration/"/>
<id>https://www.edwardzcn.me/blog/blog-migration/</id>
<summary type="html"><p>2025-01 博客网站重启。模版引擎替换为 <a href="https://getzola.org">Zola</a>,主题使用 <a href="https://github.com/edwardzcn-decade/cela">Cela</a>。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>「我躲在虹桥的卫生间,不知道去哪」</title>
<published>2023-11-21T00:00:00+00:00</published>
<updated>2023-11-21T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/wo-duo-zai-hong-qiao-de-wei-sheng-jian-bu-zhi-dao-qu-na/"/>
<id>https://www.edwardzcn.me/blog/reading/wo-duo-zai-hong-qiao-de-wei-sheng-jian-bu-zhi-dao-qu-na/</id>
<summary type="html"><p>原文链接 aHR0cHM6Ly9tcC53ZWl4aW4ucXEuY29tL3MvcFoxQm10SGVkUjByeEJaa3FON0ZTQQ==</p>
<p>文字藏于节点之间,记得那些撰写的人。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>《台北人》摘录</title>
<published>2022-08-08T00:00:00+00:00</published>
<updated>2022-08-08T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/tai-bei-ren-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/tai-bei-ren-zhai-lu/</id>
<summary type="html"><blockquote>
<p>《孽子》中的“孽子”二字实在抓住了中华文化中的“孝”这一部分以及在现代社会中这种“要求”与自我发现中的冲突感。有这二字,这本书便已经吸引我有着读下去的期待 —— Yu</p>
</blockquote>
</summary>
</entry>
<entry xml:lang="en">
<title>《我承认我不曾经历沧桑》摘录</title>
<published>2022-07-26T00:00:00+00:00</published>
<updated>2022-07-26T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/wo-cheng-ren-wo-bu-ceng-jing-li-cang-sang-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/wo-cheng-ren-wo-bu-ceng-jing-li-cang-sang-zhai-lu/</id>
<summary type="html"><p>记录本身,已是反抗</p>
</summary>
</entry>
<entry xml:lang="en">
<title>《必有人重写爱情》摘录</title>
<published>2022-07-17T00:00:00+00:00</published>
<updated>2022-07-17T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/bi-you-ren-zhong-xie-ai-qing-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/bi-you-ren-zhong-xie-ai-qing-zhai-lu/</id>
<content type="html" xml:base="https://www.edwardzcn.me/blog/reading/bi-you-ren-zhong-xie-ai-qing-zhai-lu/"><span id="continue-reading"></span><h2 id="jiu-di">旧地</h2>
<blockquote>
<p>死亡总是从反面<br>
观察一幅画</p>
<p>此刻我从窗口<br>
看见我年轻时的落日<br>
旧地重游<br>
我急于说出真相<br>
可在天黑前<br>
又能说出什么</p>
<p>饮过词语之杯<br>
更让人干渴<br>
与河水一起援引大地<br>
我在空山倾听<br>
吹笛人内心的呜咽</p>
<p>税收的天使们<br>
从画的反面归来<br>
从那些镀金的头颅<br>
一直清点到落日</p>
</blockquote>
<h2 id="wo-men">我们</h2>
<blockquote>
<p>失魂落魄<br>
提着灯笼追赶春天<br></p>
<p>伤疤发亮,杯子转动<br>
光线被创造<br>
看那迷人的时刻:<br>
盗贼潜入邮局<br>
信发出叫喊<br></p>
<p>钉子啊钉子<br>
这歌词不可更改<br>
木柴紧紧搂在一起<br>
寻找听众<br></p>
<p>寻找冬天的心<br>
河流尽头<br>
船夫等待着茫茫暮色<br></p>
<p>必有人重写爱情<br></p>
</blockquote>
<h2 id="ta-xiang-de-tian-kong">他乡的天空</h2>
<blockquote>
<p>P227 “一个城市对于一个人,往往就是中心,不在于其大小地理位置重要与否。这就好比每个国家出版的世界地图都把自己置于中心,好在地球是圆的,用不着为这打架。北加州的小镇戴维斯(Davis),对我来说就是世界的中心。这道理也简单,无论我飞到哪儿,最后都得回来——我家在这儿......</p>
<p>像大多数美国人一样,我是为工作而搬到戴维斯来的;不同的是,我并没有因失去工作而搬走......</p>
<p>一进入戴维斯,暮色苍茫,华灯初上。突然一股致命的乡愁袭来,我强忍泪水。戴维斯于我意味着什么?这个普普通通的美国小镇,就是我的家,一个人在大地上的住所。对于漂泊者来说,它是安定与温暖的承诺;对于我来说,它是历史之外的避难所;对于父亲来说,它是守望女儿的麦田。</p>
<p>当年我师傅常对我说:‘哪儿的黄土不埋人?’这话虽有穷人的无奈,但也包含了一种绝对真理。说实话离开故乡久了,家的概念变得混乱。有时我在他乡的天空下开车,会突然感到纳闷:我在哪儿?这就是我家吗?</p>
<p>我家,在不同的路标之间。”</p>
</blockquote>
<blockquote>
<p>P247 “美国是许愿的土地,但对多数受苦受难的人来说却不肯兑现。当马丁·路德·金说‘我有一个梦想’时,他内心充满了绝望。O也有一个梦想,就是在美国合法留下来。我想所谓命运,都是一种对失败者结局的合法化解释,其中包含强权的意志。”</p>
</blockquote>
<p>餐风饮露,听八面来风。</p>
<h2 id="wu-ye-zhi-men">午夜之门</h2>
<blockquote>
<p>P280 “首先由达维什讲话,他先提到‘这个血腥的春天’(this bloody spring)。他说,你们勇敢的来访就是一种突围。你们让我们感到不再孤立。‘我们意识到有太长历史和太多先知,我们懂得多元环抱的空间而不是牢房,没有人可以独霸土地或神或记忆。我们也知道历史既不公平也不优雅。而我们的任务是,作为人,我们既是人类历史的牺牲又是它的创造。’最后他说,‘而我们患的不治之症是:希望......希望将让这儿恢复其原意:爱与和平的土地。感谢你们和我们一起背负这希望的包袱。’”</p>
</blockquote>
</content>
</entry>
<entry xml:lang="en">
<title>《奶奶的星星》摘录</title>
<published>2022-05-19T00:00:00+00:00</published>
<updated>2022-05-19T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/nai-nai-de-xing-xing-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/nai-nai-de-xing-xing-zhai-lu/</id>
<content type="html" xml:base="https://www.edwardzcn.me/blog/reading/nai-nai-de-xing-xing-zhai-lu/"><span id="continue-reading"></span><h2 id="nai-nai-de-xing-xing">奶奶的星星</h2>
<blockquote>
<p>P003 “‘老了,还不死?’<br>
‘死了就怎么了?’<br>
‘那你就再也找不着奶奶了。’<br>
我不嚷了,也不问了,老老实实依偎在奶奶怀里。那又是世界给我的第一个可怕的印象。”</p>
</blockquote>
<blockquote>
<p>P004 “夏夜,满天星斗。奶奶讲的故事与众不同,她不是说地上死一个人,天上就熄灭了一颗星,而是说,地上死一个人,天上就又多了一个星星。<br>
‘怎么呢?’<br>
‘人死了,就变成一个星星’<br>
‘干吗变成星星呀?’<br>
‘给走夜道儿的人照个亮......’<br>
我们坐在庭院里,草茉莉都开了,各种颜色的小喇叭。掐一朵放在嘴上吹,有时候能吹响。奶奶用大芭蕉扇给我轰蚊子。凉凉的风,蓝蓝的天,闪闪的星星,永远留在我的记忆力里。”</p>
</blockquote>
<p>慢慢相信,每一个活过的人,都能给后人的路途上添些光亮,也许是一颗巨星,也许是一把火炬,也许只是一支含泪的烛光。</p>
<blockquote>
<p>P038 “‘不是因为别的,因为那是规矩。’爸爸说,‘就像你老太爷,出门儿几十里,一泡屎也要憋回来拉到自家的地里。因为那是规矩。那个社会,可笑和可恨的规矩太多了。’”</p>
</blockquote>
<blockquote>
<p>P044 “‘老了老了,没承想还赶上了好时候。’奶奶说。‘唉,你们生的是时候呀!我还有几天儿?’奶奶也常流露出遗憾。<br>
星星。星星。星星。星星......<br>
哪一颗星星是奶奶的呢?<br>
我知道,奶奶是真心爱这新社会的。<br>
那些星星都是死去的人变的,是为了给活着的人把夜路照亮......”</p>
</blockquote>
<p>然后,文革开始。</p>
<blockquote>
<p>P045 “奶奶倒没有哭,她吓傻了。爸爸、妈妈也吓傻了。好多人都吓傻了。好多吓傻的人也都在做着傻事,做傻事时的样子也都足以把别人吓傻。”</p>
</blockquote>
<blockquote>
<p>P049 “我一直默默地坐着。天黑了。是阴天,没有星星。奶奶这会儿在哪儿呢?干什么呢?屋里没有别人,我哭了。我想起小时候,别人对奶奶说:‘奶奶带起来的,长大了也忘不了奶奶。’奶奶笑笑说:‘等不到那会儿哟!’......海棠树的叶子落光了,没有星星。世界好像变了个样子。<strong>每个人的童年都有一个严肃的结尾,大约都是突然面对了一个严峻的事实,再不能睡一宿觉就把它忘掉,事后你发现,童年不复存在了。</strong>”</p>
</blockquote>
<blockquote>
<p>P050 “接着是上山下乡。抡镢头的为革命而抡镢头;养妾选美的为革命而养妾选美;饥寒交迫的为革命而饥寒交迫;挥霍无度的为革命而无度地挥霍。革命又是为了什么呢?”</p>
</blockquote>
<p>文字杀人。我难以原谅自己。</p>
<blockquote>
<p>P059 “‘你给我讲讲这一段行不?’<br>
‘咳,您不懂!’<br>
‘你不告诉我,我可不老是不懂。’<br>
‘您懂了又怎么样?啊?又怎么样?’<br>
奶奶分明听出了我的话外之音。她默默地坐着,一声不响。第二天晚上,她还是一字一句地兹纪念报纸,不再问我。我一看她,她的声音就变小,挺难为情似的......<br>
**老海棠树还活着,枝叶间,星星在天上。我认定那是奶奶的星星。**据说有一种蚂蚁,遇到火就大家抱成一个球。滚过去,总有一些被烧死,也总有一些活过来,继续往前爬。人类的路本来很艰难......我就又想起了奶奶的星星。**历史,要用许多不幸和错误去铺路,人类才变得比那些蚂蚁更聪明。**人类浩荡前行,在这条路上,不是靠的恨,而是靠的爱......”</p>
</blockquote>
<!-- more -->
</content>
</entry>
<entry xml:lang="en">
<title>《北岛作品》摘录</title>
<published>2022-05-17T00:00:00+00:00</published>
<updated>2022-05-17T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/a-bei-dao-reader-excerpt/"/>
<id>https://www.edwardzcn.me/blog/reading/a-bei-dao-reader-excerpt/</id>
<summary type="html"><p>必将有人重写生活,还这世间一个清白。</p>
<p>北岛的诗,凡以月份开头,总带着些历史的厚重感。有机器(人)言:“一月的夜晚像一封信,藏着无法送达的秘密”。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>《蛤蟆先生去看心理医生》摘录</title>
<published>2022-05-12T00:00:00+00:00</published>
<updated>2022-05-12T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/ha-ma-xian-sheng-qu-kan-xin-li-yi-sheng-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/ha-ma-xian-sheng-qu-kan-xin-li-yi-sheng-zhai-lu/</id>
<summary type="html"><p>尝试和解,学会拒绝,懂得愤怒。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>《法治的细节》摘录</title>
<published>2022-05-10T00:00:00+00:00</published>
<updated>2022-05-10T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/fa-zhi-de-xi-jie-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/fa-zhi-de-xi-jie-zhai-lu/</id>
<summary type="html"><p>序言部分真的写太好了,如果你还在费力找寻读此书的意义,先看序言。<br>
唯愿公平如大水滚滚,使公义如江河滔滔。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>《病隙随笔》摘录</title>
<published>2022-04-29T00:00:00+00:00</published>
<updated>2022-04-29T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/bing-xi-sui-bi-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/bing-xi-sui-bi-zhai-lu/</id>
<summary type="html"><p>古园寂寥,我求一心安定。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>《美国的反智传统》摘录</title>
<published>2022-04-25T00:00:00+00:00</published>
<updated>2022-04-25T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/mei-guo-de-fan-zhi-chuan-tong-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/mei-guo-de-fan-zhi-chuan-tong-zhai-lu/</id>
<content type="html" xml:base="https://www.edwardzcn.me/blog/reading/mei-guo-de-fan-zhi-chuan-tong-zhai-lu/"><span id="continue-reading"></span><h2 id="xu-yan">序言</h2>
<blockquote>
<p>“通常的作者会在序言中所做的说明,我用了本书的前两章来完成:解释本书的缘起于目的,以及主要看法。但是在开头要先说清楚的是,我是用‘反智’此一主题贯穿全书来透视美国社会与文化中的若干面向。”</p>
</blockquote>
<p>序言开头颇有“免责声明”的味道,可见作者起了这么个非常容易招致知识分子/反知识分子抨击的题目,非常迫切希望澄清自己写作的目的和看法。看本书前两章,对比其他书籍虽有啰嗦,也得耐着性子读。</p>
<p>下面写在序言末尾的这段话,作者引用了反理性诗人哲学家和诗人拉尔夫·爱默生的话,来阐述自己如何平衡“审视和批评自我”与“担心他人的故意曲解和夸大”。不要脸的贴近一下,回想在自己生活中,我其实也努力摆正这种周期性的自我审视,并且努力使它不被外界评论影响,不因害怕误用而畏惧。</p>
<blockquote>
<p>“但这也可能令外国评论者有机可乘,因为他们经常会故意曲解夸大美国人这种自我批评的特性,来作证他们的既存偏见立场。然而,只因为害怕所做的自我检讨会被扭曲误用就畏缩,却是最糟的选择。因而,在此我要引用诗人拉尔夫·爱默生(Ralph Emerson)的话:‘让我们面对事实。我们美国就是一个肤浅的国家。伟人和伟大的民族不会自我吹嘘或是装傻,而是会诚实地站出来面对生命中地可怕之事。’”</p>
</blockquote>
<h2 id="di-yi-bu-fen-xu-lun">第一部分 绪论</h2>
<h3 id="di-yi-zhang-wo-men-shi-dai-de-fan-zhi-xian-xiang">第一章 我们时代的反智现象</h3>
<blockquote>
<p>P3 “虽然本书主要处理地是美国更早期地历史,但是当时勾起我的写作念头地却是 20 世纪 50 年代地政界及知识界地情况。在那十年间,一个以往很少听到的名词——反智(anti-intellectualism)成了我们全国人在自责和相互谩骂时常用的词汇。以往,人们不尊重思想的态度固然让美国的知识分子为之童心或气馁,但前所未见的是,知识圈外的大批人群怀有同样的忧虑,或者为了就这个问题进行自我批评而不惜发动一场全国性的运动。”</p>
</blockquote>
<p>有关反智的定义。</p>
<blockquote>
<p>P7 “何谓反智?它从来没被清楚地定义过,原因很多,其中一个就是<strong>它的模糊使它在争议中当标签使用时更方便</strong>......在本书中,我没有给它下一个狭窄严谨的定义,因为这样做很不合适。如果强行找出一个在逻辑上合理的定义,则在历史研究上会落于武断,因为这等于在一堆复杂的特质中挑出某一个来代表。正是反智的复杂性本身引起了我的兴趣——这种复杂性包含着有许多交点的不同态度与观念。将反智的这些态度与观念聚集起来的是**对思想生活、对被认为代表思想之人的生活所存有的怨怼与怀疑,和贬低这种生活价值的倾向。**我承认,这个说法很笼统,但如果真的要尝试定义反智,这就是我能想出的最有价值的答案。”</p>
</blockquote>
<blockquote>
<p>P8 “最后,很重要的一点是搞清楚反智与哲学上的反理性主义(anti-rationalism)并不一样,否则会导致严重的误解。如尼采、索雷尔、亨利·柏格森、爱默生、沃尔特·惠特曼与威廉·詹姆斯,或是像威廉·布莱克、D.H.劳伦斯与海明威这些作家,他们的观念可称为反理性主义,但他们不是我在社会或是政治意义上使用‘反智’指的那种人......在本书中,我主要关心的是广泛的社会态度和政治行为,以及中下阶层人士对知识分子的看法,只有偶尔才会触及一些哲学上对智性的立场或理论。”</p>
</blockquote>
<!-- more -->
<p>反智案例,作者列举了很多人士在不同场合对知识、知识分子的抨击,亦包括对传统的教育的不满,不过对于后者在我看来,并不能算“反智”。</p>
<blockquote>
<p>P13 “案例六:右翼的观察家经常批评大学,尤其是著名大学。但就《自由人》的一位作家而言,这种对常春藤大学的偏见似乎只有一个武断的理由,那就是他认为共产主义正在全美的大学中蔓延:</p>
<blockquote>
<p>我们的大学只是为未来训练野蛮人,这些人将会在知识的伪装下,武装着无知与利己的武器,斫伤和摧毁人类文明的遗产。他们不会像乡下的一般百姓那样,拆拆墙就好了;他们只会跟随有知识的人的领导......这些有知识的人会把个人自由从人类思想中清除出去......</p>
<p>你今天送小孩去读大学,就是在为明天制造一个刽子手。想复兴理想主义的话,得去大学外的修道院了。”</p>
</blockquote>
</blockquote>
<p>另外还有本书在稍后部分谈到的福音派传统中的反智倾向,博学而又重视思考的福音派教士讲他们认为,美国式教育正逐渐丢失灵魂的洗涤,并认为这样不完全的教育远比完全没有教育还要糟糕。</p>
<p>摘录了案例十二,下面这段亚瑟·贝斯特的演讲片段被作者认为也是反智的具体案例,但我并不这么认为,我将这段话看作一位颇有思考的教育工作者在教育系统内部的自我反省,内容提及对科学知识的推崇不是教育的唯一目的,也非衡量教育好坏的唯一标准。它重新提出教育的目的是什么这个本质问题以及多样性需求,按照作者的划分我觉得更应该算作知识分子内部的辩论。</p>
<blockquote>
<p>P18 “案例十二:下面这段亚瑟·贝斯特所说的话已经很有名了,但是值得反复提及......</p>
<blockquote>
<p>这些年来我们非常注重阅读、写作与算术能力”</p>
</blockquote>
</blockquote>
<p>其他种种案例不再做摘录,可参阅原书。</p>
<h3 id="di-er-zhang-zhi-shi-bu-shou-huan-ying">第二章 智识不受欢迎</h3>
<p>本章开篇先讨论了一下被广泛支持并推崇的“智力”与作者想要叙述的不被欢迎的“智识”的区别。</p>
<blockquote>
<p>P24 “...一定会惊讶于‘智识’与‘智力’(intelligence)这两种概念之间的明显差别。前者常被用作一种标签,后者则绝对不会。没人会质疑智力的价值,它是一种抽象品质,大家都尊重它......有智力的人总是被大家称赞,而有知识的人有时也会被称赞,特别是当有智识意味着有智力时,但这种人也经常被憎恨或怀疑。人们会说他们不可靠、肤浅、不讲道德、爱和政府作对,但不会对有智力的人抱这样的看法。有时他们甚至会因为一身的智识而被视为愚蠢之人。”</p>
</blockquote>
<p>作者给出的智识和智力的区别,智识指的是头脑批判、创造以及思索的能力。智力可以用于理解、操控、重新安排与调解,智识则令我们检视、沉思、琢磨、理论化、批判与想象。作者认为智力是动物品质,对客观现象做出评估,而智识是人类特有的抽象能力,可以对评估结果做出评估。</p>
<blockquote>
<p>P25 “这样的区分可能太过抽象,但是在美国文化中却常可见到。例如在我们的教育中,遴选和培养智力是很重要的目标,从未被怀疑过;但是对于教育是否应该帮助学生发展智识,人们却多有争辩,而且那些反对在公共教育的大多数领域发展智识的人往往手握大权。”</p>
</blockquote>
<blockquote>
<p>P26 “美国文化里的职业人士——律师、编辑、工程师、医生,还有某些作家与大部分教授——在工作中非常依赖思想,但是并不能说他们就是知识分子......职业人士是靠思想而活,而非为思想而活......脑力劳动阶层与政治或宗教狂热分子都是为了智识工作以外的某种目标干活,前者动用头脑不是为了自由思辨,而是为了某种利益,后者则是沉迷于某种单一的思想不能自拔。”</p>
</blockquote>
<blockquote>
<p>P29 “知识分子作为一个群体时常担当道德先锋的角色,在基本的道德问题为公众意识到之前,预先思考和澄清这些问题......他们之所以复有使命感,是因为他们深信世界应该在一定程度上回应他们的理性能力、他们对正义与秩序的渴望:正是这一信念催生了他们之于人类的价值,赋予了他们为人类惹是生非的能力。”</p>
</blockquote>
<p>知识分子有一种自发性,还有很重要的两种特别态度,玩兴与虔诚。</p>
<p>我觉得文中举麦克斯韦的例子非常能说明“玩兴”:</p>
<blockquote>
<p>P32 “数学家与理论物理学家詹姆斯·克拉克·麦克斯韦对发明电话一事的评论,说明了知识分子对于纯粹实用性事务的看法。人们请他说说对于电话这种新发明的意见,他说之前有消息说美国在研究此物,很难相信这东西真的被发明了。可是他接着说:‘当这个小东西出现时,它的每一个部分我们早都熟知了,只不过是由一个非专业的人把它们拼在了一起。这个东西其貌不扬,让我们很失望,虽然我们发现它真的能通话,但也只能部分抵消这种失落感。’如果‘它所根据的物理原则值得让科学家们花点小时间研究一下’,那么对这种简单发明的失望感或许可以被冲淡些。</p>
</blockquote>
<p>回顾历史,或许可以将知识分子的玩兴与虔诚看作贵族风格与教士精神在智识作用的遗留产物。</p>
<blockquote>
<p>P33 “玩兴可以说是有闲阶级所留下的生活态度,这种态度在人文研究与需要想象力的领域一向很重要。虔诚则让我们想起知识分子从教士那里继承的遗产:追求真理是崇高的人物。作为他们的继承人,当代知识分子既像贵族一样易受清教主义与平等主义的苛责,也像教士一样易受反教权主义与大众反阶级化的攻击。因此,在一个反教权的民主国家中,知识分子的处境不佳是很容易理解的。”</p>
</blockquote>
<p>麦卡锡对知识分子的追剿</p>
<p>政治上知识分子一向是与右翼人士缠斗不休,不仅限于美国。当代对于知识分子的看法,认为他们是一个阶级、一股独立的社会力量,甚至知识分子这个名词,<strong>都与政治和道德上的自由思想与抗议批判有关</strong>。</p>
<blockquote>
<p>P39 “只要知识分子群体的进步思想与大众寻求改革的愿望相符合,比如在进步时代与新政时,受到极右翼攻讦的机会就小。可是 20 世纪 30 年代时,大部分的知识分子对于共产主义抱以同情,给了右翼分子很好的批评借口。我们应该公正地对待许多反智案例中的一个标志性现实元素。说知识分子的脆弱已经为右翼宣传大规模利用,或是说 20 世纪 30 年代知识分子对共产党的同情被夸大了,再或是说过去最具影响力的知识分子都不是共产党或其同路人,都不公正。这些说法其实是有部分道理的,但是始终不利于知识分子的地方在于一个事实:20 世纪 30 年代,共产主义对于知识分子的吸引力大于对社会其他任何群体的吸引力,而且在一些惊人的案例中,某些信仰共产主义的知识分子背叛了国家。”</p>
</blockquote>
<p>作者强调麦卡锡主义波及到的不仅仅是当初那些支持共产主义的美国共产党人和同路人这些知识分子。用他的话说是,“对作为理论家的知识分子的不满,其实远不止于他们同情共产党及其同党的职责而已。”</p>
<blockquote>
<p>P40 “对他们(麦卡锡的忠诚追随者)来说,麦卡锡指控的人层出不穷是好事,因为这样一来怀疑之网就会扩大,牵涉那些已经不是共产党甚至从来都不是共产党的人;他们乐见他的霸凌迫害,因为这样可以满足他们复仇的心理,使那些因新政而志得意满的知识分子身败名裂。”</p>
</blockquote>
<p>作者梳理这种“仇恨”来自右翼人士自一战始,美国抛弃了原有的大陆孤立主义、乡村社会、新教信仰与繁荣的工业资本主义,被他们眼中的知识分子、都市美国人拥簇着闯进 20 世纪新浪潮。传统,传统丢失了。</p>
<blockquote>
<p>P42 “首先是世界主义与怀疑论的出现,然后是美国失去了鼓励地位,军事上不再安全,传统的资本主义土崩瓦解,取而代之的是一个集权的福利国家,最后是为二战、朝鲜战争与冷战付出的沉重代价。因此,在美国的腹地陆续出现了一群内心充满怨怼的人,他们往往在宗教上奉行基要主义,带着本土主义的偏见,外交上支持孤立主义,经济上偏保守,会集成为一股在现代遭逢困境的反对浪潮。”</p>
</blockquote>
<h2 id="di-er-bu-fen-gan-xing-de-xin-yang-fang-shi">第二部分 感性的信仰方式</h2>
<h3 id="di-san-zhang-fu-yin-yun-dong-de-chong-ji">第三章 福音运动的冲击</h3>
</content>
</entry>
<entry xml:lang="en">
<title>《暴力拓扑学》摘录</title>
<published>2022-04-25T00:00:00+00:00</published>
<updated>2022-04-25T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/topology-of-violence-excerpt/"/>
<id>https://www.edwardzcn.me/blog/reading/topology-of-violence-excerpt/</id>
<summary type="html"><h2 id="dao-yan">导言</h2>
<blockquote>
<p>P2 “暴力拓扑学首先要面对暴力的那些宏观表象,它们以排斥的形式登台亮相,即是说,它们在诸如自我与他我、内在与外在、朋友与敌人等两极化的紧张关系中得以发展,其表达方式通常都是表现式的、爆炸式的、群体式的、战争式的。远古的流血牺牲式暴力,嫉妒和复仇女神的神话暴力,统治者的杀戮暴力,刑讯暴力,皆属此类。宏观物理学上的暴力还采取一种更为精密的形式,比如通过语言暴力表现出来。”</p>
</blockquote>
<p>宏观表象往往是以“排斥性暴力”的显现,但书中还提到“扩张性暴力”,脚注里也提及这二者亦译作否定性暴力和肯定性暴力。过于嘈杂的信息和交流压迫,即便不来源于他人的否定和对抗,也是一种暴力,而这种暴力在现代社会愈发变成主流。</p>
<blockquote>
<p>P2 “伤害性语言所具有的暴力同物理(生理)暴力一样,向来以排斥性为基础,因为它具有污蔑性,它损人脸面,降人身份,或者夺人权利。排斥性暴力(negative Gewalt)与扩张性暴力(positive Gelwalt)是不同的,后者源于垃圾语言、过度交流和过多信息,即来自语言、交际和信息的成群积聚.”</p>
</blockquote>
<blockquote>
<p>P3 “今天的社会总是一再抹去他者或陌生人身上的排斥性。全球化进程恰恰加速了边界和差异的消失。排斥性的日益消除却并不等同于暴力的消失,因为除了排斥性暴力,还存在着扩张性暴力。实施扩张性暴力不需要敌对和统治关系。暴力不仅仅是过度的排斥,而且还意味着过度的扩张,也就是扩张性成群,它表现为过度的绩效、过度的生产和过度的交际,过量的关注和过分的积极主动。**扩张性暴力可能比排斥性暴力更为致命,因为它缺乏任何可视性和显见性,而由于其积极扩张,它还摆脱了免疫抵抗。**传染、病菌入侵和渗透这些排斥性暴力的典型特征,如今让位给了梗阻。”</p>
</blockquote>
<blockquote>
<p>P3 “后现代的绩效主体之所以是自由的,因为它不受迫于一个自身之外的统治机关。事实上,它同服从主体一样不自由。外在的胁迫是克服了,可却产生了内在的压力。绩效主体发展出一种抑郁。<strong>暴力一直存在,分毫未减。它只是转移到了内心层面。君权社会里的斩首制度,规训社会里的畸变,绩效社会里的抑郁,都是暴力拓扑学变迁的不同阶段。暴力将会愈益内在化、心理化,并由此隐遁其形。它一再剥除他者或敌人身上的排斥性,变为直指自身。</strong>”</p>
</blockquote>
<h2 id="di-yi-bu-bao-li-de-hong-guan-wu-li-xue">第一部 暴力的宏观物理学</h2>
<h3 id="bao-li-de-tuo-bu-xue">暴力的拓扑学</h3>
<blockquote>
<p>P10 “在血腥的戏剧里,君主的权力化身舞台上剑的权力,角斗表演于是成为帝王崇拜的一个本质组成部分。对杀戮暴力的夸张演绎,宣示了统治者的权力和荣耀......暴力在此毫无遮掩,它明显可见,它毫无羞耻,既不悄寂无声也不公然赤裸,而是意味深长,影响深远。无论在远古文化还是古希腊罗马时代,演绎暴力都是社会交往中一个不可或缺的核心组成部分。”</p>
</blockquote>
<blockquote>
<p>P11 “前线代的君权社会是血亲社会,它的结束令暴力经受了一场拓扑式转变。如今它不再是政治交际和社会交往的一部分,它退回到次交际的、皮下的、毛细的、内在心灵的空间。它从可见转为不可见,从直接转为暗示,从生理转为心理,从战争式的转为居间的,从正面直击转为病毒性渗入。”</p>
</blockquote>
<blockquote>
<p>P14 “后现代的绩效主体不屈从于任何人。它本来就不再是一个屈服顺从的主体。它积极扩张自己,解放自己,成为一个投射物(Project)。这种主体向投射物的转变其实并没有导致暴力的消失。取代外部强迫的,是自诩为自由意志的自我强迫。”</p>
</blockquote>
<p>分析其发展</p>
<blockquote>
<p>P14 “这种发展与资本主义生产关系密不可分。自从生产达到一定的水平,自我剥削就远比受人剥削更有效果,功能更为强大,因为,与自我剥削相伴的是,<strong>感觉自己是自由的</strong>。”</p>
</blockquote>
<h3 id="bao-li-de-kao-gu-xue">暴力的考古学</h3>
<p>弗洛伊德认为死本能会制造出破坏性冲动,勒内·吉拉尔将暴力归因于模仿性对抗。韩举了竞争水和财欲两个例子来驳斥吉拉尔的观点。认为吉拉尔的“模仿性对抗”概念并没有把握暴力的本质。</p>
<blockquote>
<p>P16 “竞争者之所以渴望水,并不是别人也喜欢水。暴力犯罪首先发生在对物的争夺上,这些物并非因为模仿性欲求才有价值,而是因为它们具有一种内在固有的价值。被争夺之物都是能够满足基本需求之物。吉拉尔的模仿理论用在财欲上也是说不通的。我想有钱,并不是因为别人也想有钱,并非模仿的欲求才让钱有了价值。钱是一个特殊的客体,因为它就是价值......模仿首先涉及的是象征层面,比如语言或行为模式,所以并不一定会引发暴力冲突。”</p>
</blockquote>
<p>暴力与宗教</p>
<blockquote>
<p>P18 “暴力很可能是人类第一个宗教体验。”</p>
</blockquote>
<blockquote>
<p>P19 “远古宗教是一种情结,是同(在外向化至神圣高度之后的)暴力彼此互动的结果。献祭就是最为重要的互动形式之一......在远古文化中,暴力扮演了宗教交流的主要媒介。与此同时,人们就在暴力的媒介中同暴力之神交流。一旦暴力被当作神性体验,那么与暴力的关系就迥然不同于从前了。”</p>
</blockquote>
<p>惩罚是对复仇的合理化</p>
<blockquote>
<p>P24 “惩罚是对复仇的合理化,禁止了复仇的雪崩式膨胀,因为那会令复仇变得万劫不复。在远古社会,对暴力做出的唯一可能的反应就是以暴制暴。一个激进的的范式转移将惩罚体系同复仇体系区别开来。前者把暴力变成一种由个人承担的行为。它不再是非人格化的、以暴制暴的事件;它脱离了权力关系,被置于一个罪责关联当中。”</p>
</blockquote>
<blockquote>
<p>P25 “惩罚性暴力(Strafgewalt)放弃了远古复仇中典型的不审而判,不再令暴力逍遥于一切监管之外。审判和定向(Richten und Richtung)彼此决定。惩罚体系遵循的并不是复仇逻辑,而是调解逻辑,而调解逻辑产生于客观的法律关系。就此而言,惩罚体系阻止了暴力肆意蔓延膨胀,因为它不同于复仇体系,它意不在制造暴力,而在预防暴力。”</p>
</blockquote>
<blockquote>
<p>P26 “在现代社会,远古的暴力经济学并没有轻易消失。核军备竞赛遵循的正是远古的暴力经济学。潜在的毁灭力量像曼纳一样越积越多,为的是制造出力大无比和坚不可摧的感觉。从深层心理学层面看,远古时代的信仰——通过积蓄杀戮能力来逃避死亡——仍然奏效。”</p>
</blockquote>
<p>巧合的是资本经济也显现出惊人的相似性,流进对于流血,大量财富聚集类比曼纳的手机。人们试图通过不断印刷钞票来逃避一些事情,比如经济危机。而拥有越多,人们就会有越多妄想,并认为自己掌控了越多能力来对抗死亡。</p>
<blockquote>
<p>P27 “就连资本经济学也显示出同远古暴力经济学的惊人相似,不是制造流血,而是制造流金。在鲜血与金钱之间存在着一种相似的本质。资本的运作方式就像现代曼纳一样,你拥有的越多,就越强大,越坚不可摧,甚至越妄想长生不死。金钱从词源上就已经点明献祭和狂热崇拜之间的关系......于是乎,金钱也好,资本也罢,都成为一种对抗死亡的手段。”</p>
</blockquote>
<p>亚里士多德提示人们,纯然的追求资本应该受到谴责,因为那样做只为求生存,而不求美好生活。</p>
<blockquote>
<p>P29 “资本主义经济学把活下来编程绝对原则,不关心生活是否美好。滋养资本主义经济学的是一种幻象,即资本越多,生机越多,生存能力越大。将生与死蛮横地一刀切开,会为生活本身蒙上一件僵硬的幽灵外套。本该关注如何过上美好生活,却因担心活不下去而患了魔怔,或曰怕死癔病。<strong>把生活简化成生物的、生命机能的过程,让生活本身变得赤裸。</strong>”</p>
</blockquote>
<blockquote>
<p>P30 “一个被怕死癔病笼罩的社会,是一个活死人社会,既不能生,也无法死。弗洛伊德也清楚这种致命的幸存辩证法,所以会用这样一句话为《合乎时代的战争与死亡》一文作结:‘<strong>如果你想生,那么就先面对死。</strong>’”</p>
</blockquote>
</summary>
</entry>
<entry xml:lang="en">
<title>《走吧——给L》北岛</title>
<published>2022-04-19T00:00:00+00:00</published>
<updated>2022-04-19T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/zou-ba-gei-l-bei-dao/"/>
<id>https://www.edwardzcn.me/blog/reading/zou-ba-gei-l-bei-dao/</id>
<summary type="html"><p>走吧,<br>
落叶吹进山谷,<br>
歌声却没有归宿。<br></p>
<p>走吧,<br>
冰上的月光,<br>
已从河床上溢出。<br></p>
<p>走吧,<br>
眼睛望着同一块天空,<br>
心敲击着暮色的鼓。<br></p>
<p>走吧,<br>
我们没有失去记忆,<br>
我们去寻找生命的湖。<br></p>
<p>走吧,<br>
路呵路,<br>
飘满了红罂粟。<br></p>
</summary>
</entry>
<entry xml:lang="en">
<title>《鼠疫》摘录</title>
<published>2022-03-30T00:00:00+00:00</published>
<updated>2022-03-30T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/shu-yi-zhai-lu/"/>
<id>https://www.edwardzcn.me/blog/reading/shu-yi-zhai-lu/</id>
<content type="html" xml:base="https://www.edwardzcn.me/blog/reading/shu-yi-zhai-lu/"><span id="continue-reading"></span><h2 id="yi">一</h2>
<blockquote>
<p>P039 “‘我可知道。我也不需要化验。我有一段时间曾在中国行医,二十几年前,我曾在巴黎见到过几例类似病理。只是当时大家都不敢说出它的真实名称。公众舆论,神圣不可侵犯:不能恐慌,尤其不能恐慌。另外,正如一位同行所说:‘这不可能发生,大家都知道,这种病在西方已经绝迹。’是的,这事大家都知道,只有私人不知道。得了,里厄,您跟我一样清楚这是什么疾病。’</p>
<p>里厄在思考。从诊室的窗口,他望着在远处环抱海湾的悬崖崖肩。天空虽然呈蓝色,但不打明亮,并在下午随着时间的流逝而渐渐暗淡。</p>
<p>‘是的,卡斯泰尔,’里厄说,‘这几乎无法相信。但似乎很像鼠疫。’”</p>
</blockquote>
<h2 id="er">二</h2>
</content>
</entry>
<entry xml:lang="en">
<title>《一个叫欧维的男人决定去死》摘录</title>
<published>2022-03-15T00:00:00+00:00</published>
<updated>2022-03-15T00:00:00+00:00</updated>
<author>
<name>
edwardzcn-decade
</name>
</author>
<link rel="alternate" type="text/html" href="https://www.edwardzcn.me/blog/reading/en-man-som-heter-ove-excerpt/"/>
<id>https://www.edwardzcn.me/blog/reading/en-man-som-heter-ove-excerpt/</id>
<summary type="html"><p>生命会是彩色的。</p>
</summary>
</entry>
<entry xml:lang="en">
<title>《局外人》摘录</title>