为了账号安全,请及时绑定邮箱和手机立即绑定

Golang中简单的SSH端口转发

Golang中简单的SSH端口转发

Go
繁星点点滴滴 2021-07-15 02:05:25
我正在尝试使用 Go 通过 SSH 创建(然后关闭)一个简单的 TCP 端口转发。我是 Golang 和静态类型语言的新手。(来自 Ruby。)在终端中,我只需运行即可ssh -L 9000:localhost:9999 user@server.com完成我的需要。我想用 Go 以编程方式做同样的事情。我曾尝试使用这个例子作为起点和最近的这个测试来试图理解要做什么,但现在我有一堆混乱的代码,当这看起来实际上是一件非常简单的事情时。任何帮助将不胜感激!:-)
查看完整描述

3 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

我已经完成了一个名为mallory的简单 SSH 端口转发工具。它提供了 HTTP 代理而不是 SOCKS 代理,这与ssh -D.

核心代码类似于 damick 的答案。


  1. 创建客户端配置

  2. ssh.Dial 使用配置连接到远程 SSH 服务器并返回 Client

  3. 现在你可以使用Client.Dial推进你喜欢什么。


    Dial 启动从远程主机到 addr 的连接。结果连接的 LocalAddr() 和 RemoteAddr() 为零。

  4. 如果要为 SOCKS 代理服务器提供服务,请使用Client.Dial连接到远程服务器。


查看完整回答
反对 回复 2021-07-19
  • 3 回答
  • 0 关注
  • 520 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信