搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs

             搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs

动机:网上看过一个大神用自己的服务器做备份(同时还鄙视了bdyun)正好前段时间下载太多给限速了,表示深以为然呀!哈哈

原则:既然是自己折腾那么要将免费进行到底,嘿嘿!!!

1.准备个人电脑

  一个个人电脑最好是笔记本或手机,平板之类的,这样功率会很低 。我个人用的是几年前的老联想电脑配置一般,内存条还让我拆了,只能从另一个拆了个2g的内存条。不过这配置已经比买的云服务器好不少了。配置就不贴了。

  开始装linux系统。先准备UltraISO,u盘和一个系统(ubunutu18),系统看个人使用习惯,我觉得ubuntu比centos好用,单纯个人感觉,如果对稳定性要求比较高的还是建议使用centos,喜欢折腾和好看的可以选择ubuntu哦,win的用户直接server版本。下载网上好多可以随意下。

  使用ultralSO装系统,参考:

      https://jingyan.baidu.com/article/154b46311befea28ca8f41ae.html

  然后笔记本开启u盘启动,如果是原生的联想系统可能要先格式化系统盘,这个之前有遇到过,不过我的这个本子早就格过了。

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第1张图片

这个选项里选择清除整个盘并安装ubuntu,共存系统太浪费硬盘了不建议这样用,尤其对老电脑,之前多次这样装搞坏了2个硬盘,哈哈。这个装系统部分,就不多说了基本是下步下步就好了,如果不想用英文的在选择语言那项选中文就行了。

直接装ssh这个基本必须的如果是linux。

$sudo apt install -y openssh-server

其他的看个人,我还装了nginx, 用来做代理,我只开放了22,8081端口,所以用nginx做代理达到好一个端口多用的目地。

2.开通公网ip

  如果不知道个人是不是有公网ip的可以看下路由和直接baidu的ip是不是一致。一致就是公网ip.不确定也可以直接打电话问运营商,如我的是电信。直接打10000找人工去开通公网ip,如果客服问就说弄监控基本上都给开的。然后5分钟重启路由就好了。这时的baidu到的ip就是你的公网ip。

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第2张图片

  但这时的ip其实不是永久是你的,只要你的宽带停机或路由重启断电都会重新给你分配ip。这里就是一个大坑,我刚弄好时正好没多久就遇到停机,然后正好不在家,ip变了。。。刚想找下搭好的网盘资料结果不知道ip了,这个难受呀!不过我最终还是折腾好了,在下面有详细说明。

3.路由转发

  有了公网ip,还不能访问到你的个人‘云‘。还要用路由映射转发。既将你的电脑的端口开放到你的公网ip上。请参考:

https://jingyan.baidu.com/article/1709ad8042b8a74634c4f0e2.html

然后找个tomcat或nginx测试下公网ip加端口能不能访问。

  一般路由都有映射功能,如果没有只能换了。。要记得映射22,这个linux必须的,然后我又开了个8081,如果你是映射80或8080,在用内网ip能访问公网不行的话,很有可能是运营商禁了端口。所以尽量别用。

4.申请免费域名

www.freenom.com,这个网站可以申请免费域名。

填写你想要的域名,然后检查下。如:

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第3张图片

 

点击获取,然后一路确定和注册。

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第4张图片

这里选择12月的,然后到期可以免费续期,这个我没试过还没到期呢。

注册后进入下图管理你的域名

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第5张图片

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第6张图片

点击Manage domain

进入下图在点红色箭头处,

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第7张图片

下图我个人用了阿里云的域名解析也是免费的,所以使用自定义的,也可以使用默认的先说使用自定义的,下图的2个nameserver从阿里云处获取

 

 

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第8张图片

 

从阿里云处获取DNS,先添加域名,然后鼠标悬浮在第三列上就会出现如下图的DNS地址,填写写到上图就可以了

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第9张图片

 

 

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第10张图片

 

 

 

 

 

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第11张图片

 

这里的@代表你可以直接访问假如你申请的是do-bi.tk,那么你可以直接访问do-bi.tk,如果你填写的是www那么你就要www.do-bi.tk,明白了吧。

如果是默认的如下图:

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第12张图片

 

点击manage frenom dns,填写下图内容保存即可。

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第13张图片

5.python动态解析DNS

上面的问题解决了通过简单好记的域名关联到了个人电脑的ip,但是还有一个上面提到的问题,如果你的路由重启公网ip会变化的。域名就会失效。我当时想到2个解决办法:一个是通过脚本获取ip定时发送email给自己。但这样有个问题是域名的意义就不大了,每次xshell之类的都要重新换ip,或者去重新解析DNS。第二个是看有个cloudxns可以动态解析DNS,但不幸运的是这个网站好像关了,虽然网站还在服务停止了,连注册都不行了。但它给了我个启发,原来可以这样做,我就开始找解析DNS的工具,最终发现原来freenom有解析的API,这种必须使用默认的nameserver。http://www.freenom.com/en/freenom-api.html,这是api地址,大家如果英文好可以看下,虽然我没试成功,哈哈。主要是我个人英文不怎么样。知道怎么去做,就知道怎么去搜索了,然后我就发现阿里的域名解析功能,很不错,免费的也够用,还记得我们的原则吗。嘿嘿。

  脚本我已经写好了,如果你想用的话先要注册阿里云,获取AK。

