我正在尝试从另一个域浏览在一个域内的服务器上运行的 wiki。该 wiki 只能在 LAN 上访问,但我需要从通过 SSH 隧道连接的另一个 LAN 浏览它...
以下是我的设置和迄今为止执行的步骤:
~.ssh/confing
在wikihost
:
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 无法连接到隧道的另一端。