通过代理使用 socks 进行端口转发

通过代理使用 socks 进行端口转发

我正在尝试从另一个域浏览在一个域内的服务器上运行的 wiki。该 wiki 只能在 LAN 上访问,但我需要从通过 SSH 隧道连接的另一个 LAN 浏览它...

以下是我的设置和迄今为止执行的步骤:

~.ssh/confingwikihost

Host gateway
  User kisteuser
  Port 443
  Hostname gateway.companydomain.com
  ProxyCommand /home/myuser/bin/ssh-https-tunnel %h %p
  # ssh-https-tunnel:
  # http://ttcplinux.sourceforge.net/tools/stunnel
  Protocol 2
  IdentityFile ~/.ssh/key_dsa
  LocalForward 11069 localhost:11069

Host server1
  User kisteuser
  Hostname localhost
  Port 11069
  LocalForward 8022 server1:22
  LocalForward 17001 server1:7100
  LocalForward 8080 www-proxy:3128
  RemoteForward 11069 localhost:22

wikihost

myuser@wikihost: ssh -XC -t gateway.companydomain.com ssh -L11069:localhost:22 server1

在另一个终端上:

ssh gateway.companydomain.com

现在,我想在我的公司域名上启动 Firefox 并浏览 上的 wiki wikihost。我这样做了:

[email protected] ~ $ ssh gateway
Have a lot of fun...
kisteuser@gateway ~ $ ssh -D 8383 localhost
user@localhost's password: 
user@wikiserver:~> 

.ssh/config那边的样子是这样的:

host server1
    localforward 11069 localhost:11069

host localhost
    user myuser
    port 11069

host wikiserver
    forwardagent yes
    user myuser
    port 11069
    hostname localhost 

现在,我在名为 的服务器上启动了 Firefox gateway,并编辑了代理设置以使用 SOCKSv5,指定代理应该是gateway并使用端口 8383...

kisteuser@gateway ~ $ LANG=C firefox -P --no-remote

现在,我在终端中弹出以下错误wikiserver

myuser@wikiserver:~> channel 3: open failed: connect failed: Connection refused
channel 3: open failed: connect failed: Connection refused
channel 3: open failed: connect failed: Connection refused

困惑吗?我也是...

请帮助我了解如何正确构建隧道并通过 SOCKS 协议浏览 wiki。

更新:

我设法浏览了 wikiserver 上的 wiki,并进行了以下更改:

host wikiserver
    forwardagent yes
    user myuser
    port 11069
    hostname localhost 
    localforward 8339 localhost:8443

现在,当我通过 sshgateway启动 Firefox 并转到 localhost:8339 时,我就会进入 wiki 的起始页,该页面由端口 8443 提供服务。

现在我问自己 SOCKS 真的需要吗?有人能详细说明一下吗?

答案1

要按你想要的方式设置 SOCKS,你需要运行以下ssh -D 8383命令你要运行浏览器的机器,并让它连接一台可以访问 wiki 的机器。您还应该使用localhost:8383作为代理地址,因为 ssh -D默认情况下只监听,localhost如手册页所述:

默认情况下,本地端口根据 GatewayPorts 设置进行绑定。但是,可以使用显式 bind_address 将连接绑定到特定地址

因此,如果gateway您可以访问wikihost,但想要在 上运行浏览器kiste,则应在 上运行 Firefox kiste,使用“localhost:8383”将其配置为 SOCKS 代理,并ssh -D 8383 gateway从运行kiste

还有几点需要注意的:

尝试使用 运行所有 ssh 命令-v。这将显示所有正在请求的转发,您将能够看到哪一个转发失败了。

我还建议拆除那些你并不真正需要的隧道,这样可以让情况不那么混乱。

您看到的错误消息是在尝试连接到静止的SSH 隧道(使用-L或创建的隧道-R),但 SSH 无法连接到隧道的另一端。

相关内容