通过名称而不是 IP 连接到 Linux

Rya*_*all 26 linux dns ssh

我是 Linux 新手(目前运行的是 Ubuntu 10.04),我刚刚完成了对我的 Linux 机器的 SSH 访问设置。目前,我必须使用ssh root@x.x.x.x来连接,但更愿意为计算机名称(如在 Windows 中使用\\name)或域名(如computername.example.com)交换 IP 。

我真的不知道从哪里开始,所以任何帮助将不胜感激。如前所述,请慢慢来-我对此还是很陌生。


编辑 1

完全忘了提及我正在尝试从 Windows 7(通过 PuTTY)连接 - 抱歉。

use*_*686 43

零配置 LAN 发现协议,按优先顺序排列:

  • 域名解析
    • 主要用于 Apple 产品和一些 Linux 程序,但也可用于 Windows 和可能的其他平台;使用 IP 多播。
    • 提供名称查找和服务发现。
    • 主机名始终采用name.local.
    • 软件:
      • Windows 10.1709 及更高版本本机支持(必须通过注册表启用);
      • 旧版 Windows 上的Bonjour
      • 的avahinss_mdnsLinux上;
      • 在 OS X 和 iOS(以及,据说是 Android)上原生支持。
  • 法学硕士
    • 用于 Windows Vista 及更高版本的名称解析,作为 NetBIOS 名称服务的现代替代方案。
    • 与 mDNS 非常相似,但功能较少——尤其是缺乏服务发现(Windows 为此使用 WS-Discovery 协议)。
    • 使用裸主机名(如 NBNS,但与 mDNS 不同)。
    • 软件:
      • Windows Vista 及更高版本本机支持;
      • systemd-resolvednss_resolve在 Linux 上使用(systemd 216 的一部分)。.
  • NetBIOS名称服务
    • Windows、OS/2、MS-DOS 使用的NetBIOS 网络协议套件的一部分……仍在使用中。不是在新网络上开始使用它的借口。
    • 提供名称解析和(在某种程度上)服务发现 - 在 Windows 中也称为“网上邻居”或“网上邻居”。
    • 使用IPv4广播(有点啰嗦),并有自己复杂愚蠢的“浏览器选举”协议来减少聊天。根本不支持 IPv6。
    • 软件:
      • 在 Windows 和 OS/2 上原生支持;
      • nmbd在 Linux 和 BSD 上使用nss_winsSamba 的一部分);
      • 显然 OS X 本身也支持它?

通常为您预先配置的方法:

  • 使用本地(内部)域名的 DNS
    • 家庭网关往往内置此功能,作为本地 DNS 缓存的一部分。通常它只是常规的dnsmasq,如果您正在设置基于 Linux/BSD 的网关,您可以手动运行它。
    • 他们从您的 DHCP 请求中获取主机名,将其注册到dnsmasq 之类的域下home,并将自己作为主要 DNS 服务器(充当 DNS 缓存)。
    • 默认情况下适用于大多数操作系统,但仅适用于 DHCP(网关不知道静态 IP 主机的主机名),并且根据我的经验通常往往相当不稳定。
    • 软件:
      • 主机上的常规 DHCP 客户端。必须发送主机名选项。
      • dnsmasq在网关上。(较大的设置可以使用dhcpd+ named。)

涉及手动配置的方法:

  • DNS使用您自己的域名
    • 无处不在。(虽然不会帮助您实际通过 Internet连接。)
    • 如果您使用 DHCP 并控制 DNS 服务器,则可以使用动态 DNS;否则所有数据都是静态的。
    • 需要拥有一个域名(这将花费几美元)。
  • 免费的 DNS 子域
    • 仍然是 DNS,只是免费的(或比域便宜得多),但也非常有限。FreeDNSDyn等服务提供在它们控制的域(例如myhost.dyndns.com)下注册单个子
      • 太频繁了,子域已经被其他人选择了......
    • 通常允许动态 DNS 更新(DynDNS 风格)。
  • /etc/hosts
    • 列出 IP 地址 - 主机名对的文本文件,必须在每台客户端计算机上手动配置。
    • %SystemRoot%\system32\drivers\etc\hosts在 Windows 上)
  • SSH 配置
    • PuTTY 或~/.ssh/configOpenSSH 中的“主机名”字段。
    • 必须手动配置。
  • PostIt 笔记遍布你的办公桌
    • 非常便宜。没有命名政策。无限的数据类型。
    • 比较不靠谱。必须手动分发。没有 TTL,这通常会导致陈旧的信息被缓存数月,直到有人注意到。查询算法效率低下。对查询的响应往往很容易丢失,有时只在显示器上留下一条胶水记录。(三个月后,你可能会发现它们被缓冲在你的桌子后面。)

  • 哈哈,我喜欢 PostIt 笔记选项 :) (8认同)
  • @grawity 很好的答案。不过有一点需要改进:请记住,本地 DNS/DHCP 在没有注册域的情况下也能正常工作。只需将 Raspberry PI 放在您的桌子底下,然后使用 dnsmasq 设置一个小型服务器。 (2认同)

Ign*_*ams 7

两个选择。

  • 所有服务:

将其条目放入 中/etc/hosts。不要触及现有线路,添加新线路。

  • 仅限 ssh:

添加包含您要使用的名称的Host节,然后在其下方添加所需的选项。~/.ssh/config请参阅man 5 ssh_config了解更多详情。

Host myserver
    Hostname 192.168.123.234
    Protocol 2
Run Code Online (Sandbox Code Playgroud)


小智 5

如果你想从任意计算机访问 Linux 盒子,你将需要一个域名。使用动态 DNS 服务将域名指向您的 Linux 计算机(或其连接的路由器)。一旦你设置了这个,它会给你带来额外的好处,不必担心你的 Linux 计算机的 IP 不断变化。