-
Notifications
You must be signed in to change notification settings - Fork 51
/
topic.txt
2285 lines (2235 loc) · 140 KB
/
topic.txt
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
FlowerWrong=>Can I ask you a question about utun with Potatso-iOS project?zhuhaow=>问吧
FlowerWrong=>https://github.com/shadowsocks/Potatso-iOS/issues/18#issuecomment-229556311
FlowerWrong=>我看了Potatso-iOS 源码整理出来这个图,但发现有些地方走不通。NEPacketTunnelProvider会配置一个http proxy,但是又有utun0。不知道数据到底是怎么走的。
zhuhaow=>没有完全读过他的代码
zhuhaow=>不过我这么猜
zhuhaow=>utun0出来的数据被重新组成TCPflow
zhuhaow=>然后送入proxy中
zhuhaow=>http proxy设置了以后支持http proxy的地方
zhuhaow=>也就是比NSStream更高层的调用
zhuhaow=>都会自动使用代理
zhuhaow=>这样就不会走到utun0去
zhuhaow=>也不是猜
zhuhaow=>只有重新封装成TCP flow后的处理是猜的
zhuhaow=>其他都是一定的
zhuhaow=>顺带一说,他实现的UDP的转发完全是错的,只在某些情况下可用
zhuhaow=>你知道那个全局代理到底改变了什么么
FlowerWrong=>稍等,我画个图
FlowerWrong=>[![iosnet2.png](https://files.gitter.im/zhuhaow/NEKit/9rTB/thumb/iosnet2.png)](https://files.gitter.im/zhuhaow/NEKit/9rTB/iosnet2.png)
zhuhaow=>不是这样的
zhuhaow=>走代理的并不会到tun这一级去啊
zhuhaow=>HTTP这一级就连到代理了
zhuhaow=>你能看到DNS的结果么,google.com是被污染的
zhuhaow=>我不知道他是怎么处理这个的
FlowerWrong=>对
FlowerWrong=>这个dns是有问题的。
zhuhaow=>如果他通过代理连这个IP,自然是连不上的
zhuhaow=>但是通过代理连本机解析出来的IP这样做是不对的,虽然我发现很多人喜欢这样
zhuhaow=>你试试www.google.com可以不可以
zhuhaow=>另外我完全没懂全局模式是在干嘛,是指无视所有规则的意思么
FlowerWrong=>我也没懂。我去看看代码。
zhuhaow=>还有个问题,你试一下,twitter.app可以用么
FlowerWrong=>全局模式 google.com 是可以的
zhuhaow=>我看了一下,他处理了污染的情况
zhuhaow=>但是仅仅是在代理服务器这边
zhuhaow=>如果是tun这边的话,被污染了应该没法连了
FlowerWrong=>[![1.pic.jpg](https://files.gitter.im/zhuhaow/NEKit/OC3C/thumb/1.pic.jpg)](https://files.gitter.im/zhuhaow/NEKit/OC3C/1.pic.jpg)
FlowerWrong=>全局模式,twitter.app报这个错误
FlowerWrong=>没这个地址吧
zhuhaow=>不是,我说的是twitter这个app
FlowerWrong=>。。。抱歉
FlowerWrong=>可以用
zhuhaow=>因为我只知道twitter这个地址是被污染并且是无视代理规则的
zhuhaow=>不是网页访问twitter
FlowerWrong=>twitter app 可以的
FlowerWrong=>刚发了一条twitter
zhuhaow=>嗯,在shadowsocks-libev里面做了
zhuhaow=>虽然不知道是怎么做的
zhuhaow=>你要是不怕麻烦的话
zhuhaow=>去下个Fing
zhuhaow=>然后点第二个tab,进去输google.com看看IP是多少
FlowerWrong=>全局的意思可能是都走代理,即使 baidu.com
zhuhaow=>因为我从来没用过shadowsocks,所以之前我不太搞得清楚他的功能究竟是到了什么样子,我现在大概清楚了
zhuhaow=>其实potatso真的是非常简单
zhuhaow=>他就是包了一下shadowsocks,所有的逻辑都已经做好了,他只是做了个生成配置文件的GUI
FlowerWrong=>ss我知道,我写过客户端。就是转发socks5的请求,加密解密
FlowerWrong=>不是喔
zhuhaow=>不是,我说的是shadowsocks-libev提供的功能
zhuhaow=>其实非常多
FlowerWrong=>https://zh.wikipedia.org/wiki/SOCKS#SOCKS5
zhuhaow=>你说的我都知道
zhuhaow=>但是他还有很多很多配套的东西都打包到shadowsocks-libev里了
zhuhaow=>你如果把fing的结果给我看一下,我应该能发现问题了
FlowerWrong=>fing那个好像没效果,浏览器打开baidu.com,ip显示是代理服务器的。
zhuhaow=>我估计,google.com的解析结果不知道为什么虽然是被污染的,但是却被当成未被污染的了
zhuhaow=>fing在我这可以用啊
FlowerWrong=>[![2.pic.jpg](https://files.gitter.im/zhuhaow/NEKit/Hn4e/thumb/2.pic.jpg)](https://files.gitter.im/zhuhaow/NEKit/Hn4e/2.pic.jpg)
zhuhaow=>google.com.hk呢?
FlowerWrong=>也是一样的
FlowerWrong=>我再去啃啃代码。
FlowerWrong=>过不过tun那里,我的图有问题吗
zhuhaow=>可能是fing不支持cname的原因
```
└────────────────┘
│ TUN │◀───────────────────────────┘
┌────────┴───────┐ │
│ │
│ │
│ │
└─────────▲────────────┘ └────────────────────┘
│ │ │ │
│ Proxy ◀────────────│ │
│ │ │ APP │
┌──────────────────────┐ │ │
┌────────────────────┐
zhuhaow=>```
zhuhaow=>应该是这样的
zhuhaow=>app调用的库支持代理的,访问网络直接走代理
zhuhaow=>不支持的才到tun
zhuhaow=>再去重新装成tcp流走代理
FlowerWrong=>"再去重新装成tcp流走代理" 这个应该不会走配置的那个http代理了吧。走自己本地启动的代理。
zhuhaow=>嗯,这里就是完全由potasto随意控制了
zhuhaow=>会直接发到ss
zhuhaow=>fing无法检测到IP的原因是因为DNS直接就查不到东西,比如fb.com
zhuhaow=>不知道这里具体是怎么处理的
zhuhaow=>但是估计是DNS出了问题
FlowerWrong=>明白了一部分,谢谢。大概可以串联起来了。余下问题应该是potasto怎么处理的dns
zhuhaow=>这库核心就是ShadowPath,下面有Antinat(SOCKS5 proxy),Privoxy(HTTP proxy)和shadowsocks-libev
zhuhaow=>Potatso又加了一个tun2socks来把TCP转为TCP流
zhuhaow=>然后这些东西接收到数据就直接转发给shadowsocks-libev
zhuhaow=>shadowsocks-libev负责处理规则,连接远程服务器等等
zhuhaow=>包括DNS也是shadowsocks-libev处理
FlowerWrong=>dns不是
FlowerWrong=>utun0 -> tun2socks -》Antinat(SOCKS5 proxy) -》shadowsocks-libev
FlowerWrong=>不遵从代理应该是这么走的
zhuhaow=>应该不需要ANtinat
FlowerWrong=>我看的代码,ANtinat 的fd是作为参数传递给tun2socks的
FlowerWrong=>作者应该是为了加自定义http代理功能
FlowerWrong=>utun0 -> tun2socks -》Antinat(SOCKS5 proxy) -》http代理
zhuhaow=>不是,我明白了
zhuhaow=>Antinat应该是为了和ss通信的
zhuhaow=>ss建立了SOCKS5代理
zhuhaow=>好像也不对
zhuhaow=>诶,这个不是重点,反正DNS也不在这些里面
FlowerWrong=>https://github.com/cykor/Surf/blob/master/NE.pdf
FlowerWrong=>这个不知道是谁写的,可靠性也不知道
zhuhaow=>像是一个联手项目,并没有打算真正用的那种
zhuhaow=>基于Apple官方的那个demo改的
FlowerWrong=>那个pdf分析了surge和surf,可能是surf的作者
zhuhaow=>surf是什么
FlowerWrong=>https://itunes.apple.com/cn/app/a.big.t/id1051326718?mt=8
FlowerWrong=>a.big.t
zhuhaow=>有可能这个是他尝试的时候写的,然后就开始认真写闭源的了
FlowerWrong=>😄,可能真是
zhuhaow=>分析的对的,因为我觉得只有这一种实现方式
zhuhaow=>不过给他一画感觉格外复杂
zhuhaow=>好吧,所有的DNS请求都没有被劫持,我完全不知道究竟是怎么回事了
FlowerWrong=>我也是看到没有劫持,只是转发了
zhuhaow=>你在fing里面试试twitter.com,Facebook.com或者其他被污染的地址试试
FlowerWrong=>得到的结果是被污染的
zhuhaow=>哇,这还能通过tun使用……原理上不通啊
FlowerWrong=>确实是被污染的,和我在电脑上host得到的地址一样
FlowerWrong=>ss需要发送域名和端口给他,这域名和端口从哪里来。确定这个应该就可以了
zhuhaow=>如果没有劫持DNS的话连到SOCKS5代理的时候会发给他啊,这个没问题的,问题是重建的TCP流是一个污染过的目标IP
zhuhaow=>根本就没法获取真实域名了
zhuhaow=>surge的处理是这样的,只有返回IP被污染的时候,或者这个域名明确的在某个规则里的时候
zhuhaow=>DNS会返回一个虚假的IP
zhuhaow=>这样就可以反查了
zhuhaow=>但是没劫持的话就无从知道真实域名了
FlowerWrong=>就是建立一个hash,查询域名对应fakeip
zhuhaow=>我有点怀疑Twitter已经不再采用自己的SPDY库而是直接调用系统的NSURLConnection之类的东西了
FlowerWrong=>但potatso好像没有
zhuhaow=>毕竟iOS应该已经支持了
zhuhaow=>这样就会走代理了
zhuhaow=>原来Twitter用的自己的那个CocoaSPDY不支持代理设置
zhuhaow=>自己搞个socket
zhuhaow=>Potatso好像不能关掉packet功能
FlowerWrong=>但如果走tun,发送给ss服务器的domain和端口从哪里来的呢
zhuhaow=>永远不知道,但是如果IP是真实的也不是不能连,虽然我在NEKit是一定要反查出域名的
zhuhaow=>我写的说明你可以看一下https://github.com/zhuhaow/NEKit
FlowerWrong=>https://github.com/zhuhaow/NEKit#dnsserver 嗯,这种比较好理解。
FlowerWrong=>但如果不知道,我发的ip是污染的。那么ss服务器也不能返回的。肯定有什么地方我们没发现
zhuhaow=>我有99%的把握twitter的不知那个版本开始支持代理了
zhuhaow=>这个连接是走代理的,所以污染不污染无所谓了
zhuhaow=>等等,又不确定了
zhuhaow=>好的,我确定了,twitter并没有走tun接口
zhuhaow=>可以用mail.app实验,因为这个是只走SOCKS5代理,而iOS是不能设置SOCKS5代理的
FlowerWrong=>额,那其实这个tun没用是吧
zhuhaow=>获取到的是Unknown,没有连接信息
zhuhaow=>而twitter的连接居然有http请求头
zhuhaow=>他偷懒了,这个tun在ip不被污染的情况下是可以用的
zhuhaow=>当然并不能解释为何google.com上不去
FlowerWrong=>google.com他好像说是match domain的问题,我这边全局后可以上
FlowerWrong=>https://github.com/shadowsocks/Potatso-iOS/commit/8e3a51b75e0e3a65774d81524a15b914457ef7ab
FlowerWrong=>这个commit
zhuhaow=>这里怎么了
FlowerWrong=>google
FlowerWrong=>能上去
zhuhaow=>他把规则放到http这里去了?
FlowerWrong=>我试了下mail.app,好像真有问题
FlowerWrong=>是的
zhuhaow=>奇怪啊。难道tun还要先转成http connect连http代理
zhuhaow=>严格来说规则放http是对的
zhuhaow=>因为没有规定http代理中一个socket收到的多个请求连接的是同一个host
FlowerWrong=>mail.app可以发邮件,代发,我全局开了vpn
FlowerWrong=>不会吧
zhuhaow=>但是chrome和苹果的实现都是保证请求连到同一个host的
zhuhaow=>gmail么?
zhuhaow=>不翻墙也可以上的
FlowerWrong=>苹果自带的mail
zhuhaow=>如果是gmail的imap不用翻墙的
zhuhaow=>你可以ping一下
zhuhaow=>慢一点而已
FlowerWrong=>看了代码,确定tun没有再转发到http
FlowerWrong=>utun0 -> tun2socks -》Antinat(SOCKS5 proxy) -》shadowsocks-libev
FlowerWrong=>这样走的
FlowerWrong=>privoxy http proxy -> shadowsocks-libev
FlowerWrong=>遵从代理是这么走的
zhuhaow=>搞不懂。难道antinat又判断了一遍?
zhuhaow=>或者他觉得tun的东西反正不多干脆都走代理
FlowerWrong=>有什么方法可以测试吗
FlowerWrong=>写个spdy协议的东西?
zhuhaow=>测试什么
zhuhaow=>antinat唯一的作用就是结合tun的
zhuhaow=>ss以socks5代理的形式运行
zhuhaow=>http代理由
zhuhaow=>privoxy翻译为socks5
FlowerWrong=>测试tun的作用,确定作者其实没有用tun。只用了http proxy
zhuhaow=>antinat把裸的tcp流包了一个socks5
FlowerWrong=>tun对于污染的dns没有实际效果
zhuhaow=>应该用了吧。不然那个tun2socks干什么的
zhuhaow=>你如果想试试规则
zhuhaow=>可以设一个不能连的ss服务器
zhuhaow=>再看看mail还能不能用
zhuhaow=>国内的邮箱
FlowerWrong=>我开全局,mail可以用,但浏览器就不能用了
zhuhaow=>感觉好像tun都变直连了
FlowerWrong=>😄
FlowerWrong=>全局mail都还能用,我试了下,本地电脑起ss server,mail没有代理过去
zhuhaow=>那这个tun2socks除了占资源没有任何用
zhuhaow=>而且badvpn这个tun2socks实现的也够复杂的
FlowerWrong=>感觉越来越复杂了
lemon4ex=>来晚了,来晚了,NEKit啥时候弄个完整点的demo,不会用
zhuhaow=>等我有空的时候,其实有一个现成的,但是太乱了
lemon4ex=>@zhuhaow 坐等坐等,如果没空整理,乱点也可以,可以先看着,总比木有好😊
Billllll=>@zhuhaow 我今天小试了一下, NEKit-macOS编译能通过, 能运行, 但是流量没有走代理, 强制指定socks5代理也不能访问, 端口确实是在监听的, 求指导
zhuhaow=>@Billllll 因为NEKit-macOS只是一个framework,自身并不会运行啊
zhuhaow=>@Billllll 如果你说那个demo,那么你需要写个配置文件啊,看下代码和那个配置文件的例子
zhuhaow=>@Billllll 而且demo并没有用到NetworkExtension
Billllll=>@zhuhaow 抱歉, 我表达错了, 我编的是demo, 配置文件也是对的
Billllll=>我先后试过ss和http两种adapter, 都不行~ 是我理解错了什么吗?
zhuhaow=>我不知道。晚上再说吧
Billllll=>@zhuhaow 好的, 多谢
zhuhaow=>@Billllll 话说你是不是配置文件放的地方不对
Billllll=>HOME目录下, 应该没错
zhuhaow=>@all https://github.com/zhuhaow/Specht有个demo
YuQiang=>NEKit-iOS 版本编译没法通过
zhuhaow=>我可以啊。什么错误?
YuQiang=>NEKit/src/RawSocket/GCDTCPSocket.swift:47:47: Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?'? NEKit/src/RawSocket/GCDTCPSocket.swift:213:25: Cannot convert value of type '[NSObject : AnyObject]!' to expected argument type '[String : NSNumber]?'
zhuhaow=>是最新版本的么,git pull一下?
YuQiang=>最新的,重新clone 最新的了
zhuhaow=>应该好了,GCDAsyncSocket更新了新版本,而我的Cartfile没有fix住版本号
YuQiang=>@zhuhaow 好了,多谢!
zhuhaow=>最新版本的NEKit和Specht已经可以用HTTP proxy server了,不需要再用PAC写SOCKS5代理了
zhuhaow=>@all
lemon4ex=>carthage update 后,显示编译失败:
(2 failures) 编译环境,XCode7.2,10.11.1,是swift新语法编译不过么?
CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler
CompileSwift normal arm64 /Users/lemon4ex/Desktop/NEKit/Carthage/Checkouts/CocoaLumberjack/Classes/CocoaLumberjack.swift
lemon4ex=>The following build commands failed:
zhuhaow=>failure 信息是什么?
FlowerWrong=>@zhuhaow 可以画个数据流图吗?到现在都还没搞清楚。
zhuhaow=>@FlowerWrong readme看了么?
FlowerWrong=>@zhuhaow 我是指https://github.com/zhuhaow/Specht 这个应用,其他单独部分的应用都是清楚的,但是specht在mac下怎么工作一直没弄清楚。之前讨论过potatso,我还是一团浆糊。哈哈。
zhuhaow=>@FlowerWrong 今明我会把所有东西整理好发布一下
FlowerWrong=>thx
icodesign=>awesome
icodesign=>@zhuhaow 有在实际的 App 中使用了吗
zhuhaow=>@icodesign Specht算么?就是没人用所以我才写了Specht推广一下NEKit的。
icodesign=>好像用了 CocoaAsyncSocket?
zhuhaow=>嗯
icodesign=>那个东西有内存问题
zhuhaow=>其实我不确定,因为我用CocoaAsyncSocket写的代理已经跑了快两年了
zhuhaow=>现在不知道是不是修复了,又更新了这么多版本
icodesign=>你的代理是 Mac 上的还是 iOS
zhuhaow=>但是考虑到Mac上内存不吃紧,所以没注意过
icodesign=>一开始我也用它,但是稍微一跑就崩
zhuhaow=>我在iOS上也用了一年多
zhuhaow=>不会有问题
zhuhaow=>问题是不是在simulator里?
icodesign=>你用 simulator?
zhuhaow=>不用
icodesign=>simulator 不行吧,跑不起 NE
zhuhaow=>我之前一个非NE的iOS app
zhuhaow=>并不会有问题
icodesign=>那肯定
zhuhaow=>https://github.com/robbiehanson/CocoaAsyncSocket/issues/349
icodesign=>NE 5/6M 内存限制
zhuhaow=>可能是simulator的问题
icodesign=>它的 NSData 缓存太大,而且还改不了
zhuhaow=>这个应该没问题,因为如果是用NE的话,NEKit只有连接本地用CocoaAsyncSocket
icodesign=>这个库的 License 是?
zhuhaow=>BSD3
icodesign=>高峰期会直接跑掉 2M 多内存
zhuhaow=>有可能
zhuhaow=>不过内存不会紧张到这个地步,而且iOS10里面内存限制是10M
icodesign=>最近在打算重构 Potatso,之前各种库用的,导致很不稳定,也不好扩展
icodesign=>没错,iOS 10 就不会了
zhuhaow=>Potatso根本就无法重构啊……
icodesign=>为毛不可以。。。
zhuhaow=>因为所有的东西都搅在一起
icodesign=>所以才要重构
zhuhaow=>很多都是基于现成的硬改的
icodesign=>没错
zhuhaow=>这种太难重构了
icodesign=>直接放弃原来的
zhuhaow=>这就不是重构了……
zhuhaow=>不过我很欢迎你用NEKit重构
icodesign=>但是思想还是一样的
FlowerWrong=>@zhuhaow type: shadowsocks => type: ss in https://github.com/zhuhaow/SpechtLite#configuration-file
zhuhaow=>@FlowerWrong 呃,我蠢了,改过来了,谢谢
YuQiang=>iOS 下测试。 HTTP代理能正常访问,SS代理无法访问,没有任何报错提示
adapter: shadowsocksproxy
- type: all
rule:
auth: false
port: xxxx
host: 120.26.x.x
type: HTTP
- id: httpproxy
password: xxxxxx
port: xxxx
host: 116.251.x.x
method: AES-256-CFB
type: ss
- id: shadowsocksproxy
adapter:
YuQiang=>port: 9090
YuQiang=>另外两个小问题反馈下:1.iOS 下 NETunnelProviderManager.enabled 需要设置为true才能运行VPN,2. SS Adapter 密码为全数字的时候会报错
zhuhaow=>1. 这个就和NEKit无关了;2. 这个明天会修正
zhuhaow=>2已经修正了
zhuhaow=>我最近再改一改SpechtLite然后会写一些测试了,虽然NE不能测,但是其他部分还是可以测一下的
zhuhaow=>ss问题已经修正
YuQiang=>赞!
YuQiang=>更新到0.2.2版本还是有问题,以下是shadowsocks 的日志
2016-08-13 08:46:34 ERROR [Errno 104] Connection reset by peer
2016-08-13 08:46:33 INFO connecting play.itunes.apple.com:443 from 125.120.28.48:51575
2016-08-13 08:46:29 ERROR [Errno 110] Connection timed out
YuQiang=>2016-08-13 08:46:19 INFO connecting www.baidu.com:80 from 125.120.28.48:51573
YuQiang=>carthage update 添加 --no-use-binaries 就正常了,赞!
zhuhaow=>可能是有些编译好的东西实在太古老了
zhuhaow=>更新了readme了
FlowerWrong=>[![屏幕快照 2016-08-13 下午10.41.59.png](https://files.gitter.im/zhuhaow/NEKit/SqAX/thumb/____-2016-08-13-__10.41.59.png)](https://files.gitter.im/zhuhaow/NEKit/SqAX/____-2016-08-13-__10.41.59.png)
FlowerWrong=>启动失败,然后按照https://github.com/zhuhaow/Specht#some-tips 手动plugkit -a了还是不行
FlowerWrong=>有人知道什么原因吗?
zhuhaow=>试试kill neagent
zhuhaow=>另一个可能的yuany@是bundle identifier的问题,比如group app权限不对啊什么的
zhuhaow=>所以在跑起来之前我不建议改任何原本的东西
FlowerWrong=>thx,bundle identifier的问题。可以跑了
FlowerWrong=>@zhuhaow 请问下,为什么`curl https://www.facebook.com` 走TUN(log:Accepted a new socket from IP stack.),而`curl http://www.facebook.com` 直接走的是http代理。
zhuhaow=>因为你没设https_proxy?
FlowerWrong=>@zhuhaow 我蠢了!!!
FlowerWrong=>[![ne.png](https://files.gitter.im/zhuhaow/NEKit/hFFC/thumb/ne.png)](https://files.gitter.im/zhuhaow/NEKit/hFFC/ne.png)
FlowerWrong=>@zhuhaow 这个数据流图理解正确吗?
FlowerWrong=>[![ne.png](https://files.gitter.im/zhuhaow/NEKit/FMt4/thumb/ne.png)](https://files.gitter.im/zhuhaow/NEKit/FMt4/ne.png)
zhuhaow=>后面基本是对的,就是mainProxy其实只用来处理tun2socks的请求,其他的代理根据监听的端口直接到对应的GCDProxyServer上
zhuhaow=>这个接口我可能会改一下,不叫mainProxy,有点令人误解
zhuhaow=>可能把它放到TCPStack里去
FlowerWrong=>@zhuhaow store request log to database?看其他app都有这个功能。
zhuhaow=>我只会提供一些event,这个和NEKit无关
Finb=>拜读了一下源码,这TM加个UI不就是成品么~
zhuhaow=>@Finb 我都写到这份上了居然没人关注你说我多伤心
FlowerWrong=>赶紧上线一个
zhuhaow=>@FlowerWrong 不想折腾,写到我觉得满意还挺花时间的
zhuhaow=>@FlowerWrong 不过我最近event这块写完了如果觉得写个UI也不麻烦有可能会上线
FlowerWrong=>😄,通病,都觉得做ui麻烦
FlowerWrong=>对于我来说,这个产品就差一个log和reject,最好加个icloud同步,还有一个default route,就差不多了,不用特别复杂的ui,也用不上。
bjzhou=>为啥Proxifier代理服务器设成NEKit的ss代理上不了
zhuhaow=>配置文件
bjzhou=>配置文件全走的ss代理,源码调了下走到ShadowsocksAdapter了,但是好像没有数据返回
zhuhaow=>配置文件发我看一下
bjzhou=>等会发你
bjzhou=>proxifier蛮奇怪,他会dns解析之后再发给上级代理
bjzhou=>
zhuhaow=>不要在这里把密码发出来啊……
bjzhou=>...
bjzhou=>忘了。。
zhuhaow=>删了吧
```
adapter: speed
- type: all
rule:
delay: 60
- id: direct
delay: 300
- id: jp2
delay: 300
- id: hk1
adapters:
type: SPEED
- id: speed
password: xxx
method: rc4-md5
port: xxx
host: jp2.bcloud.work
type: ss
- id: jp2
password: xxx
method: rc4-md5
port: xxx
host: hk1.bcloud.work
type: ss
- id: hk1
adapter:
port: 9090
bjzhou=>```
zhuhaow=>你可以用浏览器试试9090的http代理和9091的socks5代理是不是可以用
bjzhou=>试过了直接设置系统代理是没问题的
zhuhaow=>direct不要加delay
zhuhaow=>平白多了60延迟
bjzhou=>不加delay好像会解析到ss去
zhuhaow=>不会啊,delay 0我都用了很久了
bjzhou=>那我试试,没问题就改回来
bjzhou=>不知道proxifier干了啥,Surge+Proxifier是没问题的
bjzhou=>不过因为上级代理收到的不是host,而是Proxifier解析好的ip,所以基于host的规则全是无效的,基于ip的规则可以正常使用
zhuhaow=>应该不会有什么问题才对
zhuhaow=>SpechtLite没有被proxifier吧
zhuhaow=>我从来没用过
bjzhou=>主要是用在terminal和其他不支持系统代理的app
zhuhaow=>试试看能不能在Proxifier里面加rule保证SpechtLite没有被代理
bjzhou=>排除了的
zhuhaow=>他的设置里有Resolve hostnames through proxy可以开,不过工作原理和NEKit的一样,都是fake IP
zhuhaow=>我不知道原因了
zhuhaow=>很难猜啊
zhuhaow=>SpechtLite check update能成功么?
bjzhou=>我在用NEkit源码调。。。研究着玩。。
zhuhaow=>没有调用Network Extension?
bjzhou=>开发者账号过期了,不想续...
zhuhaow=>似乎没有什么问题
zhuhaow=>按理说这两个之间不会有联系才对
zhuhaow=>你这样用NEKit做的事应该和Surge一样的
![pic](http://obxw9raj1.bkt.clouddn.com/c6cab081098469c8eee674b706a6d0bf)
bjzhou=>给SpechtLite加了两个小功能,要不要提个pr
zhuhaow=>这个set as system proxy要求管理员权限么?
FlowerWrong=>要的
来吧,非常欢迎
zhuhaow=>算了,无所谓了
bjzhou=>第一次运行需要,后面就不用了
FlowerWrong=>把shell的也一起设置了吧
bjzhou=>shell只能是copy之后手动粘贴到terminal里吧
zhuhaow=>可以加到rc里,不过我非常不建议
bjzhou=>加到rc还是算了
zhuhaow=>哇,这实现手法好dirty啊,只有用applescript+shell这一招么
bjzhou=>要不然每次都请求管理员权限...
zhuhaow=>……
bjzhou=>方案是抄的原来的ShadowsocksX
FlowerWrong=>Surge for mac应该也是这么干的
zhuhaow=>我可能还会改一下代码,谢谢啦
bjzhou=>![sss](http://obxw9raj1.bkt.clouddn.com/e722f51539338dca053d7b01ee89193c)
bjzhou=>左边是设成系统代理的请求,右边是proxifier发过来的,有啥区别...
bjzhou=>还在纠结proxifier的问题...
zhuhaow=>区别在于proxifier发过来的并不是代理请求
zhuhaow=>他发过来的是直接的请求
zhuhaow=>可以看成是透明代理
zhuhaow=>但是NEKit是不支持透明代理的,proxifier设置里面可以改么?
bjzhou=>应该不能,没找到相关设置
zhuhaow=>说老实话我觉得NEKit应该也是支持透明代理的
zhuhaow=>不知道哪里有问题
zhuhaow=>我会再看一下这个问题
zhuhaow=>24号之后要有半个多月基本不能上网,不知道之前能不能解决这些问题
zhuhaow=>有些东西我好像理解错了
zhuhaow=>proxifier先发送了CONNECT然后自己再发的所有请求
zhuhaow=>那就和透明代理什么没关系了,这样的话应该是不会有问题才对
nie11kun=>我加进来了😄
zhuhaow=>ss那边能看到连接请求么
nie11kun=>这个还没看
nie11kun=>我直接粘贴的配置
nie11kun=>网址也是加了\.com的
nie11kun=>又给我自动修复了😳
zhuhaow=>chacha20这个加密方式我不记得我测试过没有
zhuhaow=>所以有可能是不能用的……
nie11kun=>这样呀
zhuhaow=>所以你要看看ss那边的连接请求看看是什么问题
nie11kun=>那我先试试别的加密方式的ss
zhuhaow=>AES-CFB这个应该是唯一测试过的
zhuhaow=>RC4应该也可以用
zhuhaow=>chacha主要是换了libsodium的缘故,不知道好用不好用
nie11kun=>果然这样,人次
nie11kun=>rc4OK了
zhuhaow=>你私聊我一下给我个chacha20的服务器
zhuhaow=>我有空的时候修复一下
nie11kun=>可以
CoderJin=>[![blob](https://files.gitter.im/zhuhaow/NEKit/rCnK/thumb/blob.png)](https://files.gitter.im/zhuhaow/NEKit/rCnK/blob)
CoderJin=>这个是怎么回事?
CoderJin=>[![blob](https://files.gitter.im/zhuhaow/NEKit/y9Vw/thumb/blob.png)](https://files.gitter.im/zhuhaow/NEKit/y9Vw/blob)
zhuhaow=>ls -la ~/.SpechtLite
test ok !!
CoderJin=>type ss method AES-256-CFB
jostyee=>@zhuhaow 有没有做过SpechtLite和Surge的可以参照?
zhuhaow=>?
jostyee=>特性或者性能上的
jostyee=>我想找个支持HTTP/2的client,刚看了下SpechtLite也没说有
zhuhaow=>并没有,不理解这种功能存在的意义
bjzhou=>建议NEKit里的ProxyServer的address改成可选类型,这样客户端传空的时候局域网内其他设备也可以设置这个代理,不然只有本机才能设代理
zhuhaow=>更新了,但是其实如果用NE的话必须要设地址才行,不然会连不上
zhuhaow=>原因不明
bjzhou=>可以啊
bjzhou=>https://github.com/bjzhou/NEKit/commit/ac063026d2c2f35a675abc1e02a6066255920bf9
bjzhou=>这是我的改动,试了可以用
zhuhaow=>诶,我当时试了很久都不行
zhuhaow=>好吧,反正改了,要用的可以自行选择
YuQiang=>iOS 下 list 的大小受限制,过大的list文件导致VPN无法启动
zhuhaow=>无解,别搞太大的list,有这么大的需求?
YuQiang=>我把gfwlist翻译成list格式了..
zhuhaow=>多大啊
YuQiang=>4464行
zhuhaow=>崩了也正常,即便是字符应该都有150K了吧
zhuhaow=>如果一定要用也可以的,时间换空间,不要预先编译正则表达式,每次匹配的时候现编译
zhuhaow=>可以再结合adblock里面用到的算法
zhuhaow=>感觉是纯折腾,不知道图啥
bjzhou=>拆分成几个list不就好了吗...
YuQiang=>我本意是想用gfwlist 替代Country rule的
zhuhaow=>为何要这样,基本没有几个国外网站的访问是能以正常速度访问的
zhuhaow=>而且我还专门写了SpeedAdapter
zhuhaow=>gfwlist根本没有意义,几乎所有AWS和Cloudflare的网站都无法正常访问,他能涵盖几个
YuQiang=>之前测试 Country rule 不是有奇怪的访问慢的情况么.. 就尝试着用list替代..
zhuhaow=>拆成多少个list都不会减少内存啊
zhuhaow=>说到这个都忘了,我现在就把那个问题修复一下
bjzhou=>其实那个所谓的gfwlist根本不靠谱,一堆乱七八糟的域名,真正用得上的倒不一定有
zhuhaow=>那个也是没办法的,毕竟现在是CDN+云的时代,而封的都是所有的主流供应商
YuQiang=>这倒是. AWS 被封了一堆IP号段
bjzhou=>基于ip段的规则感觉是有必要有的
zhuhaow=>明天到9月10号我都无法更新,只能手机上网
zhuhaow=>其实现在写也写完了,但是懒得写
zhuhaow=>DNS解析的问题在master里面已经修复了
YuQiang=>OK
YuQiang=>master 版本访问速度貌似正常了,不过VPN很容易就crash退出
zhuhaow=>crash log给我看一下
zhuhaow=>master已经支持ip list了
YuQiang=>
lioliy=>Spechtlite支持ssr吗
zhuhaow=>暂不。有广泛需求么?
nie11kun=>ssr可能适合以后可能干扰的情况下用吧
nie11kun=>可以加入一个记录当前流量访问日志功能吗,类似surge的recent request
nie11kun=>感觉有时候方便自己确认需要代理或直连
lioliy=>ssr应该挺有用吧,现在很多站都是ssr的服务端了,并且不容易被检测出来。
zhuhaow=>等我回来了就加ssr
zhuhaow=>现有的NEKit实现这个是不难。不过想要任何GUI功能的可以自己提pull request,我这里优先级很低,而且最近很忙,可以慢慢等
nie11kun=>OK
bjzhou=>访问日志的功能提pull request了,我之前自己做了下,有人需要就提下pr吧,点show log会打开系统控制台,log样式·Request: pd-st.itunes.apple.com, Type: DirectAdapter, Rule: <CountryRule countryCode:CN match:true>·
nie11kun=>顶
nie11kun=>应该可以看到本机的所有流量记录吧
zhuhaow=>谢谢pr,但是NEKit这部分不会merge
zhuhaow=>我的设想是尽量的non-opinionated
zhuhaow=>所以NEKit最终会完全去除对cocoalumberjack的依赖
zhuhaow=>而是采用event的方法
zhuhaow=>如果想要获取现在的log的信息,应当监听adaptersocket的SocketOpened事件
zhuhaow=>方法可以参考DebugOberserver
bjzhou=>ok,有空改改
bjzhou=>改了,不过需要先merge下NEKit,添加了init,不然SpechtLite编不过
zhuhaow=>无论如何现在SpechtLite都编译不过,除非把cartfile改成master,我先不merge了,等我回去发布了NEKit就merge
bjzhou=>对
zhuhaow=>真的有需求?
zhuhaow=>完全无法理解,ssr就是ss加上一堆莫名其妙的头或者毫无意义的传输协议
bjzhou=>一直以为ssr属于邪教,明明没啥用还一堆人相信...
zhuhaow=>我还以为是什么实质的增强,看了一堆什么插件扩展完全没看到任何有用的东西,都快去看源码了,看到一句兼容ss
lioliy=>不懂,但很多都说站支持ssr和推荐使用ssr,ssr服务器用户也挺多的。。。
lioliy=>好像ssr主要就多了个 obfs什么的插件吧https://github.com/breakwa11/shadowsocks-rss/wiki/obfs
lioliy=>反馈一下当前版本SpechtLite(0.2.1)的bug,tetegram挂代理无论(http和socks)连接不上![](http://7xrn7f.com1.z0.glb.clouddn.com/16-8-30/96776815.jpg),全局代理后qq的图片收不到![](http://7xrn7f.com1.z0.glb.clouddn.com/16-8-30/99564710.jpg),Safari好像也有很小网页出现中断。。
zhuhaow=>telegram有可能并不走代理,qq图片我会看一下,你是不是用了speed adapter?
lioliy=>是
zhuhaow=>估计是有点小bug
lioliy=>嗯,测了下不用speed adapter bug仍存在
zhuhaow=>诶,这就难搞了,是不是代理服务器连接不稳定?
maocuu=>lwip 2.0.0 RC2 released , including dual-stack IPv6 support
maocuu=>@zhuhaow NEKit 解决了 DNS 投毒的问题吗?
zhuhaow=>可以自行解决
zhuhaow=>自定义dns解析方式
maocuu=>自定义远程dns?
zhuhaow=>或者利用iprange的规则
zhuhaow=>可以使用任何方式做dns解析啊
zhuhaow=>自定义host,dnscrypt都可与
zhuhaow=>ipv6会在功能稳定以后添加
zhuhaow=>主要是我连调试环境都没有
maocuu=>哦,只研究过 potatso ,他是有个 dns 有毒的列表,本地 dns解析(twitter等)到这些ip就走代理了。 类似 ChinaDNS。 这样的好处就是国内 taobao 能解析到最有的ip
zhuhaow=>NEKit也可以
maocuu=>自定义dns解析方式,就是自己实现一个 DNSResolverProtocol ?
zhuhaow=>是
YuQiang=>SSR就是在头上加了一些混淆,避免SS被识别并屏蔽。
zhuhaow=>并不觉得这样有很大意义,我高度怀疑gfw真的有能力分析数据流,成本太高
bjzhou=>gfw一般只封ss服务器ip,不会分析数据流
YuQiang=>SS 不了解,VPN确实是会识别,之前有个VPS用得好好的,手贱搭建了个PPTP用,没两天IP彻底被封
bjzhou=>只分析明文吧
zhuhaow=>pptp流量特征比较明显吧。尤其是端口号
zhuhaow=>我知道的加密被封只有证书验证的openvpn
zhuhaow=>估计是握手阶段的特征太明显了
YuQiang=>openvpn也是有明显特征的
maocuu=>NEkit Framework 磁盘上的 14.7 MB 太大了,放不到 iOS 上面的 network extension 里面。
YuQiang=>根据大家反馈SS出现不稳定的情况,我猜测是会对一些流量大的IP进行识别分析
YuQiang=>iOS 可以的呀,我已经有成型APP在等待审核了。就是app 有点大,60多M,另外手机耗电有点高。
maocuu=>真的可以吗?我加上 NEKit 后,调试空的 network extension 都不行。
zhuhaow=>app大是swift的原因
zhuhaow=>至于iOS我重来没试过 但是mac上也没10M内存啊
zhuhaow=>耗电我感觉surge也有点高
YuQiang=>估计是其他原因导致调试不成功,可以把保存私信发我,可能我遇到过。
zhuhaow=>不知道为什么
YuQiang=>缓存一些规则结果理论上有可能好一些吗? 比如Country缓存下最近的IP
zhuhaow=>相较整个请求过程这么过程根本就可以忽略
zhuhaow=>没法优化出什么
zhuhaow=>我唯一能想到的是休眠的问题
zhuhaow=>但是我完全想不到什么能够阻止系统休眠的东西
YuQiang=>不理解为什么系统休眠增加功耗
zhuhaow=>不是。iOS系统休眠很频繁,但是如果程序一直阻止休眠的话就会显著耗电了
zhuhaow=>可以参考NEProvider的方法,sleep和wake
zhuhaow=>问题是我想不出需要做什么
zhuhaow=>有一个事情我想是应该做的。就是tcpstack里面的那个timer,我应该是写了一个pause和resume的方法的,但我不记得specht里面我用没用
zhuhaow=>还有就是之前说的,不要处理packet,只用ne设一下系统代理,绝对会显著降低功耗
走packet某些场景下访问卡的问题依旧存在。
YuQiang=>现在就是没走packet ,耗电占比15%左右(手机使用基本不离手)
maocuu=>@zhuhaow 最新版里面 DirectAdapterFactory() 不存在?没办法调用。
zhuhaow=>耗电占比高是必然的。因为所有的网络访问的耗电都算他头上了
zhuhaow=>卡的问题只有我慢慢调了
zhuhaow=>你看看是不是我没标成public?
zhuhaow=>NEKit目前只支持swift
maocuu=>class DirectAdapterFactory: AdapterFactory {}
zhuhaow=>不过卡是网络经常卡住不动还是CPU占用过高?
zhuhaow=>忘了加public了……提个pull request吧
zhuhaow=>我现在改不了代码
nie11kun=>最近在学iOS开发,希望早日可以做贡献😄
maocuu=>@zhuhaow 提交了pull request 不知道对不对,我是 iOS 新手。
zhuhaow=>已merge。谢谢了
maocuu=>'DirectAdapterFactory' cannot be constructed because it has no accessible initializers
zhuhaow=>只有master更新了。还没发布
zhuhaow=>@nie11kun 欢迎
maocuu=>@zhuhaow shadowsocks 好像不支持 ota
zhuhaow=>不支持。这些无关紧要的功能我真是懒得支持
maocuu=>支持 https 代理?
maocuu=> @zhuhaow 'HTTPAuthentication' cannot be constructed because it has no accessible initializers @zhuhaow
zhuhaow=>支持https
zhuhaow=>……又是忘记public了
bjzhou=>NEKit有好多地方该public的没public
zhuhaow=>嗯,因为一开始我想限制一些东西的,所以public的特别小心,很多东西写的时候都没public,之后就忘了
zhuhaow=>而且我自己只用一个Parser去处理配置,所以注意不到
zhuhaow=>我后来已经public了很多东西了。但是还是忘了一些
zhuhaow=>你们发现我没public的告诉我一声
zhuhaow=>默认没有public,太容易忘记了
bjzhou=>之前看好像DNSServer相关的有几个地方没public,具体忘记了
maocuu=>NEKit 是不是无法使用 hangouts 打电话,测试 surge 和 potatso 可以。
zhuhaow=>不觉得这和NEKit有太大关系,很有可能是规则设的不对所以没走代理
zhuhaow=>比如域名污染到国内IP了但是没用IPRange
maocuu=>IPRange 怎么解决dns污染到国内 ip?
zhuhaow=>被污染到的域名只会被解析到那么几个IP,全部设成走代理就可以了
bjzhou=>没开发证书,编出来的版本怎么给别人用。。。
PacketProvider.PacketTunnelProvider.(startTunnelWithOptions ([Swift.String : __ObjC.NSObject]?, completionHandler : (__ObjC.NSError?) -> ()) -> ()).(closure #1) in PacketTunnelProvider.o
"type metadata accessor for NEKit.Port", referenced from:
PacketProvider.PacketTunnelProvider.(startTunnelWithOptions ([Swift.String : __ObjC.NSObject]?, completionHandler : (__ObjC.NSError?) -> ()) -> ()).(closure #1) in PacketTunnelProvider.o
maocuu=>"type metadata accessor for NEKit.GCDHTTPProxyServer", referenced from:
maocuu=>这是啥问题?昨天还好的,今天编译出这个问题,
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: symbol(s) not found for architecture arm64
PacketProvider.PacketTunnelProvider.stopTunnelWithReason (__C.NEProviderStopReason, completionHandler : () -> ()) -> () in PacketTunnelProvider.o
PacketProvider.PacketTunnelProvider.startTunnelWithOptions ([Swift.String : __ObjC.NSObject]?, completionHandler : (__ObjC.NSError?) -> ()) -> () in PacketTunnelProvider.o
maocuu=> "NEKit.RawSocketFactory.TunnelProvider.unsafeMutableAddressor : weak __ObjC.NETunnelProvider?", referenced from:
zhuhaow=>clean一下
maocuu=>carthage clean ?
maocuu=>xcode 菜单 product 下面的 clean。。。 新手。
zhuhaow=>mac的话,除非需要用network extension 不然应该不用证书
bjzhou=>我自己可以用,但发给别人说用不了,不知道怎么弄
zhuhaow=>不要签名试一试
zhuhaow=>对方电脑要允许运行未知开发者的程序
maocuu=>规则改成全部走 ss,也没办法 hangouts 打电话
zhuhaow=>iOS上?
maocuu=>是的
zhuhaow=>那就是hangouts不走代理你又没处理packet?
maocuu=>照抄 Specht 里面的 startTunnelWithOptions
zhuhaow=>enableProcessPacket设成true了?
maocuu=>嗯
zhuhaow=>没有log很难猜啊。Specht的NEKit不是最新版的
maocuu=>估计是 packet 的问题,全局的规则下,telegram 也刷不出来
zhuhaow=>mail可以收邮件么
maocuu=>gmail app可以收,mail没有配置账户
zhuhaow=>gmail肯定可以的。mail并不遵循http代理。如果packet有问题应该就访问不了了。你现在的NEKit什么版本的
maocuu=>最新版本的IKEv2,我自己fork的。
maocuu=>最新版本的NEkit
zhuhaow=>NEKit如何和IKEv2结合
maocuu=>写错了。
zhuhaow=>0.3.0之前有一个很大的DNS的bug
zhuhaow=>最新版已经修了
zhuhaow=>你试试不设置http代理还能不能上网
maocuu=>我自己fork的上面 head 打了个 tag ,拿来用的。
// proxySettings.HTTPSServer = NEProxyServer(address: "127.0.0.1", port: proxyPort)
// proxySettings.HTTPSEnabled = true
// proxySettings.HTTPServer = NEProxyServer(address: "127.0.0.1", port: proxyPort)
maocuu=>注释掉 // proxySettings.HTTPEnabled = true
maocuu=>还可以上网
maocuu=>全局代理工作正常的。
zhuhaow=>我现在无法调试,你可以用DebugObserver看看发生了什么
Sep 1 17:22:45 iPhone6plus PacketProvider[4432] <Warning>: Adapter socket <ShadowsocksAdapter host:149.154.175.100 port:443)> connected to remote wi
Sep 1 17:22:45 iPhone6plus PacketProvider[4432] <Warning>: Adapter socket <ShadowsocksAdapter host:149.154.175.50 port:443)> connected to remote with response <ConnectResponse>.
Sep 1 17:22:45 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4737 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:22:45 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4737 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:22:45 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:149.154.175.50 port: 443)> received request <ConnectRequest host:149.154.175.50 port:443>.
Sep 1 17:22:45 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4735 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:22:45 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4735 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:22:45 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:149.154.175.100 port: 443)> received request <ConnectRequest host:149.154.175.100 port:443>.
Sep 1 17:22:45 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:149.154.175.100 port: 443)> received request <ConnectRequest host:149.154.175.100 port:443>.
Sep 1 17:22:45 iPhone6plus locationd[64] <Notice>: Gesture EnabledForTopClient: 1 (SiriCalled)
Sep 1 17:22:45 iPhone6plus PacketProvider[4432] <Warning>: Adapter socket <ShadowsocksAdapter host:91.108.56.150 port:443)> connected to remote with response <ConnectResponse>.
Sep 1 17:22:44 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4732 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:91.108.56.150 port: 443)> received request <ConnectRequest host:91.108.56.150 port:443>.
Sep 1 17:22:44 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4732 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Adapter socket <ShadowsocksAdapter host:91.108.56.150 port:443)> connected to remote with response <ConnectResponse>.
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Adapter socket <ShadowsocksAdapter host:149.154.175.50 port:443)> connected to remote with response <ConnectResponse>.
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Adapter socket <ShadowsocksAdapter host:91.108.56.150 port:443)> connected to remote with response <ConnectResponse>.
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Adapter socket <ShadowsocksAdapter host:149.154.167.91 port:443)> connected to remote with response <ConnectResponse>.
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:91.108.56.150 port: 443)> received request <ConnectRequest host:91.108.56.150 port:443>.
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:149.154.175.50 port: 443)> received request <ConnectRequest host:149.154.175.50 port:443>.
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:91.108.56.150 port: 443)> received request <ConnectRequest host:91.108.56.150 port:443>.
Sep 1 17:22:44 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:149.154.167.91 port: 443)> received request <ConnectRequest host:149.154.167.91 port:443>.
Sep 1 17:22:44 iPhone6plus locationd[64] <Notice>: Gesture EnabledForTopClient: 1 (SiriCalled)
maocuu=>Sep 1 17:22:44 iPhone6plus networkd[92] <Error>: -[NETClient sendMessage:replyHandler:] attempting to send an XPC message to a suspended client Telegram.4229! This is a bug!
maocuu=>这里又可用的信息吗?
maocuu=>这里有可用的信息吗?
Sep 1 17:23:08 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4773 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:23:08 iPhone6plus Telegram[4229] <Error>: tcp_connection_destination_perform_socket_connect 4773 connectx to 0.0.7.209:80@0 failed: [65] No route to host
Sep 1 17:23:08 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:91.108.56.150 port: 443)> received request <ConnectRequest host:91.108.56.150 port:443>.
maocuu=>Sep 1 17:23:08 iPhone6plus PacketProvider[4432] <Warning>: Proxy socket <DirectProxySocket host:91.108.56.150 port: 443)> received request <ConnectRequest host:91.108.56.150 port:443>.
zhuhaow=>这个0.0.7.209应该就是问题所在了
zhuhaow=>但是telegram为什么会报这个错
然后看看具体这个请求match到什么规则上了
zhuhaow=>你把debug level设到verbose 或者debug
zhuhaow=>91.108这个ip连接不成功
maocuu=>连上vpn的时候有个错误: PacketProvider[4468] <Critical>: NWTCPSocket got an error when writing data: Optional(Error Domain=NSPOSIXErrorDomain Code=22 "Invalid argument")
zhuhaow=>感觉这个可能有点关系。但是我不确定
zhuhaow=>主要是这个错误毫无信息量
FlowerWrong=>看到twitter上ssr作者表示不再维护,建议使用ss
maocuu=>breakwa11 很早就不在 github发布客户端了。 需要使用 zeronet 来下载 ssr的客户端。一直在更新的。
zhuhaow=>上他那个卖服务的网站上不就下下来了
YuQiang=>
YuQiang=>NEKit 加 REJECT Adapter 有必要吗?
zhuhaow=>有可能会有程序处理的不好无限重连,不过我可以加上,设个reject的延迟就好了
zhuhaow=>乘着上午能上网都加上了
zhuhaow=>几乎所有东西都public了,有空我要好好整理一下,可能要用accessor了,好麻烦
YuQiang=>list rule 是匹配域名还是请求的整个路径?
zhuhaow=>域名
zhuhaow=>只有http才有可能匹配路径
CloudnuY=>已经把Telegram的IP段直接用type: list写进去,adapter直接写到了代理上,然后在Telegram里面使用自动、http模式、socks模式都还是不走代理……
zhuhaow=>ip的话要用iplist
zhuhaow=>不过你要试直接用all就好了
CloudnuY=>用all一样,不管Telegram用自动还是手动配置到SpechtLite的监听端口还是无法连接
也没法调
但我现在不能上网
原因尚不明
zhuhaow=>现在已知telegram和qq手机图片不可用
CloudnuY=>测试了一下,使用all到代理,无其他规则的时候,直接访问域名可以打开比如http://www.baidu.com/ ,而用百度的IP地址直接访问比如http://61.135.169.121/ 则无法打开。使用all到Direct则没有此问题。目测是proxy模块对IP直接访问不友好
CloudnuY=>手机QQ的图片好像是QQ用HTTPDNS获取到图片服务器的IP地址之后直接用IP访问的,同样的问题
zhuhaow=>代理用的是什么代理
CloudnuY=>代理用的ss
bjzhou=>这么看好像IP访问的都存在问题?
bjzhou=>之前proxifier也是解析成IP之后发给SpechtLite,结果访问不了
zhuhaow=>找到问题就好了。但是我看了一下代码感觉没有问题,可惜我现在不能调,明天上午看能不能上网
zhuhaow=>如果你们愿意调试可以看一下ssadapter里面的disconnect
zhuhaow=>几个可能的问题
zhuhaow=>ss不支持区分ipv4,v6和domain,感觉不太像
zhuhaow=>要么就是我发送ipv4地址的代码错了
}
case AES128CFB = "AES-128-CFB", AES192CFB = "AES-192-CFB", AES256CFB = "AES-256-CFB", CHACHA20 = "chacha20", SALSA20 = "salsa20", RC4MD5 = "rc4-md5"
YuQiang=>public enum CryptoAlgorithm: String {
YuQiang=>不同的加密方式有习惯的大小写方式,不过建议YAML配置文件能兼容大小写,目前是需要大小写完全匹配
YuQiang=>Telegram 和 QQ 图片问题与SS应该没关系,测试使用 ALL 也是无法访问的。
zhuhaow=>嗯 会merge
zhuhaow=>all的话如果IP不能访问自然还是不能访问
YuQiang=>恩,我的意思是可以大概率排除SS相关问题,也可能是我误解你的回复了。
YuQiang=>不好意思,是我逻辑错误了.. 我ALL 之后 走的还是SS代理,收回刚才的判断
YuQiang=>ALL 之后 direct 是可以正常访问QQ图片的
YuQiang=>刚刚测试 匹配 ALL 之后 走 http 代理 同样无法访问QQ图片,域名访问百度正常,IP访问百度不正常
YuQiang=>通过NEKit http代理访问IP的header是这样的
Accept-Encoding: gzip, deflate
DNT: 1
Accept-Language: zh-cn
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_5 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13G36 Safari/601.1
Cookie: BDSVRTM=20
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: 61.135.169.121
GET / HTTP/1.1
Content-Length: 0
Host: 61.135.169.121:80
YuQiang=>CONNECT 61.135.169.121:80 HTTP/1.1
zhuhaow=>看不出问题。明天我试试
YuQiang=>正常的header 是没有这一段的
Content-Length: 0
Host: 61.135.169.121:80
YuQiang=>CONNECT 61.135.169.121:80 HTTP/1.1
zhuhaow=>我会直接发connect请求 这样之后的请求都不是代理请求了
zhuhaow=>只有第一个是代理请求
YuQiang=>我不特别懂这块,但同样的配置下,域名访问的header就不会有connect 这一段
YuQiang=>貌似有connect这一段header会导致请求类型无法被识别
zhuhaow=>按理说域名应该是一样的才对
YuQiang=>至少通过Charles监控到的域名请求是没有connect这段header的
bjzhou=>之前也调试过,接收到connect之后,下次发来的header就不会当作header来处理了,而是会当做content来处理
```
}
port = 80
host = urlInfo[0]
} else {
self.port = port
}
return nil
guard let port = Int(urlInfo[1]) else {
host = urlInfo[0]
if urlInfo.count == 2 {
}
return nil
guard urlInfo.count <= 1 else {
let urlInfo = url.componentsSeparatedByString(":")
```
bjzhou=>HTTPHeader里这段代码写的有问题吧
bjzhou=>带端口号的访问不了
zhuhaow=>……好像写反了
bjzhou=>没,1改成2就好了
zhuhaow=>这样的话一直以来是怎么访问的……
YuQiang=>😶
YuQiang=>早上看了这段代码,没发现..
bjzhou=>只有HTTP协议用到了吧,SOCKS协议没用到?
zhuhaow=>我已经发现ss似乎不支持发送IP了
```
}
helloData.appendData(responseData)
responseData = encryptData(responseData)
var responseData = NSData(bytes: response, length: response.count)
response += [UInt8](request.host.utf8)
response.append(UInt8(request.host.utf8.count))
var response: [UInt8] = [0x03]
} else {
helloData.appendData(responseData)
responseData = encryptData(responseData)
var responseData = NSData(bytes: response, length: response.count)
response += Utils.IP.IPv6ToBytes(request.host)!
var response: [UInt8] = [0x04]
} else if request.isIPv6() {
helloData.appendData(responseData)
responseData = encryptData(responseData)
var responseData = NSData(bytes: response, length: response.count)
response += Utils.IP.IPv4ToBytes(request.host)!
var response: [UInt8] = [0x01]
if request.isIPv4() {
zhuhaow=>```
zhuhaow=>这里,直接用最后一段的话都可以用了
bjzhou=>前面两段多此一举了😂?
zhuhaow=>是的,理论上是没用,这个是之前我写的SOCKS5代理那里挪过来的
zhuhaow=>所以多此一举了
zhuhaow=>代理的话必须要支持这个
bjzhou=>果然好了。。。
bjzhou=>之前怀疑过这段代码,但想了想既然写成这样那应该没什么问题....
zhuhaow=>其实ss这里也有问题,他本身是个简化了socks5代理,但是没有把这个0x03的标识给简化掉
zhuhaow=>所以我就觉得既然要多写这一段自然是要区分的
bjzhou=>试试HTTP代理行不行,之前试了好像HTTP代理也有问题
YuQiang=>昨天测试HTTP代理也是不行的
zhuhaow=>我这里可以啊
YuQiang=>QQ图片也可以?
zhuhaow=>看来问题就是这个guard
zhuhaow=>connect是单独判断的没写错
zhuhaow=>普通http请求一般都是没端口号的默认80,就没问题
zhuhaow=>一旦是其他端口就崩了
zhuhaow=>好了,现在master应该可以了
YuQiang=>这个版本 CryptoAlgorithm 大小写的匹配的也merge 下吧
zhuhaow=>merge了
zhuhaow=>没问题我release了
lioliy=>哦,支持ssr的混淆了吗
zhuhaow=>不
CloudnuY=>Specht有没有支持socks4/5代理的计划呢?
zhuhaow=>原来有,我懒得维护,又删掉了……
zhuhaow=>有需求么
zhuhaow=>一般不太有用socks的。加密都用ss了
CloudnuY=>如果有人喜欢用ssr的话就可以用ssr python搭起来socks通道然后通过specht分线路走了……😂不知道需求大不大
zhuhaow=>直接用ss连不就完了。有空我会加上socks5
zhuhaow=>真的有任何证据表明ssr是有意义的么
CloudnuY=>都是玄学(逃
zhuhaow=>我搜了搜大致上都是介绍ssr怎么安的和软文无差的文章
CloudnuY=>最近墙有些高,感觉SSR比SS稍微多抗那么点儿干扰,可能是幻觉……
zhuhaow=>我至今不觉得gfw有能力分析流
CloudnuY=>自己搭建的服务器上有ss和ssr,连一段时间之后就有一段时间的断流,但是能ping通而且80端口的HTTP服务没问题。过一段时间又恢复了
zhuhaow=>高端口大量随机流量。特征太明显了
zhuhaow=>ssr能解决?
CloudnuY=>我再多试几次
FlowerWrong=>G20最近
YuQiang=>因为“宽衣”吧😊
jannerchang=>有 config 的文件没?我怎么编辑的总说错误呢?
zhuhaow=>看看错误是什么然后改啊
jannerchang=>怎么发图啊😳
jannerchang=>说无法分析 yaml
jannerchang=>我再重新改下试试
jannerchang=>有 telegram 群否?
jannerchang=>看来是服务器名称问题
zhuhaow=>解决了?
jannerchang=>嗯哪,adapter ID 是不是不能换?
zhuhaow=>可以随意取啊。不是direct就行
jannerchang=>我光改了个服务器地址等可以了,改 adapter ID 会有问题
jannerchang=>哦,可以放多个 ss 服务器不?
zhuhaow=>你改adapter ID要把引用的都改了
zhuhaow=>当然可以
jannerchang=>还是说你的建议是一个服务器一个 yaml 文件?
zhuhaow=>adapter个数可以随意啊。规则任意组合
jannerchang=>但是在选择服务器的时候好像是选某一个 yaml 配置的
jannerchang=>而不是选 adapter
zhuhaow=>是啊。但是一个配置里面可以有很多adapter。然后基于规则走到不同的adapter去
jannerchang=>哦,了解啦,一个配置文件可以相当于 surge 的 autogroup
nie11kun=>@zhuhaow 我这边始终还是连不上chacha20 。rc4正常
zhuhaow=>我觉得真的是你配置的问题啊。我自己开的chacha20是可以连的
zhuhaow=>你用别的客户端可以连上?
jannerchang=>有 telegram 群否?
zhuhaow=>没有。有什么可以直接私聊
jannerchang=>😂,就是觉得这个得开网页?
nie11kun=>surge
nie11kun=>正常使用中
nie11kun=>shadow socksX没有ota选项,所以也是连不上
jannerchang=>原来有 app
zhuhaow=>app就是包了个网页
jannerchang=>哦,不如 telegram 方便,不好发图
zhuhaow=>如果和ota有关的话那和chacha就没关系了
nie11kun=>这个app说实话不好用,每次打开都要从新加载
但是如果我没理解错。不支持ota也是可以连的才对
zhuhaow=>ota有空会考虑支持
zhuhaow=>这个好像是电脑上拖进去可以发
zhuhaow=>手机上不行
zhuhaow=>但是telegram应该没有网页版吧
zhuhaow=>原理上似乎不可能
jannerchang=>有吧,手机也有 app 呢
zhuhaow=>没找到哪里能发图片的
nie11kun=>tl客户端是不是得要代理对应网页才能翻出去
jannerchang=>telegram 全平台都有呢
jannerchang=>没用过网页版
nie11kun=>上下行当前流量貌似也挺实用的
zhuhaow=>Telegram居然有网页版
zhuhaow=>它的key存在哪里?
jannerchang=>有哇,tg 很强大
jannerchang=>不知道
zhuhaow=>SpechtLite的功能我真的无心再加了
zhuhaow=>本来是以demo形式存在的
zhuhaow=>现在已经越来越杂了
jannerchang=>搞个正式的卖吧
jannerchang=>😁
zhuhaow=>并不想写GUI
jannerchang=>配置逻辑搞简单点儿
zhuhaow=>主要是最近要做的事情太多了
jannerchang=>慢慢来吧
zhuhaow=>NEKit本身还有很多东西要做
zhuhaow=>还有其他的一些事
zhuhaow=>哦。我明白telegram的原理了
zhuhaow=>等我回家建一个吧
jannerchang=>👍
zhuhaow=>@bjzhou 麻烦签一下CLA,在pull request里面可以看到,然后我merge了
bjzhou=>好了
breakwa11=>到家了没?
zhuhaow=>明天到家
lioliy=>这个发图可以直接用mark down啊
zhuhaow=>问题是图传哪里去啊
zgia=>配置文件没有看懂,弱
zhuhaow=>明天写个中文的
zgia=>请问直连的设配器怎么写?
- id: shadowsocks-SG4
type: direct
zgia=> - id: direct
zgia=>是这么写吗?
zhuhaow=>不用写。默认有一个direct的adapter
id就是direct
zhuhaow=>直接用
zhuhaow=>我能问一句你们是怎么知道的specht的么
zhuhaow=>怎么突然多了这么多人
zgia=>twiter
zgia=>directiprange
zgia=>Error when parsing config file: /Users/liyuntian/.SpechtLite/config.yaml. InvalidYamlFile
zgia=>好惨
zhuhaow=>你的yaml格式就没对。所以这样了
zgia=>这个我明白
zgia=>我就是很感叹。。。。。
zgia=>我复制了git下的,又试了一次。还是格式错误
zgia=>找到了,我写错一个字符,本
zgia=>[![blob](https://files.gitter.im/zhuhaow/NEKit/3HOR/thumb/blob.png)](https://files.gitter.im/zhuhaow/NEKit/3HOR/blob)
zhuhaow=>增加了中文说明
zgia=>现在没有问题了,就是连接失败, 我看看哪里写错了
zgia=>请问log在哪个位置?
zhuhaow=>你set as system proxy选上
zhuhaow=>或者自己设好
zgia=>[![blob](https://files.gitter.im/zhuhaow/NEKit/z5P8/thumb/blob.png)](https://files.gitter.im/zhuhaow/NEKit/z5P8/blob)
zgia=>[![blob](https://files.gitter.im/zhuhaow/NEKit/PhlM/thumb/blob.png)](https://files.gitter.im/zhuhaow/NEKit/PhlM/blob)
zgia=>搞定了,多谢你set as system proxy选上
zgia=>搞定了,多谢你 @zhuhaow
zhuhaow=>这个熊猫翻滚的教程在哪看啊
zhuhaow=>进去没找着啊
zgia=>熊猫翻滚?
zgia=>不了解
FlowerWrong=>我看到twitter有人发
zhuhaow=>嗯。@zgia 说完之后我去搜到了
zgia=>@zhuhaow 请问reject也是系统缺省的吗?
zhuhaow=>并不是。虽然感觉应该加上
lioliy=>图床呀
lioliy=>不知道
lioliy=>现在人的确好多
因为有很多好事的人。。。
breakwa11=>> 怎么突然多了这么多人
nie11kun=>举手
lioliy=>specht有好多人在用?我编译了下,运行时日志是权限不允许,查了下错误说是要购买开发者账号(99刀一年)还要申请私人vpn权限什么的。。。
99刀加额外申请
zhuhaow=>应该基本没人用吧,门槛太高
CoderJin=>@zhuhaow 能用于客户端不?NEKit?
zhuhaow=>客户端干什么用?
CoderJin=>vpn
zhuhaow=>客户段自己连代理自己传数据用?
CoderJin=>是的
CoderJin=>Specht 有在客户端上 有测试用过没...我按Specht 的方法 测试客户端 好像不行?