假设我的内部 IP 是 192.168.0.1
我的外部是 2.222.333.444
1.222.333.444 是动态的,每次更改为主机名 www.website.com 时都会受到监控
我想链接我的外部 IP,以便当我连接主机名时,它会变成:www.website.com > 2.222.333.444 > 192.168.0.1
答案1
首先,您需要向提供 API 访问的 DNS 提供商注册您的域名(www.my-website.com),例如亚马逊网络服务(Route 53)。
然后,您需要在您的家庭网络上有一个小脚本,以持续检查您的公共 IP,例如以下 bash 命令。
wget -O - -q icanhazip.com
。
该脚本应该检测 IP 是否已更改(与缓存值不同),如果是,则在 API 请求中使用该 IP 来更新名称服务器记录。
最后,您需要在路由器上使用端口转发功能将传入请求路由到您希望处理该请求的静态 IP,例如 192.168.0.1。您还需要通过设置静态 IP 或配置提供 DHCP 服务的任何内容(通常是您的“家庭集线器”)来保持计算机的私有 IP 不变。不幸的是,所有集线器都有不同的功能,所以我无法帮助您。例如,我的 BT 集线器可以根据 MAC 而不是 IP 将端口转发映射到设备,因此您仍然可以拥有动态静态 IP。
我推荐 AWS 纯粹是因为他们有很多可适应多种语言的 SDK,因此你很可能会找到一个适合你喜欢的语言的 SDK,但是你需要建立一个帐户,而且它不是“免费的”。
我刚刚注意到你已经标记了“minecraft”问题,在这种情况下,我强烈建议你直接获取 VPS因为这样上传速度会更快,网络连接也会更可靠。例如,VPS 会有一个静态 IP,因此在名称服务器更新时不会有任何停机时间。使用 DDoS 攻击使 minecraft 服务器离线也比使用家庭连接稍微困难一些,具体取决于您选择的提供商(有些甚至提供DDoS 保护产品,这超出了本答案的范围)。
但是,如果您决定继续使用家庭托管路线,则需要将 TCP 端口 25565 转发到路由器上用于 Minecraft 的私有 IP,除非您更改服务器上的默认端口。
答案2
简单如 1、2、3...
- 订阅 DNS 服务
- 在本地网络上安装 DNS 更新程序
- 将传入流量路由至所需计算机
订阅 DNS 服务
域名服务器 (DNS) 将 IP(外部)地址映射到域名。虽然您可以创建自己的 DNS,但最好将其留给专业人士,例如:
- DYN 远程访问- 我使用的就是这个,每年 25 美元。您可以提供自己的域名,也可以从自己的众多域名中选择一个子域名(yourchoice.homedns.org)。您可以路由 31 个不同的 IP。
- 无 IP- 有三个版本,可以路由 3 个 IP,并且您必须使用它们的域名。付费版本的价格为 19 美元。我从未使用过它们,但它们非常受欢迎。
- 亚马逊 53 号公路- 前 25 个托管区域每月每个托管区域 0.50 美元。如果您只需要路由 1 个 IP,这可能是最便宜的路由。
您不会出错,只需选择一个并注册即可!有关 DNS 的更多信息,请参阅:
http://en.wikipedia.org/wiki/域名系统
在本地网络上安装 DNS 更新程序
上述每个 DNS 服务提供商都会提供可安装的软件,该软件会自动将您的外部 IP 地址发送到他们的服务器。这些工具效果很好,但您的计算机必须始终是一台计算机才能发送更新。
但是,我强烈建议您改用路由器,它们耗电量少、始终处于开启状态,而且比计算机更可靠。大多数路由器都允许您输入 dyn(或其他服务)用户名和密码,然后路由器会完成其余工作。有些 ISP 提供的路由器/调制解调器无法/不愿意这样做。如果您(或任何其他人)的情况如此,请发表评论,我会附上这些说明。
在路由器上输入您的凭据或安装更新客户端后,登录您选择的提供商网站上的 DNS 帐户并验证一切正常。
将传入流量路由至所需计算机
您的家庭网络很可能有一个路由器,它负责通过路由器防火墙通过某些端口处理路由器传入/传出流量。基本步骤如下:
确定需要转发的端口。这取决于应用程序的类型、软件的编写者以及软件的配置方式,但对于 mindcraft,您需要 25565。portforward.com 为许多应用程序提供资源。
登录你的路由器
为你的电脑分配一个固定的 IP 地址(如果它能够转发到 MAC 地址,你可以使用 DHCP
将所需端口转发至 IP/MAC 地址
其他资源
此答案旨在提供所需主要步骤的广泛概述,而不是具体细节。所描述的具体任务已在其他形式中多次回答过。如果您找不到有关具体任务的信息,请对此问题发表评论,我会链接相应的指南。
另请务必检查:
http://portforward.com/softwareguides/minecraft/portforward-minecraft.htm