教你把家里电脑弄成外网服务器

Posted jbps

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教你把家里电脑弄成外网服务器相关的知识,希望对你有一定的参考价值。


以下代码为Python脚本,github的下载地址:https://github.com/jibp/DomainNmeResolutionIP,有帮助的话点个星,谢谢!!!



# encoding: utf-8 from aliyunsdkcore import client from aliyunsdkalidns.request.v20150109 import DescribeDomainsRequest,DescribeDomainRecordsRequest,UpdateDomainRecordRequest import json,urllib,re #替换以下参数 下面是操作(阿里云域名解析IP的修改) ID="LTAIk9fUCW407" #这边是key 替换成自己的 Secret="O7z3f1u8YApTLubXKVEMmiu" #替换成自己的 RegionId="cn-hangzhou" #解析记录的ID,此参数在添加解析时会返回,在获取域名解析列表时会返回 DomainName="hack.com" #一级域名 替换成自己的 #想要自动修改的主机名和域名类型 HostNameList = [‘python‘] #这边可以添加二级域名或者"*"所有的都满足 替换成想设置的二级域名 Types = "A" #解析记录类型 TTL="1" #生存时间,默认为600秒 ,也就是解析时间,我这边是1秒(买了解析的会员服务) clt = client.AcsClient(ID,Secret,RegionId) #获取公网ip def GetLocalIP(): #下面获取公网IP地址,用了2种方式,防止一个失效报错 try: IPInfo = urllib.urlopen("http://api.ipify.org/?format=json").read() except IOError: try: IPInfo =urllib.urlopen("https://www.taobao.com/help/getip.php").read() except IOError: IPInfo = "So sorry!!!" theIP =re.findall(r"d{1,3}.d{1,3}.d{1,3}.d{1,3}",IPInfo) nowIP=theIP.pop(0) print nowIP return nowIP #获取域名列表(暂时无用) def GetDomainList(): DomainList = DescribeDomainsRequest.DescribeDomainsRequest() DomainList.set_accept_format(‘json‘) DNSListJson = json.loads(clt.do_action_with_exception(DomainList)) print DNSListJson #更新域名ip def EditDomainRecord(HostName, RecordId, Types, IP): UpdateDomainRecord = UpdateDomainRecordRequest.UpdateDomainRecordRequest() UpdateDomainRecord.set_accept_format(‘json‘) UpdateDomainRecord.set_RecordId(RecordId) UpdateDomainRecord.set_RR(HostName) UpdateDomainRecord.set_Type(Types) UpdateDomainRecord.set_TTL(TTL) UpdateDomainRecord.set_Value(IP) UpdateDomainRecordJson = json.loads(clt.do_action_with_exception(UpdateDomainRecord)) print UpdateDomainRecordJson #获取域名信息 def GetAllDomainRecords(DomainName, Types, IP): DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest() DomainRecords.set_accept_format(‘json‘) DomainRecords.set_DomainName(DomainName) DomainRecordsJson = json.loads(clt.do_action_with_exception(DomainRecords)) for HostName in HostNameList: for x in DomainRecordsJson[‘DomainRecords‘][‘Record‘]: RR = x[‘RR‘] Type = x[‘Type‘] if RR == HostName and Type == Types: RecordId = x[‘RecordId‘] print RecordId # 这里是 修改域名解析的IP,前提是你得在域名厂商先添加一个域名解析 # 如果当前服务器IP和域名解析中IP中一样会报错,没关系,因为两个IP 一样,不需要修改阿里云域名解析的IP EditDomainRecord(HostName, RecordId, Types, IP) IP = GetLocalIP() GetDomainList() #这个方法是显示看得 GetAllDomainRecords(DomainName, Types, IP)




--------------------------------------------------------------------------------------------------------------------------------------------

# DomainNmeResolutionIP
# 阿里云域名解析(动态)修改IP(远程家里电脑小KS)

1.代码中的ID(Access Key ID)、Secret(Access Key Secret)是您访问阿里云API的密钥,需要自己在阿里云 用户信息管理--->安全信息管理 中创建

2.代码中获取公网ip 用了2中方式,防止有一个失效,大家也可以从网上找其他的api接口获取公网IP

## 教你把家里的电脑弄成服务器
1. 确认你家的宽带用的是公网IP,判断方式看看 路由器中的公网IP 和在百度搜索的IP 地址 是否一样,不一样的话,给客服小姐姐打电话改成公网IP(当然肯定是动态的),一定要是公网IP ,否则一切免谈(GG Over)

2. 买个域名(我是在阿里云买的),域名干啥用??当然是解析你家公网IP啊,上面Python脚本主要是抓取你家电脑当前公网IP

3. 域名有了,公网IP有了,那我们先去阿里云域名管理区解析下,第一次肯定是手动添加一个域名了+解析IP(这个怎么解析,大家应该都会哈。。。)

4. 现在还不能从公司访问你家里的电脑哈,要把家里的路由器(我用的小米路由)端口转发下,比如你要访问家里电脑3389端口,那你得在路由器中转发下,自己设置转发端口,有人问了为啥要转发啊,因为电信爷爷不让你用80端口,所以我们都是域名(IP)+端口 的形式访问家里电脑,或者你在IIS上发布的网站

5. 电信爷爷给的公网IP会不定时的变,我们上面的Python脚本现在要发挥作用了,我把这个python脚本部署在家里笔记本电脑虚拟机中的 Centos7),用了cron 定时1秒跑一下这个脚本,秒解析(前提是你的域名买了秒解析的服务,大家都知道默认的域名解析是需要10分钟才生效的),阿里云的域名 有这个服务,大家升级下你的域名解析服务,也就几十块钱,不贵

6.现在的云服务器有点贵啊,如果你是土豪当我没说,我家里现在的宽带是100M,12G的笔记本内存,固态硬盘启动。。。。真TM爽,当然我们的成本就是电费+宽带,你到阿里云或者腾讯云买个服务器 100M的宽带你看看呢,得不少钱啊,2M、4M 1年 最低的也要 好几百吧 ,老子穷,不想花那钱,就想小成本弄个速度快内存快的家用服务器,兄弟们把你家里的电脑用起来吧。。。。。。


7. 如果你有什么问题不会的 欢迎发邮件给我:[email protected],或者加我QQ。。。。。

## 如果对你又帮助 帮忙点个星啊。。。。。。。。    https://github.com/jibp/DomainNmeResolutionIP

  

以上是关于教你把家里电脑弄成外网服务器的主要内容,如果未能解决你的问题,请参考以下文章

平板电脑连接有线网络,IP地址怎么获取?把家里台式的网线拿来用可以吗?

微信公众号开发之怎样将本机IP映射成外网域名

获取本机外网IP 更新到D盘的文件 追500高分

怎么把家里的本地连接地址类型设置成通过DHCP指派

如何让公司里的电脑只能访问内网而无法访问外网。

用自己的电脑做服务器,我搭建好了apache环境,如何通过外网访问本地计算机里的网站呢?