std*_*err 1 ssh ssh-tunneling http forwarding
我已经建立了一个反向 ssh 隧道,进入到aws
服务器的受限网络,即访问它,我 ssh 进入aws
服务器,然后从那里我可以通过某个自定义端口访问受限网络中的机器。
在这个受限网络上,有些设备可以通过 Web 浏览器进行配置。
我相信我可以做一些事情,比如ssh -R 8080:deviceIP:80 user@aws
将它转发到aws
机器,但我仍然无法访问它(除了通过非常慢的远程 X 之外)。如何通过管道deviceIP:80
连接到家里的浏览器aws
?
我已经尝试了上面的 ssh 命令,然后将我家用电脑上的浏览器定向到aws:8080
但没有加载任何页面......
SSH 隧道可用于跨越不安全的网络,在连接位于不同网络上的两个端点时提供端到端加密。
据我所知(感谢评论),您拥有的是:
本地主机-A:您的localhost
, 在您的本地网络上(可能在防火墙/NAT 后面)
可公开访问的主机 B:aws
服务器
非公开可访问的主机 C:在受限制的远程网络上(可能在防火墙/NAT 后面)
非公开可访问的主机 D:您称为 的主机deviceIP
,它侦听端口80
并位于远程受限网络上
如果要将主机 A 连接到主机 D,让浏览器通过端口访问它80
,则需要:
从主机 A 到主机 B 的隧道,即:
让主机 A 监听端口 8080
通过隧道从该端口发送流量
在主机 B ( aws
) 上,将来自隧道的流量重定向到本地(即主机 B)端口15872
(我从您的评论中获取了它;您可以选择任何可用端口;只需确保使用相同的端口即可命令)
# Execute on host-A
$ ssh -L 8080:localhost:15872 user@host-B
Run Code Online (Sandbox Code Playgroud)
从主机 C 到主机 B 的隧道,即:
让主机 B 监听端口 15872
通过隧道从该端口发送流量
在主机 C(您的 Linux 服务器)上,将该流量重定向到80
主机 D 上的端口
# Execute on host-C
$ ssh -R *:15872:host-D:80 user@host-B
Run Code Online (Sandbox Code Playgroud)
这样,在端口上对主机 A 的请求8080
将通过隧道传输到主机 B,重定向到15872
同一主机 B 上的端口,通过隧道传输到主机 C 并在主机 C 上重定向到主机80
D 的端口。
归档时间: |
|
查看次数: |
3727 次 |
最近记录: |