SSH Port Forward Mudah di Golang
Dalam artikel ini, kami akan meneroka cara mencipta port SSH mudah ke hadapan, membolehkan anda menyambung ke port jauh dari mesin tempatan anda.
Mencipta Port Hadapan
Untuk mencipta port ke hadapan, anda perlu mewujudkan sambungan SSH dan mendengar pada port tempatan . Setelah sambungan dibuat, anda boleh memajukan data antara port tempatan dan jauh.
Berikut ialah panduan langkah demi langkah:
Kod Contoh
Kod Go berikut menunjukkan langkah-langkah ini:
<code class="go">package main import ( "io" "log" "net" "golang.org/x/crypto/ssh" ) func forward(localConn net.Conn, config *ssh.ClientConfig, remoteAddr string) { sshClientConn, err := ssh.Dial("tcp", "remote.example.com:22", config) if err != nil { log.Fatalf("ssh.Dial failed: %s", err) } sshConn, err := sshClientConn.Dial("tcp", remoteAddr) if err != nil { log.Fatalf("sshClientConn.Dial failed: %s", err) } go io.Copy(sshConn, localConn) go io.Copy(localConn, sshConn) } func main() { config := &ssh.ClientConfig{ User: "username", Auth: []ssh.AuthMethod{ ssh.Password("password"), }, } listener, err := net.Listen("tcp", "local.example.com:9000") if err != nil { log.Fatalf("net.Listen failed: %s", err) } for { localConn, err := listener.Accept() if err != nil { log.Fatalf("listener.Accept failed: %s", err) } go forward(localConn, config, "remote.example.com:9999") } }</code>
Dengan mengikuti langkah-langkah ini dan menggunakan kod yang disediakan, anda boleh mencipta port SSH yang mudah tetapi berkesan ke hadapan dan akses perkhidmatan jauh daripada mesin tempatan anda dengan mudah.
Atas ialah kandungan terperinci Bagaimanakah anda membuat port SSH mudah ke hadapan di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!