我有三个设备school
、home
和portable
。我在这里将它们称为 S、H 和 P。我希望能够使用 P 来运行命令并通过互联网获取 H 上的文件,但home
没有公共 IP。
现在,S 确实有一个公共 IP、ssh 和一个公开的端口 22。我可以从任何地方通过隧道连接到 S。然而,当我跑步时
ssh -R 53469:localhost:22 school
在家(53469只是一个随机未使用的端口),然后
ssh school -p 53469
我无法连接:学校仅公开端口 22。
所以我最终做的是某种双重隧道,利用学校作为某种集合点。在家里,我运行了上面的反向隧道命令。然后我使用便携式隧道到学校,然后通过隧道回家localhost:53469
。然后奇怪的事情发生了:
运行后(便携式)
ssh school -p 22
进而
ssh localhost -p 53469
在隧道会议中,我最终回到了学校。
第一次按Ctrl+D可以让我回到家(这是我想去的地方)。第二次又送我去学校。第三次让我回到便携式。
这里发生了什么?我是否正在运行某种脚本来让我第三次加时赛?
这是lsb_release
信息:
家
me@home:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety
学校
me@school:~>lsb_release -a
LSB Version: core-5.0-amd64:core-5.0-noarch:desktop-5.0-amd64:desktop-5.0-noarch:imaging-5.0-amd64:imaging-5.0-noarch:languages-5.0-amd64:languages-5.0-noarch
Distributor ID: openSUSE project
Description: openSUSE Leap 42.3
Release: 42.3
Codename: n/a