Golang 中的簡單SSH 連接埠轉送
在本文中,我們將探索如何建立一個簡單的SSH 埠轉送,讓您能夠連接從本機電腦到遠端連接埠。
建立連接埠轉送
要建立連接埠轉發,您需要建立 SSH 連線並偵聽本機連接埠。建立連線後,您可以在本機和遠端連接埠之間轉送資料。
以下是逐步指南:
範例程式碼
以下Go 程式碼示範了這些步驟:
<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>
依照這些步驟並使用提供的程式碼,您可以創建一個簡單而有效的SSH 連接埠轉送和輕鬆從本機電腦存取遠端服務。
以上是如何在 Golang 中建立一個簡單的 SSH 連接埠轉送?的詳細內容。更多資訊請關注PHP中文網其他相關文章!