家里放了一台开发电脑 linux 系统,经常要存储或者使用一些软件,怎么样能用域名和端口在公网访问呢

1.环境说明

网络运营商:杭州电信
华为路由器
普通装了 linux 系统电脑一台,支持远程唤醒
域名一个,且域名是在阿里云注册管理的:dev.foxwho.com
docker

1.1 电信光猫路由器配置 - 简要

首先电脑中做一个简单服务器,只要输出 简单 http 信息即可,这样方便测试。如果电脑有web 的界面,可以直接使用它
假设这里的端口是59090
下面重点说明,
不要使用光猫自带的端口转发,一定要使用路由器的端口转发。
不要使用光猫自动拨号上网,一定要使用桥接上网,有路由拨号上网(固定IP也可以)。
然后路由器中设置DMZ 主机或者 转发端口,这里已DMZ 主机为例。
在百度搜索IP 两个字母,看看IP地址是多少(假设输出Ip: 123.123.123.123),然后 用 123.123.123.123:59090 访问 是不是你想看到的 信息,如果正常,那么 可以进行下一步了

1.2 阿里云 accesskeys 配置

https://usercenter.console.aliyun.com
登录阿里云账户,进入控制台,然后 点击 右上角 用户头像, 在下拉 菜单中 选择 accesskeys
然后选择 创建 accesskeys,把 复制保存AccessKey信息(AccessKey ID和Access Key Secret)
假设:
AccessKey ID:131323131231212
Access Key Secret:dsfasfwerwefdfsfsdfsfs

1.3 docker

下载,安装 docker 请自行百度

容器 下载

容器地址
https://hub.docker.com/r/chenhw2/aliyun-ddns-cli/
源码地址
https://github.com/honwen/aliyun-ddns-cli

下载容器镜像

docker pull chenhw2/aliyun-ddns-cli

启动容器

docker run -d \
	--restart=always \
	--name ddns-aliyun \
    -e "AKID=131323131231212" \
    -e "AKSCT=dsfasfwerwefdfsfsdfsfs" \
    -e "DOMAIN=dev.foxwho.com" \
    -e "REDO=600" \
    chenhw2/aliyun-ddns-cli

参数说明
AKID=阿里云申请的Access Key ID
AKSCT=阿里云申请的Access Key Secret
DOMAIN=你需要在阿里云添加的主机域名解析,如 dev.foxwho.com
REDO= 监控秒数
–restart=always 出错自动重启
–name 定义容器名称 ddns-aliyun
-d 后台运行

容器启动成功后,你可以看看 域名解析是否已经自动更新解析IP

阿里云接口
https://help.aliyun.com/document_detail/29774.html?spm=a2c4g.11186623.2.20.fDjexq
https://error-center.aliyun.com/status/product/Alidns?spm=a2c4g.11186623.2.16.290f124f18JndT

群晖 nas 配置
https://post.smzdm.com/p/571595/

参考
https://www.mydigit.cn/forum.php?mod=viewthread&tid=80103
http://www.xuecan.net/wenku/19164.html

FAQ

Aliyun API Error: RequestId: 8488BB32-1411-4C7F-ABE6-B5B48D33A7BD Status Code: 400 Code: InvalidTimeStamp.Expired Message: Specified time stamp or date value is expired.

本地服务器的时间 与阿里云的服务器时间相差太多。

同步时间,然后重启 docker restart ddns-aliyun 即可解决

ntpdate ntp.aliyun.com 
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