-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
1429 lines (939 loc) · 114 KB
/
index.html
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
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<!--[if lt IE 9]>
<style>body {display: none; background: none !important} </style>
<meta http-equiv="Refresh" Content="0; url=//outdatedbrowser.com/" />
<![endif]-->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="format-detection" content="telephone=no" />
<meta name="author" content="MoRong" />
<meta name="description" content="学习是一件终身的事">
<meta property="og:type" content="website">
<meta property="og:title" content="默容 - MoRong">
<meta property="og:url" content="http://morongs.github.io/index.html">
<meta property="og:site_name" content="默容 - MoRong">
<meta property="og:description" content="学习是一件终身的事">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="默容 - MoRong">
<meta name="twitter:description" content="学习是一件终身的事">
<link rel="apple-touch-icon" href= "/apple-touch-icon.png">
<link rel="alternate" href="/atom.xml" title="默容 - MoRong" type="application/atom+xml">
<link rel="shortcut icon" href="/favicon.ico">
<link href="//cdn.bootcss.com/animate.css/3.5.1/animate.min.css" rel="stylesheet">
<link href="//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.css" rel="stylesheet">
<script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script>
<link href="//cdn.bootcss.com/pace/1.0.2/themes/blue/pace-theme-minimal.css" rel="stylesheet">
<link rel="stylesheet" href="/css/style.css">
<style> .article { opacity: 0;} </style>
<link href="//cdn.bootcss.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet">
<title>默容 - MoRong</title>
<script src="//cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
<script src="//cdn.bootcss.com/clipboard.js/1.5.10/clipboard.min.js"></script>
<script>
var yiliaConfig = {
fancybox: true,
animate: true,
isHome: true,
isPost: false,
isArchive: false,
isTag: false,
isCategory: false,
fancybox_js: "//cdn.bootcss.com/fancybox/2.1.5/jquery.fancybox.min.js",
scrollreveal: "//cdn.bootcss.com/scrollReveal.js/3.1.4/scrollreveal.min.js",
search: undefined
}
</script>
<script> yiliaConfig.jquery_ui = [false]; </script>
<script> yiliaConfig.rootUrl = "\/";</script>
</head>
<body>
<div id="container">
<div class="left-col">
<div class="overlay"></div>
<div class="intrude-less">
<header id="header" class="inner">
<a href="/" class="profilepic">
<img src="/img/avatar.jpg" class="animated zoomIn">
</a>
<hgroup>
<h1 class="header-author"><a href="/">MoRong</a></h1>
</hgroup>
<p class="header-subtitle">做一件有意义的事</p>
<div id="switch-btn" class="switch-btn">
<div class="icon">
<div class="icon-ctn">
<div class="icon-wrap icon-house" data-idx="0">
<div class="birdhouse"></div>
<div class="birdhouse_holes"></div>
</div>
<div class="icon-wrap icon-ribbon hide" data-idx="1">
<div class="ribbon"></div>
</div>
<div class="icon-wrap icon-me hide" data-idx="3">
<div class="user"></div>
<div class="shoulder"></div>
</div>
</div>
</div>
<div class="tips-box hide">
<div class="tips-arrow"></div>
<ul class="tips-inner">
<li>菜单</li>
<li>标签</li>
<li>关于我</li>
</ul>
</div>
</div>
<div id="switch-area" class="switch-area">
<div class="switch-wrap">
<section class="switch-part switch-part1">
<nav class="header-menu">
<ul>
<li><a href="/">主页</a></li>
<li><a href="/archives/">所有文章</a></li>
<li><a href="/categories/life/">生活</a></li>
<li><a href="/categories/swim/">游泳</a></li>
<li><a href="/categories/technology/">技术</a></li>
</ul>
</nav>
<nav class="header-nav">
<ul class="social">
<a class="fa Email" href="mailto:[email protected]" title="Email"></a>
<a class="fa 新浪微博" href="http://weibo.com/u/2789027607" title="新浪微博"></a>
<a class="fa GitHub" href="https://github.com/morongs" title="GitHub"></a>
</ul>
</nav>
</section>
<section class="switch-part switch-part2">
<div class="widget tagcloud" id="js-tagcloud">
<ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/Mac/">Mac</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/ngrok/">ngrok</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/书籍/">书籍</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/伸手党/">伸手党</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/健身/">健身</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/内网映射/">内网映射</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/成长/">成长</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/游泳/">游泳</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/生活/">生活</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/自由泳/">自由泳</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/自证预言/">自证预言</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/蛙泳/">蛙泳</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/运动/">运动</a></li></ul>
</div>
</section>
<section class="switch-part switch-part3">
<div id="js-aboutme">阅读、思考、总结、分享</div>
</section>
</div>
</div>
</header>
</div>
</div>
<div class="mid-col">
<nav id="mobile-nav">
<div class="overlay">
<div class="slider-trigger"></div>
<h1 class="header-author js-mobile-header hide"><a href="/" title="回到主页">MoRong</a></h1>
</div>
<div class="intrude-less">
<header id="header" class="inner">
<a href="/" class="profilepic">
<img src="/img/avatar.jpg" class="animated zoomIn">
</a>
<hgroup>
<h1 class="header-author"><a href="/" title="回到主页">MoRong</a></h1>
</hgroup>
<p class="header-subtitle">做一件有意义的事</p>
<nav class="header-menu">
<ul>
<li><a href="/">主页</a></li>
<li><a href="/archives/">所有文章</a></li>
<li><a href="/categories/life/">生活</a></li>
<li><a href="/categories/swim/">游泳</a></li>
<li><a href="/categories/technology/">技术</a></li>
<div class="clearfix"></div>
</ul>
</nav>
<nav class="header-nav">
<ul class="social">
<a class="fa Email" target="_blank" href="mailto:[email protected]" title="Email"></a>
<a class="fa 新浪微博" target="_blank" href="http://weibo.com/u/2789027607" title="新浪微博"></a>
<a class="fa GitHub" target="_blank" href="https://github.com/morongs" title="GitHub"></a>
</ul>
</nav>
</header>
</div>
<link class="menu-list" tags="标签" friends="友情链接" about="关于我"/>
</nav>
<div class="body-wrap">
<article id="post-dajian-ngrok" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/12/28/dajian-ngrok/" class="article-date">
<time datetime="2016-12-28T08:07:56.000Z" itemprop="datePublished">2016-12-28</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/12/28/dajian-ngrok/">从零教你搭建ngrok服务,解决外网调试本地站点</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>官网地址:<a href="https://ngrok.com/" target="_blank" rel="external">https://ngrok.com/</a></p>
<p><strong>什么是ngrok呢?ngrok是一个反向代理,它能够让你本地的web服务或tcp服务通过公共的端口和外部建立一个安全的通道,使得外网可以访问本地的计算机服务。</strong> 也就是说,我们提供的服务(比如web站点)无需搭建在外部服务器,只要通过ngrok把站点映射出去,别人即可直接访问到我们的服务。</p>
<p>有做过微信公众号开发的人,对它应该不陌生。在微信公众号开发中,因为用户跟微信公众号产生的交互行为,微信会把用户的相关信息推送到我们自己的服务器,而这个推送的前提是微信能够访问到我们的服务,如果服务在本地,那微信当然无法推送给我们,这使得开发功能的时候调试相当麻烦。幸好有ngrok这个工具,我们可以使用ngrok把本地站点映射出去,解决微信推送给我们的用户信息等消息进行实时本地调试。</p>
<p>很不巧的是,目前国内访问该网站提供的服务相当不稳定,经常连接不上,出于什么原因,你懂得。虽然国内有不少第三方的ngrok服务提供,如natapp、花生壳,但不敢确定它们的稳定性。而QQ浏览器其实也有提供这样的服务专门用于开发微信公众号,不过太过局限,只能用于微信开发,想要做其他用途就不行了。</p>
<p>好在ngrok是开源的,我们可以去Github上下载它的源码,在自己的外网服务器上搭建这样一个服务。</p>
<p>源码地址:<a href="https://github.com/inconshreveable/ngrok" target="_blank" rel="external">https://github.com/inconshreveable/ngrok</a></p>
<p>下面,我们开始搭建ngrok服务。</p>
<h2 id="一、准备工作"><a href="#一、准备工作" class="headerlink" title="一、准备工作"></a>一、准备工作</h2><p>搭建ngrok服务需要有一天外网服务器及一个域名解析到外网服务器上。</p>
<p>本文基于外网的一台VPS,系统版本为CentOS 6.6的linux服务器搭建ngrok服务。VPS有很多地方可以购买,如阿里云和腾讯云的,当然国内的这些相对比较贵,但速度肯定够快。而我买的是国外“<a href="https://bandwagonhost.com/" target="_blank" rel="external">搬瓦工</a>”的vps,还可以做其他方面需求都使用。</p>
<p>至于域名,在哪里买都一样了,有了域名之后,<strong>建立两个A记录,把域名解析到服务器上,用来关联ngrok服务。</strong></p>
<p>比如我的域名是:morongs.com,那么建立 <strong>ngrok.morongs.com</strong> 和<strong> *.ngrok.morongs.com </strong> 解析到vps服务器上。</p>
<p><img src="/images/ngrok-jiexi.png" alt="解析"></p>
<h2 id="二、搭建ngrok服务"><a href="#二、搭建ngrok服务" class="headerlink" title="二、搭建ngrok服务"></a>二、搭建ngrok服务</h2><h3 id="1-安装go语言环境"><a href="#1-安装go语言环境" class="headerlink" title="1. 安装go语言环境"></a>1. 安装go语言环境</h3><p>ngrok是基于go语言开发的,所以需要先安装go语言开发环境,CentOS可以使用yum安装:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ yum install golang</div></pre></td></tr></table></figure>
<p>如果没有权限,请使用 sudo 安装,安装完成之后,执行 go version 看到如下信息,证明安装成功:<br>go version go1.7.3 linux/amd64</p>
<p>安装好后,需设置go环境变量,在 <code>~/.bash_profile</code> 或 <code>~/.zshrc</code> 文件添加如下代码:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">export GOPATH=$HOME/go</div><div class="line">PATH=$PATH:$HOME/.local/bin:$HOME/bin:$GOPATH/bin</div></pre></td></tr></table></figure>
<p>保存后,重新加载配置文件 <code>source ~/.bash_profile</code><br>执行完成后,<code>echo $GOPATH</code> 可查看go路径,或通过 <code>go env</code> 查看是否配置生效。</p>
<h3 id="2-安装git"><a href="#2-安装git" class="headerlink" title="2. 安装git"></a>2. 安装git</h3><p>git可以通过:<code>yum install git</code> 安装,但我们系统版本默认安装下来的是 1.7.x 版本,这个版本使用的过程中出现一些奇怪的问题,比如在编译ngrokd服务端时,git无法通过https获取到代码内容,如果你没有这种情况可跳过。</p>
<p>如果存在git版本问题,可先通过 <code>yum remove git</code> 移除已有git版本,再通过源码安装编译,具体步骤如下:</p>
<p>1) 安装编译git时需要的包:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel</div><div class="line">$ yum install gcc perl-ExtUtils-MakeMaker</div></pre></td></tr></table></figure>
<p>2) 下载git源码,并解压</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ cd /usr/src</div><div class="line">$ wget https://www.kernel.org/pub/software/scm/git/git-2.5.0.tar.gz</div><div class="line">$ tar xzf git-2.5.0.tar.gz</div></pre></td></tr></table></figure>
<p>3) 编译安装并设置环境变量</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">$ cd git-2.5.0</div><div class="line">$ make prefix=/usr/local/git all</div><div class="line">$ make prefix=/usr/local/git install</div><div class="line">$ echo "export PATH=$PATH:/usr/local/git/bin" >> ~/.bash_profile</div><div class="line">$ source ~/.bash_profile</div></pre></td></tr></table></figure>
<p>4) 查看是否安装成功</p>
<p><code>git --version</code>,返回 git version 2.5.0</p>
<h3 id="3-下载ngrok源码"><a href="#3-下载ngrok源码" class="headerlink" title="3. 下载ngrok源码"></a>3. 下载ngrok源码</h3><p>新建一个目录,并clone一份源码</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ mkdir ~/go/src/github.com/inconshreveable</div><div class="line">$ git clone https://github.com/inconshreveable/ngrok.git</div><div class="line">$ export GOPATH=~/go/src/github.com/inconshreveable/ngrok</div></pre></td></tr></table></figure>
<p>目前最新的ngrok文件已经把googlecode替换成GitHub地址了,如果仍然是googlecode,则把 src/ngrok/log/logger.go 文件中的:<br><code>code.google.com/p/log4go</code> 修改为:<code>github.com/alecthomas/log4go</code></p>
<h3 id="4-生成自签名证书"><a href="#4-生成自签名证书" class="headerlink" title="4. 生成自签名证书"></a>4. 生成自签名证书</h3><p>使用ngrok.com官方服务时,我们使用的是官方的SSL证书。自己建立ngrok服务,需要我们生成自己的证书,并提供携带该证书的ngrok客户端。</p>
<p>证书生成过程需要有自己的一个基础域名,官网随机生成的地址,如:693c358d.ngrok.com,基础域名就是ngrok.com。而在上文中提到的二级域名 ngrok.morongs.com 就是用来作为这次要提供的基础域名。如果你的域名是 abc.com,那么域名基础域名可以设置为 ngrok.abc.com。</p>
<p>以我的基础域名为例(注意替换成自己的域名),生成证书过程如下:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">$ cd ngrok</div><div class="line">$ openssl genrsa -out rootCA.key 2048</div><div class="line">$ openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=ngrok.morongs.com" -days 5000 -out rootCA.pem</div><div class="line">$ openssl genrsa -out device.key 2048</div><div class="line">$ openssl req -new -key device.key -subj "/CN=ngrok.morongs.com" -out device.csr</div><div class="line">$ openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000</div></pre></td></tr></table></figure>
<p>执行完成以上命令后,在ngrok目录下,会新生成6个文件:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div></pre></td><td class="code"><pre><div class="line">-rw-r--r-- 1 mrnick mrnick 997 Dec 18 04:40 device.crt</div><div class="line">-rw-r--r-- 1 mrnick mrnick 903 Dec 18 04:40 device.csr</div><div class="line">-rw-r--r-- 1 mrnick mrnick 1675 Dec 18 04:39 device.key</div><div class="line">-rw-r--r-- 1 mrnick mrnick 1679 Dec 18 04:39 rootCA.key</div><div class="line">-rw-r--r-- 1 mrnick mrnick 1115 Dec 18 04:39 rootCA.pem</div><div class="line">-rw-r--r-- 1 mrnick mrnick 17 Dec 18 04:40 rootCA.srl</div></pre></td></tr></table></figure>
<p>我们在编译可执行文件之前,需要把生成的证书分别替换到 assets/client/tls和assets/server/tls中,这两个目录分别存放着ngrok和ngrokd的默认证书。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ cp rootCA.pem assets/client/tls/ngrokroot.crt</div><div class="line">$ cp device.crt assets/server/tls/snakeoil.crt</div><div class="line">$ cp device.key assets/server/tls/snakeoil.key</div></pre></td></tr></table></figure>
<h3 id="5-编译ngrokd和ngrok"><a href="#5-编译ngrokd和ngrok" class="headerlink" title="5. 编译ngrokd和ngrok"></a>5. 编译ngrokd和ngrok</h3><p>首先需要知道,ngrokd 为服务端的执行文件,ngrok为客户端的执行文件。</p>
<p>接下来我们来编译ngrokd,在ngrok目录下,执行如下命令:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ make release-server</div></pre></td></tr></table></figure>
<p>编译过程需要等待一会,因为需要通过git安装相关依赖包。如果提示没有权限,使用 sudo 命令来安装。</p>
<p>由于客户端的平台版本较多,我们需要交叉编译来选择生成的平台。<br>以windows、arm、linux版本编译,如下:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">$ GOOS=linux GOARCH=amd64 make release-client</div><div class="line">$ GOOS=windows GOARCH=amd64 make release-client</div><div class="line">$ GOOS=linux GOARCH=arm make release-client</div></pre></td></tr></table></figure>
<p>不同平台使用不同的 GOOS 和 GOARCH,GOOS为go编译出来的操作系统 (windows,linux,darwin),GOARCH, 对应的构架 (386,amd64,arm)</p>
<pre><code>Linux 平台 32 位系统:GOOS=linux GOARCH=386
Linux 平台 64 位系统:GOOS=linux GOARCH=amd64
Windows 平台 32 位系统:GOOS=windows GOARCH=386
Windows 平台 64 位系统:GOOS=windows GOARCH=amd64
MAC 平台 32 位系统:GOOS=darwin GOARCH=386
MAC 平台 64 位系统:GOOS=darwin GOARCH=amd64
ARM 平台:GOOS=linux GOARCH=arm
</code></pre><p>通过上面的步骤,将生成所有客户端文件,客户端文件放在对于的文件夹中,如windows 64位的为:windows_amd64,linux客户端在bin目录下的ngrok文件。当然,也可以简单的使用 <code>$ make release-client</code> 进行编译成默认的ngrok客户端文件。</p>
<p>完成之后,可以在服务器上把ngrok客户端打个包,通过scp等工具把它下载到对于的平台。</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ scp [email protected]:/mrnick/go/src/github.com/morongs/ngrok/bin/ngrok /Users/morong/Documents/</div></pre></td></tr></table></figure>
<p>连接成功输入密码下载文件,如果不是默认端口,则使用-P设置端口,如 <code>scp -P xxx user@ip:/path path</code> 连接linux服务器。具体命令参考<a href="https://www.cnblogs.com/ghj1976/archive/2013/04/19/3030159.html" target="_blank" rel="external">scp相关介绍</a></p>
<h3 id="6-启动ngrokd服务器"><a href="#6-启动ngrokd服务器" class="headerlink" title="6. 启动ngrokd服务器"></a>6. 启动ngrokd服务器</h3><p>请将 bin/ngrokd 放入环境变量中,启动命令:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ ngrokd -domain="ngrok.morongs.com" -httpAddr=":8088" -httpsAddr=":8089"</div></pre></td></tr></table></figure>
<p>其中,-domain为你的ngrok服务域名,-httpAddr为http服务端口地址,访问形式为:xxx.ngrok.morongs.com:8088,也可设置为80默认端口,-httpsAddr为https服务,同上。</p>
<p>ngrokd启动后,退出命令行即关闭服务。如果想要在后台运行,则执行:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ nohup ngrokd -domain="ngrok.morongs.com" -httpAddr=":8000" &</div></pre></td></tr></table></figure>
<p>注意末尾需要有 & 号,详细搜索 nohup 了解。<br>关闭服务只需通过:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">$ ps -A # 找到PID,执行关闭</div><div class="line">$ kill xxxid</div></pre></td></tr></table></figure>
<h3 id="7-启动ngrok客户端验证效果"><a href="#7-启动ngrok客户端验证效果" class="headerlink" title="7. 启动ngrok客户端验证效果"></a>7. 启动ngrok客户端验证效果</h3><p>由于在准备工作中,已经把 ngrok.morongs.com 的域名解析到服务器上,接下启动客户端测试是否可用。</p>
<ol>
<li><p>建立ngrok配置文件:ngrok.cfg</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">server_addr: “ngrok.morongs.com:4443"</div><div class="line">trust_host_root_certs: false</div></pre></td></tr></table></figure>
<p>server_addr端口默认4443,可通过ngrokd服务端启动修改端口</p>
</li>
<li><p>运行客户端,暴露本地4000端口站点:</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ ngrok -subdomain demo -config=./config.cfg 4000</div></pre></td></tr></table></figure>
<p>回车后,看到这样一个界面,说明启动成功。</p>
<p><img src="/images/ngrok-qidong.png" alt="启动图"></p>
</li>
</ol>
<h3 id="8-访问页面"><a href="#8-访问页面" class="headerlink" title="8. 访问页面"></a>8. 访问页面</h3><p>浏览器中输入:demo.ngrok.morongs.com,成功访问本地hexo博客4000端口的站点内容:</p>
<p><img src="/images/ngrok-page.png" alt="博客"></p>
<p>浏览器输入:127.0.0.1:4040 查看页面请求情况:</p>
<p><img src="/images/ngrok-xinxi.png" alt="信息"></p>
<p>至此,搭建成功,测试正常。</p>
<h2 id="三、参考资料"><a href="#三、参考资料" class="headerlink" title="三、参考资料"></a>三、参考资料</h2><ol>
<li><a href="https://aotu.io/notes/2016/02/19/ngrok/" target="_blank" rel="external">https://aotu.io/notes/2016/02/19/ngrok/</a></li>
<li><a href="http://studygolang.com/articles/2655" target="_blank" rel="external">http://studygolang.com/articles/2655</a></li>
<li><a href="http://bbear.me/shi-yong-a-li-yun-da-jian-zi-ji-de-ngrokfu-wu/" target="_blank" rel="external">http://bbear.me/shi-yong-a-li-yun-da-jian-zi-ji-de-ngrokfu-wu/</a></li>
<li><a href="https://xicheng412.github.io/2016/09/27/ngrok-config/" target="_blank" rel="external">https://xicheng412.github.io/2016/09/27/ngrok-config/</a></li>
</ol>
<h2 id="四、结语"><a href="#四、结语" class="headerlink" title="四、结语"></a>四、结语</h2><p>ngrok提供的内网映射功能,不单单只是用在微信上,像我们平时的demo演示,也可以通过它让不在同一局域网内的人员能够实时看到我们本地开发项目的情况和进度。<br>要知道,工具存在本身就是为了提高我们的效率,不要因为别人使用什么,我们就用什么,关键在于这个工具能否提高目前的工作效率,如果是,请果断学习使用。</p>
<hr>
<p>感谢阅读,如需转载,请注明出处。作者:默容。</p>
</div>
<div class="article-info article-info-index">
<div class="article-category tagcloud">
<a class="article-category-link" href="/categories/technology/">技术</a>
</div>
<div class="article-tag tagcloud">
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/ngrok/">ngrok</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/内网映射/">内网映射</a></li></ul>
</div>
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-chengzhangjilu" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/11/27/chengzhangjilu/" class="article-date">
<time datetime="2016-11-27T13:39:14.000Z" itemprop="datePublished">2016-11-27</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/11/27/chengzhangjilu/">《通往财富自由之路》专栏投稿</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h1 id="我的三个成长收获"><a href="#我的三个成长收获" class="headerlink" title="我的三个成长收获"></a>我的三个成长收获</h1><p>在《得到APP》上这个专栏上线的第一天就购买订阅了,到今天已经过去了100来天,迟迟没有动手写下这段时间来的变化。我在想,这段时间来是否真的收获了是什么、学到了什么,而不是仅仅为了投稿而意想出并不存在的事情。面对真实的自己很重要,这样才能发现自己目前存在什么问题,才有机会去改进。</p>
<p>这个专栏每周更新的概念都需要实实在在的思考和行动,回顾自己这段时间的变化,虽然看起来很小,但我相信这对于每个敢于做出改变的人来说,从迈出第一步开始就已经是进步了,至少开始行动了。</p>
<p>来说说自己100来天的变化罢。</p>
<h2 id="一、认识到注意力的宝贵"><a href="#一、认识到注意力的宝贵" class="headerlink" title="一、认识到注意力的宝贵"></a>一、认识到注意力的宝贵</h2><p>记得在订阅专栏之前,自己的生活总是被各种信息吸引着,即使自己本身就很少看娱乐八卦新闻,却还是会被朋友圈和微博的短视频、朋友的图文段子等吸引了注意力。有时的热点新闻一出,身边的朋友、同事都在讨论,忍不住想要参与话题的冲动也去各种翻阅查找信息。</p>
<p>订阅了专栏之后,才开始慢慢意识到“注意力”的重要性,才知道这种热点新闻、搞笑视频都是在不断地收割我们的注意力,它们存在的本身是无法给自己带来有价值的信息,无法使自己有所增值。现在每天充斥着大量的无用信息,有娱乐八卦,也有所谓“看法”实际逻辑混乱的文章,稍不注意,这些信息就会进入我们的视线,它们存在本身并不是为了带来信息,而是为了吸引注意力进而转成话题发布者的流量。</p>
<p>回想之前为了能够和朋友、同事一起讨论热门话题而去翻阅信息,以为能够增加所谓的“谈资”的想法,在意识到问题后的那一瞬间,就像一堵自我围住的高墙一般,怦然倒塌,让自己真正看到真实的世界应该是什么样子的。<strong>有时候,一些概念就像在窗户纸的另一边,没有人帮忙捅破,永远不知道也看不到那一边的样子。直到某一天有人把这个纸张捅破之后,我们才会发现自己之前的世界是多么的糟糕,逻辑观念是多么的混乱。</strong></p>
<p>现在,因为更新了“注意力”这个概念,在发现有收割注意力的情况时,大脑就会触发感应意识到问题,告诉自己要注意警惕了,需要把这些信息过滤掉,于是调动了自己的行为,关闭了这些信息。这就像是在大脑安装了一个过滤器一样,通过这个过滤器把这些专门收割注意力的信息过滤在外部,而规则是通过自己的思考判断形成的。</p>
<p>这也是元认知能力在起作用,一个“注意力”的概念进入我们的大脑后,大脑就开始对这个概念相关的信息有所察觉。自己能够去思考这些信息是否对自己有益,如果没有或者发现干脆是在收割注意力,大脑就能意识到问题并立即处理掉。而发现一个有用的知识,大脑会对有用的信息更加专注,注意力高度集中。</p>
<p>这是个有趣的过程,也是之前从未体会到的过程,使得自己做的事情更有价值,对自己的成长更有帮助。</p>
<h2 id="二、减少了抱怨的声音"><a href="#二、减少了抱怨的声音" class="headerlink" title="二、减少了抱怨的声音"></a>二、减少了抱怨的声音</h2><p>我总是以为自己的抱怨很少,在读到“最应该戒掉的恶习–抱怨”时,依然想不出自己有抱怨什么。可恰恰就是反复读了这篇文章后,大脑对它的存在有了意识,竟然真的发现了自己在某些地方的抱怨声。</p>
<p>其实仔细回想的自己生活、工作的场景,就会发现抱怨无数不在。因为合租卫生情况不好抱怨几句室友的话;因为工作要下班了,却临时紧急任务需要马上处理抱怨几句发需求的人等等。它的出现非常的自然,自然到随口说出,自己竟然没有发现。</p>
<p>更新“抱怨”这个概念之前,我属于在这个“抱怨的大坑”中的人,出现抱怨的情况却丝毫不自知;更新“抱怨”这个概念之后,开始对抱怨有所防范,能够在要抱怨之前,大脑识别到,弹出一个弹出框提示自己要注意了,必须马上停止抱怨,进而真的影响自己的行为,停止了抱怨。</p>
<p>实际上,在知道之后就会明白抱怨并不能解决任何事情,说得再多还是需要自己亲自动手去处理,这些都不会自动就好。嘴里嘀咕抱怨生活环境卫生差,还是需要动手处理才能使室内环境清新干净;任务紧急需要加班,也不会因为抱怨几句工作量就减少,始终需要行动去处理解决问题。这些抱怨说到底只是说出来图个内心“舒服”,却在无形之中让自己成为一个满身“负能量”的人。</p>
<p>一个改变是,<strong>当“元认知能力”的概念进入大脑后,发现自己所做的事情都调用这个能力去思考是这样做是否是正确的,如果不正确应该怎么做?这样的能力影响着自己,能够去发现“抱怨”要发生了,去思考“抱怨”带来的问题,从而做出更加正确的选择(停止抱怨)。</strong> 这虽然不是一个立刻就能做到的事,但能够发现它的存在就有机会改正(发现不到问题才是最可怕的),实际也证明这段时间来,抱怨少了很多。</p>
<h2 id="三、持续做好一件事"><a href="#三、持续做好一件事" class="headerlink" title="三、持续做好一件事"></a>三、持续做好一件事</h2><p>没接触这个栏目之前,“三分钟热度”这个词在我身上就是一个活生生的例子。在那个阶段,我觉得一个知识、技能有趣就会去学习,花不少时间和精力琢磨,可过了一段时间后,又会因为各种原因或者说是借口,最终放弃了。这说到底还是因为自己对这个知识或技能不是有真正的需求,不足以让我即使在遇到困难的问题时也能够耐心的学下去。</p>
<p>接触这个专栏后,不断地更新概念让我重新思考自己正在做的事,反思后应该做点对自身有益的事情。于是在九月末的时候,我下了一个决定,进入健身房开始健身锻炼身体,又因为“健身安全第一”的概念存在大脑中,自己花了将近一万元的费用来买私教课。教练在旁边指导,除了保证自己的安全、动作标准,还会在旁边打气,一次次突破自己以为的极限,也更加不会偷懒找借口。</p>
<p>恰好就在这个时候,专栏更新了提高元认知的能力可以是“刻意练习”,这个概念进入大脑后,我意识到其实在健身的时候,针对某个部位的训练,去感受肌肉的发力就是属于“刻意练习”。我能够有意识去思考自己的思考过程中,对某个动作的理解是否到位,也能够有意识的去控制某个部位的发力,感受到由这个“刻意练习”所带来的肌肉的感觉。</p>
<p>在不知不觉中,元认知能力提高了,也在不知不觉中,“三分钟热度”这个词在我的世界中消失了。这不只是因为健身的影响,也是在不断升级概念中,反思自己问题,改正所带来的影响。有趣的是,在自己<strong>持续把一件事做好时,真的不需要“坚持”这个概念,完全就是那种不去锻炼就难受,不思考升级就会感觉不自在。</strong></p>
<p>现在看来,那些总是持续做好一件事的人,和那些一直健身的人一样,并不是别人想的那样需要坚持,那些人都是因为对这个有兴趣或者是赋予了重大意义,不去做反到更难受的。而我自己也越做越有趣了,没有所谓的“坚持”和“三分钟热度”的概念。</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>其实收获的不止这么多,但这还是需要实实在在去思考,并且行动应用起来才是真正的理解掌握。<strong>关键在于,还是要多关注自己的成长和与自己成长有关的事物,这个思维的转变,能够使得很多之前看似问题的问题都自然而然的不见了。</strong> 就像我之前的注意力被收割、忍不住的抱怨、对待知识或技能的三分钟热度一样,在关注自己的成长后,这些问题都慢慢自动不见了,这是最直接的体会。</p>
<p>嗯,在成长的道路上,一起共勉。</p>
</div>
<div class="article-info article-info-index">
<div class="article-category tagcloud">
<a class="article-category-link" href="/categories/life/">生活</a>
</div>
<div class="article-tag tagcloud">
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/成长/">成长</a></li></ul>
</div>
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-recommend-books" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/11/13/recommend-books/" class="article-date">
<time datetime="2016-11-13T14:24:00.000Z" itemprop="datePublished">2016-11-13</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/11/13/recommend-books/">几本值得反复阅读的书籍</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>推荐书籍一直不是一件讨人喜欢的事,对方可能会有厌倦的表情、不屑的回应,还可能收到“别以为读几本书就能有多了不起”的话。可有时就是会因为书中提及的观点仿佛醍醐灌顶般点醒自己,忍不住内心的激动向身边的朋友推荐。</p>
<p>事实上,当我们没任何成就之前,即使推荐的书籍相当不错,也不会有多少人会认真对待。而在个人有所成就之后,即便自己不说,还是会有人跑过来问:你是如何做到的?哪些书影响着你做到现在的成就?可否推荐推荐?</p>
<p>这是在正常不过的事了,成为能说那话的人至关重要,人都不喜欢说空话的人。</p>
<p>在自己的阅读习惯中,并不在意阅读数量是否足够多,阅读速度是否够快。实际上,我的阅读速度并不快,有时为了搞懂一句话的意思,会在那么一小段的语句中,反复阅读思考许久才能真的理解。</p>
<p>而在这一年中,我个人觉得有这么三本书,是可以反复阅读的。</p>
<h3 id="《学会提问》"><a href="#《学会提问》" class="headerlink" title="《学会提问》"></a>《学会提问》</h3><p><img src="../images/book-xuehuitiwen.jpeg" alt="学会提问"></p>
<p>《学会提问》这本书是对我们思维模式的升级,告诉我们要认真对待每个结论背后支撑它的论证是否足够的说服力。在现在每天大量的新闻媒体发出的观点中,又有多少是可信的,有多少只是为了吸引眼球,有多少是完全瞎掰的、结论完成不成立。</p>
<p>通过这本书,可以学到很多阅读、思考方面的技巧。</p>
<h3 id="《成功,动机与目标》"><a href="#《成功,动机与目标》" class="headerlink" title="《成功,动机与目标》"></a>《成功,动机与目标》</h3><p><img src="../images/book-succeed.jpg" alt="成功,动机与目标"></p>
<p>看到这本书,估计很多人觉得这不会又是所谓的成功学书籍吧。其实不是,这本书从我们如何制定目标,长远的目标,和近期的目标,制定的差别在什么地方,如何运用多维度去思考、调整对待目标的方式,是什么类型的人。</p>
<p>又,书中为了说服我们某个结论之所以成立,来自于大量的实验数据证明,这也是上面提到的书籍所提倡的。</p>
<h3 id="《把时间当作朋友》"><a href="#《把时间当作朋友》" class="headerlink" title="《把时间当作朋友》"></a>《把时间当作朋友》</h3><p><img src="../images/book-time.jpg" alt="把时间当作朋友"></p>
<p>这本书是对我做出改变影响最大的一本,通过大量的篇幅告诉我们要相信一切都靠积累。也是让我明白,没有谁一开始就能够做得足够好,主要做事就会犯错,但每一步的实践,都在慢慢变好。</p>
<hr>
<p>这几本书,都需要去实践,去练习的,并不简单,需要一直调动自己,持续行动才能有所收获。我们看到任何牛人,无一例外都是动手能力极高的,肯为某个观点深入琢磨的人。</p>
<p>再,其实推荐书籍也只是推荐自己认为还不错的书,但这并不一定适合每个人,都要因人而异,喜欢读什么,就去读什么,这里也是做一个记录。</p>
</div>
<div class="article-info article-info-index">
<div class="article-category tagcloud">
<a class="article-category-link" href="/categories/life/">生活</a>
</div>
<div class="article-tag tagcloud">
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/书籍/">书籍</a></li></ul>
</div>
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-zizhengyuyan" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/11/08/zizhengyuyan/" class="article-date">
<time datetime="2016-11-08T13:56:22.000Z" itemprop="datePublished">2016-11-08</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/11/08/zizhengyuyan/">“世界”真的会变成我们所希望看到的样子</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>看到这个标题时,我们第一时间的想法可能是:扯淡吧,这怎么可能呢,我想要赚更多的钱、过上更好的生活,这可从来没有看到过哦。</p>
<p>让我们从另外一个角度看,说这句话的时候,有一个事实是我们容易忽略的:当我们觉得某个技能太难、学不会时,最终的结果往往就是学不会这个技能。这个技能可以是学习英语、学习溜冰、学习游泳,无论哪一个,只要一开始给自己戴上学不会的标签,那么遇到问题时就会自动增加学不会这个标签的粘度,直到自己和这个标签完全分不开,证明给自己看:你看吧,真的学不会。</p>
<p>从这个角度看时,确实是我们希望看到的,最后也真的给我们自己看到了。这是怎么回事呢?其实是<strong>自证预言</strong>在起作用,维基百科对此的解释是:</p>
<blockquote>
<p>自证预言(又称“自我应验预言”),是由美国社会学家罗伯特·金·莫顿提出的一种社会心理学现象,是指人们先入为主的判断,无论其正确与否,都将或多或少的影响到人们的行为,以至于这个判断最后真的实现。</p>
</blockquote>
<p>有人会问:既然这样,那为什么我还是看不到自己希望的,赚更多钱?这需要我们回到自证预言上,上面的解释说到“都将或多或少的影响到人们的行为”,也就是说,当我们希望自己赚到钱时,就得真的影响到自己的行为方式,对此做出一些改变,从而有机会看到希望的样子。</p>
<p>可这很难,没有持续的心,自己感觉没那么重要,那是做不来的,就像很多人说要健身,可开始没几天觉得太累、太忙等,就自动放弃了;而当觉得自己做不来的想法产生时,只要一个借口就够了,事实会证明给自己看,真的做不来。</p>
<p>这也是自证预言有趣之处:我们希望看到好的一面,常常看不到,因为总是半途而废,行动没跟上;而想到坏的一面,真的就这样出现,毕竟坏的一面产生只要自己的行为稍微改变一下就够了,对自己来说毫不费力。</p>
<p>知道了什么是自证预言之后,再来看标题。<strong>标题所说的“世界”,其实指的是我们自己的世界,也就是我们的主观世界。</strong> 对于一件事,即使客观上来看,他人的行为并不是有意为之,但当我们的主观世界中的想法往坏的一面想时,会非常自然地为这个行为附上我们所想象的标签。</p>
<p>是的,这一切都是我们主观世界中的想法,不管这件事是否真的如我们所想,只要我们的想法出现,我们的世界就会开始去寻找,不断地寻找那些可以证明我们想法的行为。</p>
<p>如果你能体会到,当你面对不喜欢的人时,他/她做出的一些行为,总能够过分解读他们这样做的动机是什么,进而取笑或诋毁他们的形象来证明自己的看法,就会理解我们的主观世界是怎样的存在。</p>
<p>当我们的世界开始给不喜欢的人扣上一个标签时,会随着时间的推移,我们会证明给这个人的标签是正确的;当我们的时间开始认为学不会某个技能时,会在练习中开始不断的寻找可以证明学不会的证据。即使以上这些想法都是错误的,但我们的世界会按照我们希望看到的样子展示给我们看。</p>
<p>所以,反过来看,既然我们自己的主观世界是受自己影响,而自己的想法是可以改变的,自证预言也会不断的加深我们的想法。那么其实我们是可以改变自己主观世界看到事物的方式、态度的,进而让“世界”真的给我们看到希望看到的,好的一面的样子。</p>
<p>乐观的人,总能看到乐观的世界;悲观的人,也总能看到悲观的世界、各种的不顺。<strong>一切都在于如何调整自己的主观世界对待事物的方式,让它按照我们希望看到的样子展现给我们。</strong></p>
</div>
<div class="article-info article-info-index">
<div class="article-category tagcloud">
<a class="article-category-link" href="/categories/life/">生活</a>
</div>
<div class="article-tag tagcloud">
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/自证预言/">自证预言</a></li></ul>
</div>
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-jianshen" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/10/10/jianshen/" class="article-date">
<time datetime="2016-10-10T15:37:27.000Z" itemprop="datePublished">2016-10-10</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/10/10/jianshen/">我在健身中学到了什么?</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<h3 id="01"><a href="#01" class="headerlink" title="01"></a>01</h3><p>近段时间锻炼不少,保持每周两次的游泳运动,可如果想把游泳这项运动做得更好,自己就需要提高自身各个部位的训练,让身体的各个部位更加有力,在游泳运动中,能够更好地发挥。</p>
<p>我们看到游泳运动员“菲尔普斯”夺得一块块金牌,不是单单只做游泳训练就可以;看到今年中国女排夺得冠军,也不只是单单练习排球就可以。他们背后,都<strong>离不开力量训练</strong>,需要做很多看似和比赛项目无关,实际却是非常重要的手部、腿部、腰部等训练。因为如果没有这些训练,即使他或她的技术再好,身体也支持不了多久。</p>
<p>知道这个问题后,自己决定开始健身训练,提高自己的体能,也毫不犹豫地请了私教指导。有趣的是,不少人办理了健身卡之后,就自己单独进行训练,始终觉得那笔教练费用太贵,一直不肯单独请教练指导。</p>
<p>学习开车的时候,我们知道需要花钱学习、考驾照,保证自己有技术能够安全地驾驶车辆,毕竟这关乎到人命,也有可能是因为有交警会查是否无证驾驶,才会让那么多人知道要先花钱学习、考试。再来看健身运动,似乎看起来没什么危险,但我们却忽略了,人的身体太复杂,训练的姿势不对,稍不注意就对身体照成伤害,只是这个伤害在短期之内看不到而已。</p>
<h3 id="02"><a href="#02" class="headerlink" title="02"></a>02</h3><p>只有在我们请了健身教练之后,才会知道原来一个小小的细节不注意,就会在长期训练中造成身体伤害;比如,<strong>手腕关节应该与前臂平行,不能过度弯曲。也是在请了教练我们才会知道,训练的时候,腹部应该收紧;训练结束之后,应该给肌肉按摩放松,做拉伸运动等等</strong>。</p>
<p>今天一个教练跟我说,有一些人在训练后不做拉伸运动,不放松肌肉,长期之后,训练的部位确实块头大了,可却是“死肌肉”。就是这块肌肉不能做太大的动作,不灵活,不自如,就像一块粗壮的木头一样。这样训练是没有意义的,要知道健身的目的其实是为了身体健康、提高身体素质,稍不在乎地做训练,只会让自己的身体慢慢出现问题。</p>
<p>我的健身教练也是在一开始就跟我说:<strong>健身永远是安全第一,练不了就不要练,逞强只会起到反作用</strong>。今天就是教练刚好不在旁边,自己想走去跑步机,谁知道跑步机没有关,速度太快根本不知道在动,一脚踩上去就直接摔了下去,受了一点小伤。这种还属于明显的危险,在健身中,还有太多隐藏的危险存在,比如,不顾自己的力量,就随意增大哑铃的重量,一个不小心就伤到身体。</p>
<h3 id="03"><a href="#03" class="headerlink" title="03"></a>03</h3><p><strong>一个好的教练或老师应该擅长使用类比</strong>,懂得如何让学员或学生从自己的已知领域了解到他未知的领域。这也是李笑来老师说的,类比的思考过程大约是:</p>
<blockquote>
<p>X ≈ A</p>
</blockquote>
<ol>
<li>为了解释清楚对方未知的X…</li>
<li>去找一个与X类似、但是对方肯定理解的A</li>
<li>把A解释清楚…</li>
<li>于是X不言自明…</li>
</ol>
<p>看起来有点绕,但其实不难理解。为了让我知道某个知识点,举一个和这个知识点类似的,但我知道的,把它说明清楚,我也就知道了这个未知的知识点是什么意思了。</p>
<p>教练知道我比较擅长游泳运动,于是在我的力量训练中,举了很多健身的力量训练和游泳相似的地方,让我能够更加快速的理解,再慢慢去调整姿势。这是运用了类比的方法,也是在指导中,让学员或学生快速理解的方法。</p>
<p>所以我们如何判别教练或老师的能力,也可以从这方面技能看出来,如果教练或老师无法有效地传达我们目前未知的知识,让我们理解,可能是欠缺了这方面的能力(不排斥个人理解能力弱的情况)。</p>
<p>当然,我的健身教练挺不错,很专业。</p>
<h3 id="04"><a href="#04" class="headerlink" title="04"></a>04</h3><p>我所在的这个程序开发行业,常常是那种一坐就几个小时的,如果还不运动,身体素质就会逐渐降低。目前来看,我们人的寿命可以活得越来越久,现在注重运动健身的人,正在慢慢增多,可还是有不少人选择“放弃运动”或“放弃兴趣爱好”,这是挺无聊的生活。</p>
<p>我常常告诉身边的朋友一定要多运动,因为只有运动了才会发现,原来还可以这样,原来这样身体真的好了很多,原来这样也是对伴侣好,滋滋。。。</p>
<p><strong>爱运动的男生更帅,爱运动的女生更美,多关注自己的身体健康。</strong></p>
<p><strong>如果可能,请个健身教练指导,对我来说,这个真的很划算。</strong></p>
</div>
<div class="article-info article-info-index">
<div class="article-category tagcloud">
<a class="article-category-link" href="/categories/life/">生活</a>
</div>
<div class="article-tag tagcloud">
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/健身/">健身</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/运动/">运动</a></li></ul>
</div>
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-xuexiziyouyong" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/09/15/xuexiziyouyong/" class="article-date">
<time datetime="2016-09-15T06:19:28.000Z" itemprop="datePublished">2016-09-15</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/09/15/xuexiziyouyong/">如何正确有效地学习自由泳</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p><img src="/images/xuexiziyouyong.jpg" alt="如何正确有效地学习自由泳"></p>
<p>印象中还在读初一初二的时候,在我们家乡还有几条清澈的小河,夏天总是跟着朋友一起到河边嬉戏玩水、游泳。在那个年龄还不懂什么泳该怎么游,只知道能游得动就算会了,而“踩水”也是在那个时候学会的,现在想起来,其实那时的“踩水”都是乱七八糟的,那有现在讲究用什么方法踩能够保证头浮在水面。就连我们常说的自由泳,也根本不是什么自由泳。你能想象我们游泳时,腿的动作是蛙泳腿,手是自由泳的手吗?虽然好笑,但那时就是如此享受在戏水中学会游泳,有着许多的乐趣。</p>
<p>在工作之后,为了纠正错误的泳姿,从自由泳的基础动作开始练起,也确实花了不少的时间。直到现在,自由泳连续1000米已没问题,所以写下这遍文章,希望能够对想学自由泳的人有所帮助。</p>
<p><strong>(以下内容,请保证个人的安全下情况下进行练习)</strong></p>
<h2 id="自由泳的一些误区"><a href="#自由泳的一些误区" class="headerlink" title="自由泳的一些误区"></a>自由泳的一些误区</h2><p>很多泳姿,大多数人都说自己会游但是不会控制呼吸,而其实在蛙泳上,不会呼吸很多情况是直接憋气游,这样是在靠浮力的作用把自己浮在水面上,不能算会游。对于蛙泳和自由泳,头在一直在水面上,至少还能什么时候想吸气呼气都可以,游一段距离还是可行的,只不过因为头一直在水面上,增加了游泳时的阻力,距离也不会太长,这样耗费的体力更多,还很可能因为头部一直在水面上,呼吸节奏也不懂得控制。</p>
<p>游泳本身是一项全身运动,<strong>哪个部位的动作不熟悉,就应该针对那个部位进行单独训练,不要以为一起练就可以了</strong>。要知道,任何一个运动员,即使他们的比赛成绩很好,也是需要单独对某个部位的动作训练,比如单独练习腿部打水。我们可能还不知道,<strong>每个运动都需要进行力量训练</strong>,不论是游泳还是篮球、排球,想要在这项运动上发挥更好的成绩,就必须对手臂、腿部、腰部等做练习,比如俯卧撑、仰卧起坐、深蹲等等。都在为了游泳中的每一个划水更有力,篮球上的每一次带球更敏捷。</p>
<p>在YouTube上,一部《<a href="https://www.youtube.com/watch?v=DDlyNFHpT_Q" target="_blank" rel="external">菲尔普斯教练的自由式教学影片</a>》的教学质量相当高,其中示范游泳的正是本届奥运会累计获得第23枚金牌的菲尔普斯本人。跟着奥运冠军学的好处当然是能够保证我们的泳姿正确,这对想要学习和提高游泳技能来说无比重要。我们<strong>常常不太重视正确的方法</strong>,这会导致在学习的过程中,陷入无数次本可以避免的陷阱,正如我以前错误的泳姿需要后来大量的时间改进。</p>
<p>这个视频中,菲尔普斯的教练鲍伯-鲍曼一开头就说:<strong>自由泳是所有泳姿的基础</strong>,对此,你要做很多的训练,它是新手学习的第一种泳姿…。当然,我们知道,自由泳的难度比蛙泳高出很多,对于新手(零基础)的学习曲线可能比较漫长。所有,对于成人想学习游泳,通常会优先推荐学习蛙泳,毕竟能够在较短时间内看到效果,不然看到太久就会有想要放弃的;而既然自由泳是所有泳姿的基础,那么我们也应该学习,或者可以的话,在一开始学游泳的时候就学习自由泳,它将为你以后再学习仰泳、蝶泳打下更好的基础。</p>
<p>还有的是,练习过程中,耳朵进水是正常的,呛水也是正常的。如果有人告诉你,他学习游泳都没有呛到水,那应该多半是不会游,或者一直待在“舒适区”,没有进一步提高自己的技能。<strong>没有谁学习游泳不呛水的</strong>,自由泳侧身呼吸更是容易呛到水,这是一个必须经过的过程,谁都是这么走来,所以不要被其它人误导,自己呛到水就觉得太笨学不会(不要有这种想法)。</p>
<p>那么,自由泳应该如何学习,如何正确有效的学习呢?下面将对每个部位的动作进行分解,从头开始学。</p>
<h2 id="自由泳动作分解"><a href="#自由泳动作分解" class="headerlink" title="自由泳动作分解"></a>自由泳动作分解</h2><p>每个泳姿,都需要对单独部位的训练,即使像我们这些能够轻松地游完1000米,也是如此。哪个部位做得不好,都可以回过头来,继续对这些基础做练习,反复练习。</p>
<h3 id="腿部动作(打水)"><a href="#腿部动作(打水)" class="headerlink" title="腿部动作(打水)"></a>腿部动作(打水)</h3><p>腿部的动作,在自由泳中,起到非常重要的作用,我们看到,在短距离的自由泳比赛中,选手们都是的腿部动作都很快,而在长距离中,则保持一个较少次数打水的频率。这是因为腿部的动作非常消耗体力,为了储存更多体力,选手在会根据赛程调整打水的节奏,它除了能够给我们带来速度上的提升,还保证游泳的过程中保持身体的平衡。这也是自由泳必须花很多时间练习的一个原因。</p>
<p>回到主题,新手练习腿部动作,可以先在地面上(最好有高低,方便腿部上下打水练习)平躺着练习,也可以在泳池边上,上半身在岸上,下半身在水里。腿部动作,简单来说就是:</p>
<blockquote>
<p>大腿带动小腿,两腿上下拍打水</p>
</blockquote>
<p>怎么一个拍打法?有新手在练习时,腿部竟然是绷直打水,就好像腿部用支架固定住,然后上下拍打,这是错误的。</p>
<p>首先,我们要知道,<strong>腿部动作打水时,腿部是弯曲打水,利用大腿带动小腿,上下运动</strong>。要注意,<strong>脚掌不是跟蛙泳一样勾起来,而是伸直,脚背朝下(也就是池底方向)</strong>,当我们下压时,脚背也就向下打,这个动作的反作用力就使我们向上浮起并产生向前的推进力。你想想,如果是勾脚打水,那么下压时,脚背是向着前方,这就形成了向前的阻力,从而向前的速度被影响;再想想船桨向后划是不是船会向前,同样的,如果脚掌向前打,就会往反方向走,影响游泳时向前的推进力。</p>
<p>知道了腿部的注意要点,我们再来看究竟是怎样大腿带动小腿。开始时,双腿为伸直状态,左腿进入打水状态,大腿开始微微向下,脚部高于膝盖,形成一个弯曲状态,然后小腿开始向下打水,知道大腿和小腿形成一条直线;左边小腿向下打水时,右边大腿开始向上抬,小腿弯曲往上收,继续形成弯曲,弯曲结束,右腿微微大腿向下,小腿向下打水;右腿向下打水的同时,左腿开始向上收,如此反复循环,就是一个打水的过程。</p>
<p>看不懂,没关系,简单点说就是:<strong>一条腿向下打水时,另一条腿就向上收,注意稍微弯曲,这样打水的产生的推力更大,不要直直地上下打水,也不要像往后踢的样子(看起来像是收腿踢腿,确实有人这样)</strong>。其实我们在跑步时,手部随着腿部的运动自然的摇摆,而上下打水时也是一样,会自然的上下打,所以不要感觉很复杂,主要保证不要直直鞭打水,也不要勾起脚就可以了,其它很自然就形成。</p>
<p>再看一下图,加深理解:</p>
<p><img src="/images/ziyouyong-tuibu.jpeg" alt="自由泳腿"></p>
<p>那么用什么练习呢?可以跟上面提到的,半身在岸上,本身在水下练习;也可以手扶着岸边,全身在水下上下打水练习;还可以使用游泳的浮板,手伸直扶着浮板,上下打水练习,这可以设定一个目标,比如通过浮板打水打到泳池的对面(要注意,打水练习以前一定要做好热身运动,不做很容易引起腿部抽筋)。</p>
<p>腿部的练习是基本功,可以反复练习上几百几千次,运动员可是每次练习都要2000或可能还更高的打水次数,所以,多练习。</p>
<h3 id="手部动作(划水)"><a href="#手部动作(划水)" class="headerlink" title="手部动作(划水)"></a>手部动作(划水)</h3><p>自由泳中,产生更快的推进力在于手部,它就像船的船桨一样,通过向后划水产生推进力,力气越大,速度也就越快。为了动作更佳流畅,我们需要对手部每个动作进行分解练习。手部的动作总共为5个:<strong>入水、抱水、划水、出水、空中移臂</strong>,这整套动作是连贯的,分解开来可以更好的理解学习。</p>
<p><strong>入水:</strong> 手臂入水阶段为手掌最先进入水中,再到前臂、上臂,入水后,伸直向前,手掌向下,与身体形成一条直线;这个动作没有产生向前推进力,而是像我们的高铁车头是尖状的,为了减少空气阻力一样,在水中手臂入水后伸直也是在减少一些水的阻力。</p>
<p><strong>抱水:</strong> 抱水顾名思义就像是把水抱回自己的身体这边,这个动作,手肘高于前臂,手掌向后,往回抱水,到手臂接近胸口位置,抱水阶段结束。需要注意的是,手掌处于身体中线位置,而不是到超过身体中线部位或超过身体左右两侧部位。</p>
<p><strong>划水:</strong> 抱水阶段结束随即进入划水阶段,这其实都是一个连贯的过程,划水这个阶段,对自由泳就产生了向前的推进力,且该动作相较前面两个动作速度要快很多,从而产生的向前推进力也就越大。此动作需要速度快些,保持高肘姿势,手掌向后向上,并向该手臂的方向划出,进入出水阶段。</p>
<p><strong>出水:</strong> 身体自然微微转动至出水的手臂肩部水面方向,而水下手臂的肩部偏向水底方向,出水的顺序从肩部到上臂、前臂、手出水,这个动作是连贯的,手臂依次露出水面。</p>
<p><strong>空中移臂:</strong> 空中移臂看似很简单,其实还是有一些人动作错误,采用手臂直直移动,这样在入水是整个手臂拍打下去,产生很大的水花,也没有那么流畅。正确的做法应该是移臂过程中,手肘部位位于最高点,手掌低于手肘,把手掌移动到头部前方,完成移动动作,准备入水,这样在入水时才会优先手掌入水。</p>
<p>分解完手臂动作之后,我们再来看就清晰很多,整个手臂的动作其实都是连贯的,只是为了游得更快更轻松,就需要明白手臂动作的阶段,理解之后再去做练习。我们能够看到,有的人游不了几米就会感觉手臂开始酸了,排去划水时用的力气,就是我们在空中移臂阶段姿势不对的原因。手掌高于手肘,手臂伸直移臂是非常容易有酸感的,再去看那些游泳运动员比赛的视频就能明白,移臂也是基本手肘高于手掌,自然的状态。</p>
<p><img src="/images/ziyouyong-shoubi.jpeg" alt="手部动作"></p>
<p>上图做了很好的示例,<strong>两手交替练习时,一手入水,另一只手则完成抱水阶段,进入划水阶段,此时,入水手臂为伸直状态,以便划水产生的推进力减少阻力</strong>。手臂的练习,可以在岸上,低头看地上,双手伸直模拟水中动作,按照入水、抱水、划水、出水、空中移臂几个动作进行练习。</p>
<p>在岸上多练习几十遍,直到熟悉,再到水中练习,因为在水中练习,头部是在水里,需要和呼吸一起配合。</p>
<h3 id="呼吸技巧"><a href="#呼吸技巧" class="headerlink" title="呼吸技巧"></a>呼吸技巧</h3><p>呼吸技巧,大概是学习游泳最容易被困住的原因了,掌握不好呼吸,即便游泳的速度再快也称不了多久。这像跑步一样,掌握不好呼吸技巧,就无法进行长距离跑步。在各个泳姿中,就<strong>自由泳采用侧边呼吸</strong>,提高了学习的难度,这可让新手学习它时经常呛到水,我在学习时也不例外。</p>
<p>我们需要知道,游泳中,呼吸的节奏是和手臂的动作有关,手臂处于什么阶段时,开始进行吸气,什么阶段时,开始呼气。蛙泳的手臂在内划水时开始上台出水吸气,而<strong>自由泳则是在手臂出水后,身体开始侧身,带动头部出水,空中移臂过程中开始吸气</strong>。对的,你应该注意到我上面说的“身体开始侧身”,这里很多人会直接把头扭向左或右边呼吸,这是一个错误的呼吸方法,影响身体的流线性。</p>
<p>自由泳的正确呼吸方法为:</p>
<blockquote>
<ol>
<li>手臂出水时,身体开始微微侧身,带动头部,不是扭头,</li>
<li>鼻子和嘴巴开始露出水面,由于向前的推进力,身体侧身时,嘴巴旁边会形成一个小小的涡</li>
<li>嘴巴旁边形成的水涡,刚好够我们张嘴吸气(不是用鼻子,鼻子吸气太少)</li>
<li>嘴巴吸完气,开始恢复身体与水面平衡,此时手臂完成空中移臂,开始入水</li>
<li>头部入水后,开始呼气(鼻子嘴巴一起呼出,看个人习惯)</li>
</ol>
</blockquote>
<p>这样就完成了一次呼吸,通常我们练习时会采用左右两侧切换吸气,伴随手臂的动作进行。要注意的是,为了保证身体的流线性,侧边呼吸都是身体带动头部,而不是头部向左或右边扭头,我们练习时,可以在水下练习入水和出水,做练习几遍,待到熟悉之后,再去配合手臂的动作。</p>
<p><img src="/images/ziyouyong-huxi.jpeg" alt="呼吸技巧"></p>
<p>上图中就是呼吸时的动作,可以看到,呼吸时我们的身体会微微的偏向一侧,而嘴巴刚好露出水面进行吸气,手臂则在空中移臂的阶段。在水下练习时,配合手臂一起,找个站得到的地方,站着练习上半身的动作,注意呼吸的节奏。我们可以采用<strong>三次手臂划水一吸气(左右吸气),也可以采用两次手臂划水一次吸气(一次吸气),</strong> 对于新手,需要多在水下练习这个呼吸技巧,同样几十遍都不为过。</p>
<h3 id="全身配合"><a href="#全身配合" class="headerlink" title="全身配合"></a>全身配合</h3><p>很多新手常常在练习上面的动作练习一半就想全身配合一起训练,可是这样的效果非常差,常常找不到感觉,无法理解每个动作的要点。常说的基本功要做足就是这个道理,很多动作变来变去都离不开基本功,基本功熟悉了很多东西就相通了。</p>
<p>全身配合,离不开上面的每个动作的练习,这需要调动我们的肌肉去更好协调,那么全身配合的步骤是怎样的呢?</p>
<blockquote>
<ol>
<li>游进时,头部没入水中,两手臂前伸,腿部保持上下打水</li>
<li>左手开始抱水、划水,右手继续保持前伸状态,左手进入出水阶段身体微微偏向一侧</li>
<li>出水结束,左手进入空中移臂阶段,右手开始抱水阶段</li>
<li>左手入水前伸,右手进入划水阶段,身体开始偏向一侧</li>
<li>右手进入出水阶段,头部、肩部开始露出水面,此时左手依然前伸</li>
<li>右手进入空中移臂阶段,张嘴吸气,左手进入抱水阶段,吸气结束,右手入水,左手抱水阶段结束</li>
<li>右手入水后,手臂前伸,左手进入划水阶段,嘴巴鼻子慢慢呼气,腿部依旧保持上下打水</li>
<li>手臂继续重复以上步骤…</li>
</ol>
</blockquote>
<p><img src="/images/ziyouyong-ph.jpg" alt="自由泳全身配合"></p>
<p>整个过程类似上图,需要我们<strong>花许多时间去练习,直到成为“下意识能力”、成自然。</strong> 很多新手在练习全身配合时,不免会耳朵进水或者头部出水呼吸时呛到水,别担心,这些都很正常,呛水的把动作多练几遍就好,而耳朵进水其实游泳结束后上岸跳几下就好了。</p>
<p>其实自由泳还有讲究一些呼吸、划水、打水的次数,在长距离中,常常使用2:2:1和4:2:1,意思是两次腿部打水配合两次划水一次呼吸和四次腿部打水两次划水一次呼吸;而在短距离中,通常采用6:2:1,就是6次打水,2次划水,1次呼吸。这个节奏都需要非常多的练习才能掌握,这些方法为的是更快的速度和更省力的方式。</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>游泳这项运动,对我们的身体很有帮助,它的运动需要全身的协调,而我们想要提高游泳技能,又需要单独对身体的各个部位进行力量训练,这让我们能够有效的锻炼全身。</p>
<p>我们需要记住几个练习的步骤:</p>
<blockquote>
<ol>
<li>腿部动作练习(大腿带动小腿,两腿上下拍打水)</li>
<li>手部动作练习(入水、抱水、划水、出水、空中移臂)</li>
<li>呼吸方法练习(侧边呼吸,配合手臂动作)</li>
<li>全身配合协调练习</li>
</ol>
</blockquote>
<p>在这些练习中,要熟悉每个动作的要领,全身配合也就会学得更快,而对于游泳,别担心学习时呛到水,每个人都会,这就是进步的过程,最重要的还是多练习几遍几十遍。</p>
<p><strong>学习过程中,我们只要把每个动作熟悉了,保证游泳的姿势正确有效即可,这样的学习方法才快,至于其他提升的(如腿的次数配合手的次数),可在日后继续反复练习。</strong></p>
<hr>
<p>资源推荐:<br><a href="http://www.wikihow.com/" target="_blank" rel="external">wikiHow是个好网站</a>,搜索 <strong>freestyle</strong> 有很棒的教程,图解与视频。</p>
<p>希望此文对你有帮助。</p>
</div>
<div class="article-info article-info-index">
<div class="article-category tagcloud">
<a class="article-category-link" href="/categories/swim/">游泳</a>
</div>
<div class="article-tag tagcloud">
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/游泳/">游泳</a></li><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/自由泳/">自由泳</a></li></ul>
</div>
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-xiquedezhuyili" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/08/21/xiquedezhuyili/" class="article-date">
<time datetime="2016-08-21T12:59:13.000Z" itemprop="datePublished">2016-08-21</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/08/21/xiquedezhuyili/">稀缺的注意力</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p>在今天的互联网下,每隔几天就有一个热点冒出,朋友圈的传播速度之快,轻易之间就被同一条信息刷屏。现在每个人都是一个节点,与其他人相连中获得信息,而信息的质量取决于你周围朋友的质量,或者是朋友的朋友的质量(总会在某个点产生相关联)。</p>
<p>最近这几天,奥运会上的游泳、羽毛球比赛,到今天到排球比赛,都出现了刷屏现象,我们的注意力可以从一个点迅速转移到另外一个点上,从来不会觉得跟不上。而前几天的“王宝强事件”,可谓是沸沸扬扬,甲乙丙丁各方评论指点。但在今天看来,早就被女排夺冠的欢呼声覆盖了。</p>
<p>在此看来,似乎我们的注意力十分廉价,能够轻易的被某个人或某件事“抢走”。可停下来一想,在这个热点过后,我们在此花费的注意力和时间,给我们自己带来了什么帮助?想来应该没有好处,朋友的点赞不能算吧。</p>
<p>不管是你,还是我,常常掉入一个陷阱:<strong>在自身成长没任何帮助的事情上花费大把的注意力和时间。</strong> 追逐热点新闻算一个,对别人生活过多的关注评论也算一个。</p>
<p>其实仔细想想,我们的注意力每天就那么多,关注了这个就无法关注另外的,你可以想象,一个程序员,上班总是在聊天,写出的代码质量如何?注意力的分散,必定会影响到其它方面。不信,试试你工作的时候,不屏蔽新闻,让它不时弹出来看看。</p>
<p>我们的注意力,在工作、学习新知识上,起到非常重要的作用,经常走神的朋友应该明白,每一次的走神,让自己花在一个知识点上的时间都是在累加的。</p>
<p>在我爱好的一项运动上,就是游泳,发现了这样一个有趣的想象:</p>
<blockquote>
<p>新手在学习游泳时,在水中让他们单独练习某个部位的动作,他们练着练着就想全身配合一起做。</p>
</blockquote>
<p>这是我们的注意力跑偏了,其实很多学习者(包括我自己),在学习某些运动的时候,总想着能够快速熟悉上手,不时就想走捷径。但这是一个误区,就像还在学习走路的时候,就想跑起来,站都不稳,跑肯定会摔得很惨。</p>
<p>很多时候我们总会觉得有些动作练习起来非常枯燥,进而把本该专注在这个动作上的注意力转移了。教练的另一个作用就是监督你按照步骤方法一步一步的练习。</p>
<p><strong>注意力如此稀缺,想要提高某些技能,必定需要丢弃对自身成长没用的事情,减少这些事情对我们的影响。</strong></p>
<p><strong>无论是屏蔽没用的热点新闻,还是减少刷微博、朋友圈,都是一个挣扎的过程。</strong> 那句:听了这么多大道理,却依然过不好这一生。其实就是因为没有挣扎过,没有关注过注意力的重要性,<strong>听跟做是两码事</strong>。</p>
<p>多把注意力放在自身的成长上,毕竟那么稀缺。</p>
<p>人生而不同,不该随波逐流(嗯,最后一句真鸡汤,故意的)。</p>
<p>感谢读完。</p>
</div>
<div class="article-info article-info-index">
<div class="article-category tagcloud">
<a class="article-category-link" href="/categories/life/">生活</a>
</div>
<div class="article-tag tagcloud">
<ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/生活/">生活</a></li></ul>
</div>
<div class="clearfix"></div>
</div>
</div>
</article>
<article id="post-wayonglianxi" class="article article-type-post" itemscope itemprop="blogPost">
<div class="article-meta">
<a href="/2016/07/31/wayonglianxi/" class="article-date">
<time datetime="2016-07-31T00:53:56.000Z" itemprop="datePublished">2016-07-31</time>
</a>
</div>
<div class="article-inner">
<input type="hidden" class="isFancy" />
<header class="article-header">
<h1 itemprop="name">
<a class="article-title" href="/2016/07/31/wayonglianxi/">从零开始学蛙泳</a>
</h1>
</header>
<div class="article-entry" itemprop="articleBody">
<p><img src="/images/wayonglianxi.jpg" alt="蛙泳"></p>
<p>如果让我说游泳的好处是什么的话,我首先想到的是有氧运动、全身运动。我们生活在一个非常好的时代,有各种各样的运动器材,各种各样的运动群体,在那个群体中,有许许多多比我们优秀的人可以指导我们,让我们在学习成长中,不再孤独,不再到处碰壁。</p>
<p>在很长的一段时间里,逐渐明白了为什么总有人说要学习游泳,却又丝毫没有作出任何行动。想要学习只是一个想法,而想法本身并没什么用,如同我们想着要学好英语,实际上却从未开始一样,都只会是脑中的遐想。</p>
<p>自己是一个活生生的例子,知道英语的重要性,却始终停留在想要学习的位置上,一步都不肯跨出去。游泳也是如此,<strong>还在门外时,内心无数次想法想要赶紧进去一趟究竟,可是站着门前就差伸出手推开门,这个动作却始终做不出来。</strong></p>
<p>缺的是什么,勇气吗?不一定,在自己学习其他技能的时候,也是会出现这种情况,在舒适区真的特别舒服。即使嘴上重复无数次说要学习,内心总有太多的借口告诉自己先放一放。夏天,学习游泳的热潮不断,但真正想要学习的真不多,太忙、加班的借口太常见。一旦夏天过去了,再想学习的勇气也就没有了。</p>
<p>好消息是,游泳并不难,教练的指导下,1个月的时间基本掌握,有的还用不着1个月。还有一个好消息是,即使夏天过去了,很多游泳馆也是1年四季都开(广东地区是这样),能够继续加强训练,前提是,你喜欢这项运动,寒冷的天气也阻止不了你。</p>
<p>很多不敢学习游泳的人,大多数是因为害怕水,怕呛鼻子,害怕就学不会游泳,学习游泳,游戏就必须克服对水的恐惧。就像小孩子学习走路,就必须克服对摔倒的恐惧,即使摔倒了,父母不扶起来,他们同样能够站起来继续学。</p>
<h2 id="一、克服对水的恐惧"><a href="#一、克服对水的恐惧" class="headerlink" title="一、克服对水的恐惧"></a>一、克服对水的恐惧</h2><p>在我小时侯,喜欢跟老妈去河边,小孩子都特别喜欢玩水,她在洗衣服,我就在一旁玩水。我因为看到一条小鱼想去抓,稍微不注意就掉河里,在河里感觉有只手向我伸来。待到我醒来的时候,已经躺在家里的床上。</p>
<p>有个朋友也是因为类似的经验,再也不敢去游泳了,所谓的“一朝被蛇咬,十年怕井绳”就是如此。直到到现在,我还记得当时的掉进河里那个场景,可奇怪的是,现在就是特别喜欢游泳,碰到水也不会恐惧,克服之后就没什么了。</p>
<p>初学者在学习游泳时,常见的一个现象是在水中时,身体非常的僵硬,即使是站得着的地方,也是如此。为什么会这样?</p>