AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 767311
Accepted
Squid_Vicious
Squid_Vicious
Asked: 2016-04-01 03:59:46 +0800 CST2016-04-01 03:59:46 +0800 CST 2016-04-01 03:59:46 +0800 CST

通过域名而不是公共 IP 地址连接 SSH 端口 22

  • 772

我有一个 Draytek 路由器配置为仅从特定 IP 地址将 SSH 连接端口转发到内部服务器。除了无法连接到我们路由器的公共静态IP地址而只能连接到其域名的客户外,我和客户都可以成功连接到外部。router.domain.com 路由器是否应该分配一个域名?不太确定为什么他们只能连接到域名而不是 ip - 建议赞赏

domain-name-system
  • 1 1 个回答
  • 1510 Views

1 个回答

  • Voted
  1. Best Answer
    kasperd
    2016-04-01T05:07:52+08:002016-04-01T05:07:52+08:00

    基于问题中的有限信息,无法确定为什么使用主机名的连接有效,但使用 IP 地址连接到同一台服务器却无效。

    但是我想最可能的解释是客户端依赖 DNS64+NAT64 来连接服务器。由于 IPv4 地址用完,各种 CGN 解决方案的部署变得更加普遍。其中之一是 DNS64+NAT64,它们的限制是客户端无法通过 IP 地址连接到 IPv4 服务器。

    当这样的客户端连接到仅 IPv4 的服务器时会发生什么:

    • 客户端发送 AAAA 查询server.example.com
    • DNS64 服务器发送 AAAA 查询server.example.com
    • 权威服务器发送 NOANSWER。
    • DNS64 服务器发送查询server.example.com
    • 权威服务器响应192.0.2.1
    • DNS64 转换192.0.2.1为64:ff9b::192.0.2.1
    • 客户端连接到地址上的 NAT6464:ff9b::192.0.2.1
    • NAT64 转换64:ff9b::192.0.2.1为192.0.2.1

    如果客户端是 OpenSSH,您可以ssh -v在客户端使用来查看它正在连接的 IP 地址。如果服务器仅为 IPv4,并且客户端在给定主机名时连接到 IPv6 地址,则您将知道客户端依赖于 DNS64+NAT64。

    如果由于 NAT64 无法连接到 IP 地址,可能的缓解措施:

    • 在服务器上启用 IPv6 并在当前 A 记录旁边创建一个 AAAA 记录。客户端现在可以直接连接到服务器的 IPv6 地址。即使客户端继续使用主机名连接,这也是首选方法,因为它将消除对 NAT64 的依赖。
    • 保持原样。您说使用服务器主机名的连接有效。因此 DNS64+NAT64 正在按预期工作,无需立即更改任何内容。在大多数情况下,使用主机名的连接被认为比直接连接到 IP 地址更好,因此没有真正的理由停止使用主机名。
    • 让客户端使用主机名连接一次以了解 DNS64 映射到的 IPv6 地址,然后使用此 IPv6 地址通过 NAT64 继续连接。(有效,但似乎有点傻)
    • 让客户端使用 NAT464。这是一种解决方案,适用于客户端软件仅支持 IPv4 但客户端连接到仅 IPv6 接入网络的情况。但是,如果通过主机名的连接已经有效,那么您不需要 NAT464 并且您最好使用其他解决方案之一。
    • 2

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve