搭建一台服务器(阿里云DDNS)

1.租用云服务器(成本太高)

2.手动搭建一台

搭建一台服务器无非就是想通过外网可以随时访问到服务器,通常第一步我们得打通网络环境,如:

1.直接访问(固定公网ip)

2.代理访问(vpn、frp、某某123、某某壳、等)

根据使用场景以及成本选择不同方案,代理访问速度往往没有直接访问流畅,尤其有些第三方平台有带宽限制

本文介绍如何使用普通宽带与家用电脑搭建一台服务器,主要解决以下问题:

1.家用网络端口映射

2.固定ip地址

这个只是动态分配的ip,不同于固定ip,默认情况运营商可能分配的私有ip,找客服改一下就行了

现在运营商的光猫都自带拨号跟路由功能,通常情况装机人员使用的是路由模式,装机人员会帮你配置宽带拨号信息在光猫里,连上lan口就能上网,如果说给的光猫能进行有效的端口映射也无妨,不能则需要改成桥接模式,然后自己在光猫下级用可端口映射的路由器设置拨号,关键点就是要端口能映射出去

由于普通宽带分配的公网ip是动态的,重启路由或者过一段时间就会重新分配一个ip,所以要保证域名解析的ip是当前分配的ip;在阿里云注册个域名,便宜的1年几块钱不等

本地外网ip同步到阿里云域名解析,达到动态解析ip地址目的

阿里云有相关sdk管理域名解析,分2种:

一种以http规范的API文档

一种以java语言封装的jar包

主要代码

 val launch = GlobalScope.launch { delay(1000) while (true) { println("==============[${getNowTime()}]==============")  var ip: String? = null println("来自[${ddnsProperties.config.ipUrl}]") for (i in 1..3) { if (!StringUtils.isEmpty(ip)) break println("获取IP地址:第${i}次") ip = ipService.getLocalOutIp() } if (StringUtils.isEmpty(ip)) throw Exception("无法获取IP地址")  ddnsProperties.domain.forEach { domainProperties -> val domain = domainProperties.value  val records = domainRecordsService.getDomainRecordsByType(domain.domainName, "A") .associateBy {  it.rR }  domain.rrs.forEach { rr -> println("同步解析记录-->$rr.${domain.domainName}") val record = records[rr] if (record == null) {  val addRecordDTO = AddRecordDTO().apply { domainName = domain.domainName type = "A" rR = rr value = ip } println("添加解析记录-->${addRecordDTO.toString()}") domainRecordsService.addDomainRecord(addRecordDTO) } else {  if (record.value == ip) { println("IP地址无需变更") } else { val updateRecordDTO = UpdateRecordDTO().apply { recordId = record.recordId type = record.type rR = record.rR value = ip } println("更新解析记录-->${updateRecordDTO.toString()}") domainRecordsService.updateDomainRecord(updateRecordDTO) } } } } println("=================================================") delay(300000) } } 

application.yml

top: laoshuzi: ddns: config: regionId: cn-hangzhou accessKeyId: <accessKeyId> accessKeySecret: <accessKeySecret> IpUrl: http://ip-api.com/json domain: laoshuzi: domainName: <domainName> rrs: - <rr> 

原文链接:https://blog.csdn.net/qq_17680723/article/details/91574933

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享