https://usercenter.console.aliyun.com/?spm=a2c1g.8271268.10000.95.1ee7df25LOpdGE#/manage/ak  在这个网地址申请后下载下来会有个.csv文件,也可以直接在页面复制,不过只能看一次。

脚本:里面的三个参数id,key,和record_id是要换你自己的(下面的我随意写的应该不会成功的 哈哈),record_id可以在下图的操作找到。

搭建个人云服务器ubuntu18+公网ip+免费域名绑定freenom+个人网盘chfs_第14张图片

#!/usr/bin/env python
#coding =utf-8
#!pip install schedule
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkalidns.request.v20150109.UpdateDomainRecordRequest import UpdateDomainRecordRequest
import requests
import re

from aliyunsdkalidns.request.v20150109.DescribeDomainRecordInfoRequest import DescribeDomainRecordInfoRequest
import time  
import os  
import schedule  




id = 'LTAIdBHkdcozZ7eo'#AK的id
key = 'Zl2TjasivfasnoukPdasuNJJkaasdKWsj6fI1F0'#AK的key
client = AcsClient(id, key, 'cn-hangzhou')
record_id = '17786684s56asd6353920' #这个id是你新建的解析记录id


def get_ip():
  responses = requests.get("http://ifconfig.me")
  print(responses.text)
  return responses.text

def update(ip):
  request = UpdateDomainRecordRequest()
  request.set_accept_format('json')
  request.set_Line("telecom")
  request.set_Value(ip)
  request.set_Type("A")
  request.set_RecordId(record_id)
  request.set_RR("@")

  response = client.do_action_with_exception(request)
  # python2:  print(response) 
  print(str(response, encoding='utf-8'))

def query():
  request = DescribeDomainRecordInfoRequest()
  request.set_accept_format('json')
  request.set_RecordId("17782361597555712")
  response = client.do_action_with_exception(request)
  # python2:  print(response) 
  print(str(response, encoding='utf-8'))
  return str(response, encoding='utf-8')
  
def regip(strs):
  #精确提取IP
  result = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", strs)[0]
  if result:
      return result
  else:
      return '0.0.0.0'
#query() 

def deal():
  localhost_ip = get_ip()
  domain_ip = regip(query())
  if domain_ip == '0.0.0.0':
    print('出错了!')
  elif domain_ip == localhost_ip:
    print('ip一致不需要更新')
  else:
    print('更新ip:'+localhost_ip)
    update(localhost_ip)
    

#schedule.every(10).seconds.do(deal)
schedule.every().hour.do(get_ip)
while True:
    schedule.run_pending()
    time.sleep(10)

#print(regip(query()))

 

然后将该脚本复制到一个.py的文件中名字自己想个就行,不过要先配置python3的环境,参考如下:

https://www.runoob.com/python/python-install.html

配置好环境先执行下列:

pip install aliyun-python-sdk-domain  aliyun-python-sdk-alidns aliyun-python-sdk-core-v3 aliyun-python-sdk-httpdns requests schedule

如果想测试下将#schedule.every(10).seconds.do(deal)的#删除
schedule.every().hour.do(get_ip)这个加个#就会在每10多秒跑一次

最后将该脚本做成服务就可以了,我的是ubuntu18,请参考https://www.cnblogs.com/airdot/p/9688530.html

将$nohup 绝对路径的脚本.py文件 &加入  /etc/rc.local文件中即可

7.最后总结测试

因为我们的原则是免费,但多少还要有付出的,比较电费。。。,我测试过我的笔记本电脑的功耗在11~18w之间,那么以南京电价算来(0.5583*12+0.3583*12)*0.018*365=72.264744元,意味你每年花100左右就可以用上多核超过一G内存超大硬盘的云主机,简直不要太爽哦。

注意点:

ubunutu在合盖后不会待机所以要设置下:

编辑下列文件:/etc/systemd/logind.conf

#HandlePowerKey 按下电源键后的行为,默认 power off
#HandleSleepKey 按下挂起键后的行为,默认 suspend
#HandleHibernateKey 按下休眠键后的行为,默认 hibernate
#HandleLidSwitch 合上笔记本盖后的行为,默认 suspend(改为 lock;即合盖不休眠)在原文件中,还要去掉前面的#
运行:systemctl restart systemd-logind就会生效。

注册freenom时会比较慢,这时尽量不要开梯子,不然会有很大的机率失败,填写地区时尽量和你当前ip地址一直,这就是不能开梯子的原因。

另网盘用的是chfs自行百度吧  很简单,就偷懒下 嘿嘿

如有问题可以直接问我qq:1154415365

 

你可能感兴趣的:(云服务器)