猿问

Golang中简单的SSH端口转发

我正在尝试使用 Go 通过 SSH 创建(然后关闭)一个简单的 TCP 端口转发。我是 Golang 和静态类型语言的新手。(来自 Ruby。)

在终端中,我只需运行即可ssh -L 9000:localhost:9999 user@server.com完成我的需要。我想用 Go 以编程方式做同样的事情。

我曾尝试使用这个例子作为起点和最近的这个测试来试图理解要做什么,但现在我有一堆混乱的代码,当这看起来实际上是一件非常简单的事情时。

任何帮助将不胜感激!:-)


繁星点点滴滴
浏览 521回答 3
3回答

沧海一幻觉

我已经完成了一个名为mallory的简单 SSH 端口转发工具。它提供了 HTTP 代理而不是 SOCKS 代理,这与ssh -D.核心代码类似于 damick 的答案。创建客户端配置ssh.Dial 使用配置连接到远程 SSH 服务器并返回 Client现在你可以使用Client.Dial来推进你喜欢什么。Dial 启动从远程主机到 addr 的连接。结果连接的 LocalAddr() 和 RemoteAddr() 为零。如果要为 SOCKS 代理服务器提供服务,请使用Client.Dial连接到远程服务器。
随时随地看视频慕课网APP

相关分类

Go
我要回答