使用HTTPTunnel (htc/hts)连接防火墙内的SSH服务器



我想在家里访问我的PC,但是,到我家的连接是在NAT防火墙下的,它阻止了所有端口,除了80和443。无论如何,我不能对网络做任何修改。

我已经在我的HOME和WORK PC上设置了httptunnel并成功测试了连接(可是SSHclient => PCWORK SSHd )

Work Server command: hts --no-daemon  --forward-port localhost:22 8080
Home Client command: htc --no-daemon -F 1234 myserver.com:8080
Home ssh to server: ssh localhost -p 1234 (success)

但是我想用相反的方法。目标是:PC Work SSH Client => PC HOME SSHd,前提是隧道、SSH已建立并正常工作,无需任何修改。

有办法吗?

是否有可能通过SSH使用隧道访问本地家庭网络内部网?

______________                                  _______________
|  PC HOME   |                                  |  PC Work    |
|------------|                                  |-------------|
| Server SSH |                                  | Client  SSH |
|     ^      |                                  |     |       |
|     |      |                                  |     |       |
|     |      |                                  |     V       |
| Client HTC <===== BLOCKED ALL EXCEPT 80 ======= Server  HTS |
|___[1234]___| 8080                             |___[8080]____|
192.168.0.10                                      myserver.com
(No Public IP)

PS:我希望这个图表是清楚的

这里的关键字是远程隧道

一旦您有一个正常的ssh连接,就像您提到的(只是插入用户名,以便在localhosts的海洋中清楚地显示目的地:)

ssh -p 1234 htsuser@localhost

你可以反向扩展你的命令行来创建一个远程隧道。

因此,例如,要到达HTC的http端口,首先从HTC端启动一个额外的远程隧道连接,如

ssh -p 1234 -R9000:localhost:80 htsuser@localhost

这将在远程机器(HTS)的端口9000上打开一个隧道。在此隧道存在之前,您可以通过本地主机(HTS) 9000端口访问HTC的80端口(您可以通过浏览http://localhost:9000进行检查)

或者对于ssh,只需将80替换为22

ssh -p 1234 -R9000:localhost:22 htsuser@localhost

…然后在HTS端,输入

ssh -p 9000 htcuser@localhost

相关内容

  • 没有找到相关文章

最新更新