66

我知道如何在下面的命令上转发 SOCKS 代理

ssh -D port_number user@host

这很好用,但我希望能够将该转发放入我的 SSHconfig文件中。但我无法找到任何有用的信息或教程。

我在配置中有一堆普通的 SSH 配置文件,所以我更喜欢将转发附加到 SSH 配置文件。

4

3 回答 3

100

使用配置设置“DynamicForward”下面是它应该是什么样子的一个快速示例:

Host example.com
    User username
    Port 22
    IdentityFile ~/.ssh/id_rsa
    DynamicForward 8080

如果 DynamicForward 选项只给出了一个端口号,它将绑定到 localhost:port。您可以添加特定 IP 以使其绑定到 localhost 以外的地址。使用“*:8080”会将代理绑定到盒子上的所有 IP 地址。要使用 IPv6 地址,请将地址括在方括号中:

[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:8080

于 2013-11-10T23:43:28.497 回答
1

我不推荐使用 socat 因为它只支持 socks4 但是你可以使用 ncat

  1. 安装ncat
  2. 将此添加到您的 ssh 配置文件中ProxyCommand ncat --proxy-type socks5 --proxy 127.0.0.1:1080 %h %p

如果它不起作用,您可能需要检查ncat 选项。

于 2020-09-05T23:15:35.607 回答
-9

这是这样做的:

Host server-fwd
Hostname a.b.c.d
User username
Port 22
LocalForward localhost:AAAA localhost:DD
LocalForward localhost:BBBB localhost:EEE
LocalForward localhost:CCCC localhost:FFFF

将“server-fwd”更改为您喜欢的任何名称,将“abcd”更改为您要连接的 IP,将“用户名”更改为您的帐户,如有必要,可以更改端口号。

LocalForward 行是您一直在寻找的行。中间列(即 AAAA、BBBB 和 CCCC)是您正在运行 ssh 命令的系统上的端口。右列(即 DD、EEE 和 FFFF)是您要连接的服务器上的端口。在这两种情况下它都是 localhost,因为在第一种情况下,它是 ssh 命令在本地运行的时候,而在第二种情况下,它是相对于您刚刚登录的服务器的。

是的,我经常使用这个。;)

于 2013-09-22T02:07:02.320 回答