改造闲置笔记本成为云服务器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
shuizhengqi
V2EX    分享创造

改造闲置笔记本成为云服务器

  •  
  •   shuizhengqi 2017-08-17 10:35:07 +08:00 8984 次点击
    这是一个创建于 3002 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为自己有几个阿里云的域名,还有一台闲置的笔记本在家。想着在家放着也是浪费,不如拿来改造一下做成一个自己的云服务器来使用。因为国内种种的原因,80 端口默认被禁掉了,为了安全起见我也没有开启 22 端口,而是在路由器上做了一层端口映射,将路由器收到的 xx 端口转发到笔记本的 22 上。
    脚本是使用 python 和 aliyun 的 sdk 做成的,通过获取到本机的公网 ip 地址,然后调用阿里云解析的 api 来进行修改。目前实现的有三个:
    1.检测本机公网 ip
    2.判断解析是否存在
    3.判断解析地址是否与当前 ip 一致
    因为 ISP 提供的 ip 经常会变,所以使用 crontab 创建一个任务定时执行脚本之后,每次只需要访问自己的域名就能登陆到家里的服务器了

    地址Aliddns

    18 条回复    2017-08-19 07:56:06 +08:00
    Famio
        1
    Famio  
       2017-08-17 10:50:19 +08:00
    感觉你有点绕远路了,现在路由器不都是自带 ddns 服务的么,甚至大多数都是免费的啊。
    hxsf
        2
    hxsf  
       2017-08-17 10:54:56 +08:00
    还差:
    1. 判断是不是公网 IP,否则重播 PPPoE
    2. 断电重启
    shuizhengqi
        3
    shuizhengqi  
    OP
       2017-08-17 10:55:38 +08:00
    @Famio 好久没看过路由器上的了。。之前用过花生壳的,不能用我自己的域名,然后就没搞了
    shuizhengqi
        4
    shuizhengqi  
    OP
       2017-08-17 10:56:53 +08:00
    @hxsf 里面有个获取 ip 的部分,访问一个外网网址然后获取到自己的公网 ip,断电重启这种可以写在开机启动项里面吧
    hxsf
        5
    hxsf  
       2017-08-17 11:00:38 +08:00
    @shuizhengqi #4 你访问外网地址得到 IP1: 123.123.123.123 ,PPPoE 被分配到 IP2: 10.100.xx.xx 。 这种情况,IP1 是你 nat 出口,IP2 才是你的 IP, 这样没用的。

    2. 指的是 笔记本没电关机后, 来电重启。(老电脑我觉得电池应该抗不了多久吧,也不会配备 UPS 吧)
    hxsf
        6
    hxsf  
       2017-08-17 11:01:21 +08:00
    @hxsf #5

    笔记本没电关机后 指的是 停电这种意外情况下。
    ys0290
        7
    ys0290  
       2017-08-17 11:01:23 +08:00 via iPhone
    这叫 DDNS
    shuizhengqi
        8
    shuizhengqi  
    OP
       2017-08-17 11:07:01 +08:00
    @hxsf 我是打算远程拿来开发方便,没打算当作生产服务器什么的。。没考虑到这个问题
    shuizhengqi
        9
    shuizhengqi  
    OP
       2017-08-17 11:09:04 +08:00
    @hxsf ip 的话,我测试了是能用的,暂时还没遇到你说的那种
    Famio
        10
    Famio  
       2017-08-17 11:40:46 +08:00
    @shuizhengqi 我早期做的拓扑,现在已经有些改动了,给你参考下。
    https://www.v2url.com/uploads/89bc971d5f.png
    bengle
        11
    bengle  
       2017-08-17 11:43:13 +08:00
    之前用花生壳,现在电信光猫给禁了
    flyingfz
        12
    flyingfz  
       2017-08-17 11:49:27 +08:00
    我也用 nodejs 写了个,不过 是 dnspod 的。我是直接读取 路由器的状态页面的 ip 地址,然后更新域名信息。
    mritd
        13
    mritd  
       2017-08-17 11:58:04 +08:00
    就一个 DDNS。。。还改造笔记本为云服务器。。。这标题真够可以的,看了下小脚本 哈西欧爱那个 二级域名还是死的.... Tomato 笑而不语 https://github.com/mritd/ttsoft-gdddns
    anyele
        14
    anyele  
       2017-08-17 12:50:55 +08:00
    有公网 IP 就花生壳, 没有公网 IP 就 frp
    Judoon
        15
    Judoon  
       2017-08-17 13:16:52 +08:00   2
    现在路由都带 ddns 的,不能用自己域名也没关系啊,用自己域名 CNAME 一下不就完事了。
    电信没封 443,所以直接开个 nginx,路由器上吧 443 映射到笔记本上,腾讯云搞个免费的 DV 证书,也是美滋滋
    cszeus
        16
    cszeus  
       2017-08-18 07:38:57 +08:00
    @Famio 哥们常熟人啊
    Famio
        17
    Famio  
       2017-08-18 08:35:53 +08:00
    @cszeus 嗯嗯,大常熟
    fox0001
        18
    fox0001  
       2017-08-19 07:56:06 +08:00
    我的需求跟楼主差不多,我的解决方案:
    1 )国外买个 org 域名
    2 ) dnspod.cn 注册个账号,用 dnspod 提供的免费域名绑定服务,重点是提供 API,可以实现程序动态绑定(官方有各种语言的示例代码)
    3 )树莓派写个 Python 脚本,自动检测当前外网 IP,如果和上一次的结果不一致,则调用 dnspod 的 API (就是个 post 请求)更新域名与 IP 的绑定。我是 1 分钟执行一次,反正电脑很闲
    4 ) 80 端口不能访问的问题,可以用 443 端口,即使用 https 协议。申请个免费证书或者自签证书,即可
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5093 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:22 PVG 17:22 LAX 01:22 JFK 04:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86