【犬夜叉】浜崎あゆみ / Dearest
我最喜欢的还是桔梗!
死在犬夜叉怀里了,哭了很久很久
神乐死的时候,我也挺难受的
死在犬夜叉怀里了,哭了很久很久
神乐死的时候,我也挺难受的
11 个评论
老步的目前最喜歡Jewel
桔梗泡菜很好吃
应该是我最喜欢的动漫歌曲之一,满满的回忆
只喜歡殺生丸的路過 (*/ω\*)
我也最喜歡神樂,比起其他角色
她終於是自由的風了,沒有什麼好難受的,或許這是她自己想要的,起碼我是這麼看的。 背負了這麼多,為什麼不可以選擇死亡。 不是贊成自殺,她一生渴望自由,站在她的角度來說即使付出生命也在所不惜
她終於是自由的風了,沒有什麼好難受的,或許這是她自己想要的,起碼我是這麼看的。 背負了這麼多,為什麼不可以選擇死亡。 不是贊成自殺,她一生渴望自由,站在她的角度來說即使付出生命也在所不惜
大概知道这个论坛的年龄段了hhh
https://www.youtube.com/watch?v=qIoDWTF0qSo
Do As Infinity / 深い森(Fukai Mori)
這歌,我也很喜歡~
Do As Infinity / 深い森(Fukai Mori)
這歌,我也很喜歡~
還能看到有人分享濱崎步的歌,真是感人...
还能在这里看见婆崎🙃
突然怀旧w
我永远喜欢桔梗 喜欢那宿命式的残缺与凄美
我永远喜欢桔梗 喜欢那宿命式的残缺与凄美
開始講wss的代碼了。
翻開課本v2ray-core\transport\internet\websocket\dialer.go
從
func Dial
這個函數讀起。因爲外層調用必然是 internet.Dial這樣的調用方式進來。
注意到這行代碼
conn, err := dialWebsocket(ctx, dest, streamSettings)
我們跟進去,注意以下代碼
dialer.TLSClientConfig = config.GetTLSConfig(tls.WithDestination(dest))
conn, resp, err := dialer.Dial(uri, wsSettings.GetRequestHeader())
return internet.DialSystem(ctx, dest, streamSettings.SocketSettings)
一行行解釋 翻開課本 v2ray-core\transport\internet\tls\config.go
看函數
GetTLSConfig
我們重點解釋下
config := &tls.Config 保存了重要的配置信息,我們講講各個配置是什麽
config.CipherSuites 保存的加密套件,我個人推薦,把出現RSA,chacha,cbc等字樣的套件刪除!
config.InsecureSkipVerify 表示是否校驗證書,必須校驗啊!不校驗就被中間人攻擊了!像這次GitHub攻擊事件
config.Certificates 保存了各個證書。默認是系統自帶的,可以禁用。通過
config.GetCertificate = getGetCertificateFunc
函數設置自己的自定義證書。我個人推薦,禁用系統的,只用自己的證書。
其他的不重要
conn, resp, err := dialer.Dial(uri, wsSettings.GetRequestHeader())
return internet.DialSystem(ctx, dest, streamSettings.SocketSettings)
第一行代碼表示調用了開源的
github.com/gorilla/websocket
庫文件,不在此解讀了,你只要知道,通過這個開源庫,去建立了wss連接就好了,v2ray沒有自己實現wss,只是調用了第三方庫。
第二行代碼,表示去建立了一個tcp連接,無它~
希望我的講解,可以幫助大家少走很多彎路,看代碼知道哪些是v2ray實現的,哪些是第三方庫
遇到問題,需要解決的時候,有一個思路,知道去看什麽代碼文件!
比如爲什麽不像SS一樣需要自己指定加密算法呢?因爲這個是TLS自己協商出來的,而不是我們指定的,我們可以通過刪減剛才的config.CipherSuites來指定加密算法
以及被中間人攻擊怎麽辦?我們可以通過config.Certificates 來設置自己的根證書解決
爲什麽看不到AEAD加密算法實現呢?因爲在
github.com/gorilla/websocket
庫文件實現的數據AEAD加密
等等問題,可以通過閲讀代碼自己回答。有需要,可以自己提issue。但是我都是自己改代碼,完成自我功能需求的客制化~
有什麽v2ray的問題,可以給我留言。或者在v2ray的GitHub上提issue。