小编Chr*_*ris的帖子

SSH 端口转发

我想通过公共可访问服务器(公共)连接到 NAT 后面的我的计算机(本地)。

在本地:

ssh -g -R 8000:localhost:22 user@public
Run Code Online (Sandbox Code Playgroud)

然后公开:

ssh -p 8000 user@public 
Run Code Online (Sandbox Code Playgroud)

但我越来越 error: Connection refused.

当我登录到公共服务器时,我可以通过以下方式验证隧道是否正常工作:

ssh -p 8000 localhost
Run Code Online (Sandbox Code Playgroud)

它在本地计算机上打开 ssh。

我怀疑公共服务器应该充当透明代理有什么问题吗?或者如何让它像那样工作。

ssh port-forwarding

8
推荐指数
1
解决办法
2767
查看次数

autossh 不适用于两个或多个隧道 - 或者有其他选择吗?

我正在尝试使用 SSH 服务器作为连接多个内部服务器的网关。在这种情况下,内部意味着它们不能直接访问,它们没有分配给它们的公共 IP。

所以场景应该是这样的(例如有 2 个服务器,可能更多),网关公共 IP 123.456.789.45 内部为 10.12.40.13

+--------+                 +---------+                +----------+
| client |--> 2214/tcp --> |         | --> 22/tcp --> | Server 1 |
+--------+                 |         |                +----------+
                           | Gateway |
+--------+                 |         |                +----------+
| client |--> 2215/tcp --> |         | --> 22/tcp --> | Server 2 |
+--------+                 +---------+                +----------+
Run Code Online (Sandbox Code Playgroud)

我的第一种方法是将它们从网关设置到服务器,类似于

ssh -N -L 123.456.789.45:2214:127.0.0.1:22 tunnel-user@server1
ssh -N -L 123.456.789.45:2215:127.0.0.1:22 tunnel-user@server2
Run Code Online (Sandbox Code Playgroud)

虽然这可行,但我偶然发现了隧道不太可靠的问题,到处都失败了。合乎逻辑的下一步是尝试autossh运行。在这里我遇到了很多问题。可以毫无问题地建立第一个隧道

autossh -M 20000 -f -N -L …
Run Code Online (Sandbox Code Playgroud)

ssh ssh-tunnel

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

ssh ×2

port-forwarding ×1

ssh-tunnel ×1