type
Post
status
Published
date
Aug 26, 2024
slug
summary
tags
建站
category
技术分享
icon
password
Tweet Link
Staus
Done
类型
文章
平台
CSDN
公众号
💡
大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。
前面文章介绍了家庭服务器接入外网的三种方式的第一种,今天介绍第二种,即通过获得电脑公网IP,然后再设置动态DNS保持更新。这种方案的成功率与你所使用网络运营商相关,我了解有些地方运营商并不同意给你分配公网IP。
notion image

框架

先看一下大概的框架,主要的思路就是自己在家庭路由器上拨号获得外网的IP,然后与服务器的端口绑定,就能通过外网访问家庭服务器了。
notion image

获得运营商的公网IP

我家里是使用电脑的网络,我就以电信为例
  1. 与10000客服沟通:电信光猫改成桥接模式,在路由器端重新拨号;
  1. 与10000客服沟通:把外网IP设置为公网IP(他们一般不会同意,说没有了。强烈要求,不给投诉,就可以免费一年)
  1. 重新在路由器上拨号就看得到公网IP(如果判断是不是公网IP,在https://www.ip138.com/查一下本机IP和外网IP是同一个,此时的IP就是公网IP)。同时也可以通过curl ifconfig.me获得外网IP。
  1. 在路由器设置端口转发
    1. notion image
到此,已经获得一个公网IP,并与ubuntu服务器做了端口映射。
 

域名绑定

  1. 购买域名,在阿里云购买一个top域名,大概22元/年。
  1. 阿里云域名映射:添加一条A记录
    1. 此时获得虽然是公网IP,但这个IP是动态,我测试下来大概一周变更一次,就需要写一个脚本,定时更新这个阿里云域名DNS服务,这个下再再讲。
  1. 测试:ssh -p 26919 koffu@xxxxx.top
    1. notion image
 

动态域名设置

之前提到,运营商给发布的IP虽然是公网的,但是动态的,我测试下来大概一周变更一次。所以,接下来我们要设置一个自动化任务,每天固定时间点去获取公网IP,然后通过软件接口去更新阿里云的域名解析的A记录。那么无论你什么时候访问这个域名,都是解析到更新的正常的IP。
 
先在阿里云的RAM访问控制,创建一个用户。
notion image
notion image
notion image
接下来完成账号验证,就创建成功了,AccessKey ID和Secret生成了,后面需要用到。
notion image
点击用户名,进行权限管理,添加DNS解析权限
notion image
 
 
自动更新的python代码如下,自行替换自己的ID和SECRET
 
 

小结

到此,本文就详细介绍了如何从运营商获取公网IP,并绑定一个域名,同时在服务上跑一个定时任务,运行脚本更新IP和域名的映射关系,实现DDNS。如果有遇到什么问题,欢迎留言讨论
 
 
参考:
家里的电脑通过电信宽带设置成外网服务器_厦门申请公网ip-CSDN博客
阿里云DDNS动态绑定域名与IP实现远程调试远程办公-CSDN博客
域名绑定动态IP最佳实践_动态ip绑定域名-CSDN博客