如何为网络上的每台计算机赋予自己的 URL?

如何为网络上的每台计算机赋予自己的 URL?

记得我在大学的时候可以通过指定p1.someuniversity.edup2.someuniversity.edu通过ssh来远程访问计算机实验室中的各个工作站。

现在我在家里设置了类似的东西:

  • 静态 IP:123.123.321.321
  • 域:mydomain.com
  • 多台计算机(包括家庭服务器)均连接到路由器
  • 路由器配置了dd-wrt

我能够使用路由器上的端口转发功能远程桌面访问家庭服务器,然后告诉我的域名注册商指向www.mydomain.com我的静态 IP。但是,如果我想访问网络上的其他计算机怎么办?例如,如果我在网络上有一个 ubuntu 桌面,我如何通过 ssh 访问它wkst1.mydomain.com?另外,我的大学计算机实验室的网络设置类型有名称吗?

答案1

URL 旨在指定三件事 - 协议、主机和该主机上资源的位置 - 而不仅仅是主机。并非所有协议都使用 URL 或与 URL 兼容,SSH 就是其中之一(当然,SFTP 有所不同)。

您真正想问的是如何为网络上的每台计算机提供其自己的外部可解析域名。

您可能是标准的住宅 ISP 客户,ISP 会给您一个 IP,您的机器位于私有 IP 范围 LAN 上并使用 NAT 路由器。因此,如前所述,您无法执行大学所做的操作 - 大学所做的操作取决于每台机器都有自己的公共 IP 地址,这对于大学来说是可能的,因为有些大学分配了较大的 IP 块。但是,作为住宅 ISP 客户,您不会遇到这种情况。

没有什么可以阻止您在家中运行自己的 DNS 服务器,告诉路由器将您的私人 DNS 服务器作为“唯一”DNS 服务器,并使用它为网络上的每台机器分配一个内部可访问的域名。它会完美地运行 - 在您的家中(直到您想要解析外部主机,例如 google.com - 除非您设置 DNS 转发器,但那是另一个话题)。

我自己从未太清楚 DHCP“域”选项,但在这种情况下,它不会也不能影响从网络外部可访问的任何内容。

对于您的单个公共 IP,您可以为其获取一个域名,并且有提供商(例如 no-ip.com)为您提供免费的域名 - 您需要在网络上的某个地方运行客户端,以使用公共 IP 地址的更改来更新提供商。我相信 no-ip.com 允许您将最多两个域指向您喜欢的任何机器。但是,如果您将它们都指向您的单个公共 IP,它们实际上指向同一个地方,因为域除了“此字符串 = 此 IP 地址”之外没有任何概念。

因此,使用 SSH 之类的东西时,您只能使用端口转发。您必须告诉路由器将传入流量(例如 TCP 1000)转发到第一个工作站的私有 IP(端口 22),然后将 TCP 1001 转发到第二个工作站的私有 IP(端口 22)。

使用 HTTP,许多 Web 服务器可以执行称为“反向代理”的操作,其中一个 URL 实际上是另一个 Web 服务器的前端。因此,如果您在工作站 1 上运行 Web 服务器(即http://mypublicname.no-ip.invalid) - 您可以配置 Apache 以将目录“workstation2”之类的内容反向代理到也运行 Apache 的第二个工作站。因此,最终结果是http://mypublicname.no-ip.invalid与工作站 1 上的网络服务器对话,并且http://mypublicname.no-ip.invalid/workstation2告诉工作站 1 上的 Web 服务器与工作站 2 上的 Web 服务器通信,并将结果转发给您。这是特定于协议的,我不确定除了 HTTP 之外的协议是否也可以“反向代理”。除非您有一些支持该协议的脚本或 Apache 插件,否则您无法通过 HTTP 反向代理进行 RDP。

您可能还想了解 SSL VPN,例如Adito 又名 OpenVPN ALS。它允许您设置隧道,并提供了一个非常好的界面。它非常方便,值得您花点时间进行设置。

答案2

您的大学实验室完全是标准的 - 没有什么特别之处。在您的家庭环境中,您将通过单个 IP 访问所有机器,因此您的起点很好,但随后您需要将备用端口转发到其他系统。示例:将端口 2022 转发到 Ubuntu 桌面上的端口 22,然后 ssh 到相同的主机名但端口 2022 以访问 Ubuntu 机器上的 SSH。在这种情况下,遵循 Alex 的建议并设置静态内部 DHCP 租约将对您大有裨益。

答案3

你需要启用 dnsmasq服务并为您的计算机分配静态 DHCP 租约(可选)和域名

答案4

您所在大学的计算机与大多数普通互联网一样:每台计算机都有自己独特的 IP。此外,他们还配置了 DNS,以便您可以根据名称连接到计算机,而不必输入 IP 号码。

您可以将其与每个人都有一个电话号码进行比较,该号码列在 iba 全球电话簿中

您可以在家中做类似的事情。但是,大多数家庭设置仅配备一个 IP v4 地址。这意味着您可以:

  1. 同一时间只使用一台电脑,或者
  2. 你需要施展一些‘诡计’。

这里的诡计通常是NATing。电话类比是只有一个电话号码。在门口增加一名接待员。每个电话不是打给大楼里的某个人,而是打给接待员。然后你让他或她帮你接通其中一部内部电话。

由于只有一个号码(单个电话号码对应单个 IP),您无法通过呼叫指定内部的特定人员(计算机)。您需要添加一些额外的技巧。例如,来自电话号码 A 的所有呼叫将立即转接至销售部门。来自电话号码 B 的所有呼叫将立即转接至法律部门,等等。

在这种情况下putting the call though是端口转发。

您的防火墙将识别与您的 IP:端口的连接,并且不会建立本地连接,而是将其转发到您的一台计算机。

由于每个 IP:端口组合都是唯一的,因此您只能将其转发到单台计算机。

如果您想访问 NAT 网络内的多台计算机,则必须为防火墙配置针对不同端口的几条转发规则。

示例:
将所有到 (my_ip:port_2022) 的连接转发到计算机 A:,端口 22。
将所有到 (my_ip:port_3022) 的连接转发到计算机 B:,端口 22。
将所有到 (my_ip:port_4022) 的连接转发到计算机 C:,端口 22。

唯一可能的例外是 HTTP,因为它不仅向 IP:port 发送请求,还在其包中提及主机名。然而,这是一个例外,大多数协议都没有提及目标主机名。

相关内容