Menggunakan proksi socks5 go
Apa yang akan diperkenalkan oleh editor PHP Youzi kepada anda hari ini ialah proksi socks5 yang dilaksanakan dalam bahasa Go. Semasa akses rangkaian, kami sering menghadapi situasi di mana kami perlu menyembunyikan alamat IP sebenar kami atau memintas blok rangkaian. Menggunakan proksi socks5 boleh membantu kami mencapai matlamat ini dengan mudah. Sebagai bahasa pengaturcaraan yang cekap dan ringkas, bahasa Go mempunyai pustaka rangkaian yang kaya dan ciri konkurensi, dan sangat sesuai untuk membangunkan alat proksi rangkaian. Seterusnya, kami akan memperkenalkan secara terperinci cara menulis pelayan proksi socks5 yang mudah dan praktikal menggunakan bahasa Go.
Kandungan soalan
Saya ingin tahu sama ada anda boleh mendengar pada port tempatan, contohnya: 1080ocks5, dan mempunyai semua sambungan pada proksi port tersebut untuk menggunakan hos luaran: portsocks5
func main() { l, err := net.Listen("tcp", "127.0.0.1:1080") if err != nil { fmt.Print(err) } defer l.Close() for { conn, err := l.Accept() if err != nil { fmt.Print(err) } go handle(conn) } } func handle(conn net.Conn) { defer conn.Close() dialect, err := proxy.SOCKS5("tcp", "externalhost:externalport", nil, proxy.Direct) newConn, err := dialect.Dial("tcp", "targethost:targetport") if err != nil { log.Printf("Connection error: %s", err.Error()) } go func() { _, err = io.Copy(newConn, conn) if err != nil { log.Printf("Connection error: %s", err.Error()) } }() _, err = io.Copy(conn, newConn) if err != nil { log.Printf("Connection error: %s", err.Error()) } } func handle(conn net.Conn) { defer conn.Close() }
Saya perlu mendapatkan alamat destinasi dan mengesahkan sambungan adalah socks5, kemudian lakukan proksi menggunakan ip luaran dan hantar ke dialect.dial
Penyelesaian
Bunyi seperti anda mahu ini:
- Alat yang mendengar pada komputer tempatan anda pada port tertentu menggunakan TCP
- Anda boleh membuat permintaan protokol ocks5 ke port ini dan ia harus memajukan semuanya ke pelayan socks5 lain pada mesin jauh yang lain.
- Pelayan socks5 bertanggungjawab untuk mewujudkan sambungan dengan sasaran dalam permintaan protokol socks5
Dalam kes ini, anda hanya memerlukan proksi TCP asas. Alat anda tidak perlu melihat ke dalam permintaan socks5, dan juga tidak perlu disambungkan ke mesin jauh. Anda hanya mahu memajukan semua sambungan ke titik akhir setempat ke titik akhir jauh. proxy.SOCKS5
net.Dail
(bukannya dialect.Dail
) untuk menyambung ke "externalhost :externalport"
dan tidak perlu mencipta pendail . net.Dial
(而不是 dialect.Dial
)连接到 "externalhost:externalport"
,并且不需要创建 proxy.SOCKS5
Atas ialah kandungan terperinci Menggunakan proksi socks5 go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...

Mengapa lelaran peta di GO menyebabkan semua nilai menjadi elemen terakhir? Dalam bahasa Go, ketika berhadapan dengan beberapa soalan wawancara, anda sering menemui peta ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...
