如何通过互联网通过SSH访问networking中的机器

对于你们大多数人来说,这可能是一个非常基本的问题。 但是,我很新的networking与Linux等。inheritance人的情况:我有3个networking服务器内的networking。 可以说他们有以下主机名和IP地址:

server1 = 192.168.0.1 server2 = 192.168.0.2 server3 = 192.168.0.3

所有的stream量进入路由器,DMZ是server1。 例如:example.com将我带到server1上的本地主机,我可以使用我的静态IP地址和example.com通过互联网ssh到server1。 我想要的是,如果我使用server1.example.com它将去到server1,和server2.example.com将去server2,等等

我想这是全部使用DNS与BINDsorting? 我至less在正确的轨道上? 有没有人有任何信息,我可以如何设置或链接到教程什么的?

我意识到我可以更改每个服务器的ssh端口,但这不是最佳的,因为所有的stream量(http / ftp / ssh / etc)应该被转发到server3使用server3.example.com时。

通过server1隧道到每个服务器也不是我的select,因为server3的用户不应该有权访问server1。

任何帮助将非常感激! 谢谢!

这是一个非常简单的解释,但是如果不更改外部端口,则无法实现您想做的事情,因为位于3台服务器前的防火墙并不关心主机名是什么; 它只关心IP地址和端口,因此无法知道你想要连接的是什么服务器。

现在,如果您可以刻录几个额外的公有IP地址,则可以执行1:1 NAT(有时称为“DMZ模式”),以便server1,server2,server3有效地拥有自己的公用IP地址,然后可以创buildserver1.example .comparsing为server1的NAT'ed公共IP地址等。

在那里可能有一个SSH守护进程或反向代理,它能够“理解”SSH协议,足以通过主机名来做到这一点,但我的猜测并不是(也许有人熟悉SSH v2协议可以详细说明)。

您可以将每台服务器的sshd绑定到不同的端口,并将不同的端口转发到正确的IP。 或者,你可以ssh到服务器1,并从那里访问服务器2和3。

你说你在DMZ有一台服务器,但是它有一个内部地址,并且你有一个可用的公共地址和一个当前可用的服务器。

如果你有一个IP,但想要​​SSH到三台服务器,你很可能会有一些妥协的端口。 这并不难。 任何SSH客户端都可以使用另一个端口参数

我通常会推荐在路由器上使用端口转发来打开映射到内部服务器IP的三个端口,例如端口220转到server1,端口221转到server2,端口222转到服务器3。

这与您的networking服务没有任何关系。 或者你的DNS。 你可以在端口221上连接到你的ssh服务器,比如myhost.com,或者你想要访问的任何端口。 在服务器本身,只要你的路由器映射到externalIP:220-> server1:22等等,你仍然可以把端口保持在22。

最简单的解决scheme是select三个端口号并在您的(有线/ DSL)路由器上安排端口转发。

例如,如果你的路由器的外部IP地址是172.16.45.56

forward 172.16:45.56 port 17021 to 192.168.0.1 port 22 forward 172.16:45.56 port 17022 to 192.168.0.2 port 22 forward 172.16:45.56 port 17023 to 192.168.0.3 port 22 

从互联网你只是SSH到172.16:45.56端口17022说。