2

我想在家中访问我的 PC,但是,与我家的连接位于 NAT 防火墙下,该防火墙阻止了除 80 和 443 之外的所有端口。无论如何,我无法对网络进行任何修改。

我已经在我的 HOME 和 WORK PC上设置了httptunnel并成功测试了连接( PCHOME 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:希望图清晰

4

1 回答 1

1

好吧,你的关键是远程隧道

一旦你有一个正常的 ssh 连接,就像你提到的那样(只是插入用户名以清楚地知道本地主机海洋中的目的地:)

ssh -p 1234 htsuser@localhost

你可以做一个远程隧道向后扩展你的命令行。

因此,例如要从 HTS 端访问 HTC 的 http 端口,首先从 HTC 端使用额外的远程隧道开始连接,例如

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

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

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

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

...然后在 HTS 方面,只是

ssh -p 9000 htcuser@localhost

于 2015-06-11T17:55:09.267 回答