Saya mempunyai pelanggan yang akan mewujudkan sambungan tls ke perkhidmatan bahagian belakang.
Terdapat dua situasi yang saya hadapi.
Dalam persekitaran ini, pelanggan menyambung terus ke pelayan, seperti yang ditunjukkan dalam kod berikut.
var d tls.dialer //... d.config = &tls.config{ //... } //... c1 := d.dial("tcp", addr)
Dalam persekitaran ini, pelanggan berada di belakang proksi http dan pelanggan perlu menggunakan terowong http proksi untuk memajukan trafik antara klien dan pelayan.
Saya menggunakan golang.org/x/net/proxy
pada bahagian klien untuk menyambung kepada proksi, kerana proksi ialah proksi http, pelanggan harus menggunakan net.dialer untuk menyambung kepada proksi melalui tcp.
dailer, err := proxy.FromURL(proxy, &net.Dialer{ Timeout: TCP_CONNECT_TIMEOUT, KeepAlive: TCP_KEEPALIVE_TIMEOUT, }) c2 := dailer.Dial("tcp", addr)
Kes 1, pelanggan memulakan sambungan tls Dalam paket trafik rangkaian, pelanggan mencetuskan sambungan tcp Selepas 3 jabat tangan, pelanggan menghantar client hello
ke pelayan.
Dalam kes 2, pelanggan mula-mula menggunakan tcp untuk menyambung kepada proksi http (contohnya 10.0.0.1:8080), seterusnya, menghantar connect
kepada proksi, dan kemudian proksi mengembalikan connectionestablished
, Tetapi klientelahhantar connect
到代理,然后代理返回connectionestablished
,但是客户端不发送client hello
ke pelayan.
Untuk kes2, saya tidak tahu bagaimana dan di mana untuk melaksanakan penghantaran di sisi pelanggan client hello
?
Terima kasih terlebih dahulu. .
klien
yang boleh dibina daripada rangkaian sedia ada. Sambung, kemudian gunakan