再也不用记IP了,0成本(极低成本)搞定域名"动态解析"

2020-04-26 22:20:47 35点赞 354收藏 68评论

创作立场声明:本文纯属个人观点,不存在安利元素。

我要解决什么问题

卤煮最近撸了一台nas,部署了一个jellyfin,也问电信要了公网IP,每次想看个电影吧,XXX.XXX.XXX.XXX:8096。电信耙耙的IP差不多2个礼拜变一次,变了之后又要输入AAA.AAA.AAA.AAA:8096。再也不用记IP了,0成本(极低成本)搞定域名"动态解析"

能不能输入我自己的域名,直接跳转到我的jellyfin呢?不花钱的那种再也不用记IP了,0成本(极低成本)搞定域名"动态解析",一分都不花的那种。

环境&工具

卤煮的nas环境是:

Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster

工具:

  1. 花生壳(实名认证过,可以http内网穿透)

  2. nginx

实现原理

图糙理不糙图糙理不糙

我们在浏览器输入bcd.abc.com(花生壳二级域名),这个域名映射了nginx服务器,nginx服务器再返回302临时(一开始我用的是301,301会被浏览器缓存我改成302了,图片就懒的改了)重定向到我们的公网IP,此时浏览器上的URL变成了我们的公网IP,实现"动态解析"。

相信大家已经看出来了,接下来的事已经和花生壳,nginx没有半毛钱关系了,我们只是嫖花生壳一个免费域名。

具体实现

1. 花生壳

首先你需要有一个花生壳账号(ngrok,frp也是可以的)并且能使用http映射的。

花生壳http映射需要实名认证可能需要花6块钱(卤煮趁他搞活动撸的0元再也不用记IP了,0成本(极低成本)搞定域名"动态解析" ,所以标题是0成本或者极低成本)。体验版的花生壳流量1G/月,宽带1M,2个映射(还有一个映射22端口)指望他来看电影几乎是不可能的。(提一句,注册开发者搞一个测试应用,送铂金版账号3个月,我只能说这么多了)

将花生壳域名映射到8080端口,以后我们的jellyfin只需要输入这个域名就能访问啦。

映射8080端口映射8080端口

2.Nginx

这里考虑到其他NAS我这里以docker版的nginx为例。

前往dockerhub拉去官方镜像,由于众所周知的原因,我建议您先搞个加速器,不然你可能需要一个晚上(毕竟我们不是罗志祥晚上还是要睡觉的再也不用记IP了,0成本(极低成本)搞定域名"动态解析"

命令 docker pull nginx命令 docker pull nginx

拉去完镜像之后,找个文件夹新建一个nginx配置,名字为web.conf,内容如下:

server {
listen 8080;
location / {

real_ip_header X-Forwarded-For;
set $out "http://你的公网ip:8096";
rewrite ^(.*)$ $out$request_uri redirect;
}
}

这个配置的意思是监听8080端口(必须和花生壳的映射端口一致),不管三七二十一301跳转到我们的公网IP去。

启动容器我们的nginx

卤煮还是喜欢使用docker-compose,文件如下:

web:
image: nginx
volumes:
- ./刚刚的web.conf:/etc/nginx/conf.d/web.conf
- 你的log文件夹:/var/log/nginx/
ports:
- "8080:8080"

如果你只需要docker命令,那么:

docker run --name 你的容器名字 -v 刚刚的web.conf:/etc/nginx/conf.d/web.conf -v 你的log文件夹:/var/log/nginx/ -p 8080:8080 -d nginx

说明下:/etc/nginx/conf.d/是nginx的配置目录,/var/log/nginx/是nginx的日志目录

做完这一步,小伙伴们你们可以测试一下是否成功,离完美还剩1%,接下来就是我们写脚本定时更新我的的公网IP了。

3. 更新公网IP的脚本

原理就是把nginx配置也就是上面的web.conf中的第6行的IP更新,保证它的正确性。

#!/bin/bash

#实时获取公网ip
PUBLIC_IP=`curl icanhazip.com`

IP_FILE='/tmp/ip.txt'
touch $IP_FILE

SYS_PUBLIC_IP=`cat $IP_FILE`

echo "系统公网IP:$SYS_PUBLIC_IP,本次获取的IP:$PUBLIC_IP"

#读取公网ip
if [ "$SYS_PUBLIC_IP" != "$PUBLIC_IP" ] ; then
echo $PUBLIC_IP > $IP_FILE
#这里6c表示第6行替换为XXXX
sed -i '6cset $out "http://'$G_PUBLIC_IP':8096"; ' 你的web.conf
#重启nginx容器
docker restart 你的nginx容器id
fi

把以上脚本加入到开机启动,设置成每1天跑一次就OK啦。

总结

完美的方案还是用dns去解决域名和IP直接的事情,不过这也算是一种方法啦(还是白嫖爽啦再也不用记IP了,0成本(极低成本)搞定域名"动态解析" )。

卤煮本来还想通过nginx判断客户机真实IP完成一个域名搞定内外网。(外网跳转到外网IP,内跳转到内网IP),无奈花生壳没法获取到真实IP,如果大佬们有方案记得通知卤煮。(不要跟我说修改路由器host之类的,卤煮的路由器是老款菊花牌,不支持这些花里胡哨的功能)

新人投稿,码字不易,请点个赞



文章很值,打赏犒劳作者一下

打赏
2人已打赏
68评论

  • 精彩
  • 最新
  • 有公网的话,用freenom白嫖的域名+群晖自带的ddns更简单更香

    校验提示文案

    提交
    我选择直接公网IP访问,发现变了就打开路由器APP远程查看公网IP

    校验提示文案

    提交
    够硬核。问题是群晖端口映射我一直没弄好,好多app的端口映射不成功,外网不能用。

    校验提示文案

    提交
    还有9条回复
    收起所有回复
  • 花生壳现在没有免费域名可以白嫖了吧? [火冒三丈] [火冒三丈]

    校验提示文案

    提交
    freenom更香

    校验提示文案

    提交
    啊?没注意,有段时间免费我撸了2个账号

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 太复杂了,还是梅林路由器用aliddns自动解析IP吧,域名买一个10年才100出头 [得意]

    校验提示文案

    提交
    这个是首选方案***

    校验提示文案

    提交
    23十年的腾讯云域名也挺香

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 没有看懂你这个骚操作,有公网用端口映射无论方便性稳定性都比这个方案好啊

    校验提示文案

    提交
    这个方法还有一个好处,我觉得也是唯一好处就是我不用手工输端口号 [高兴]

    校验提示文案

    提交
    楼主说了他的公网IP差不多2个礼拜变一次的,估计也是一个池子

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • Frp了解下

    校验提示文案

    提交
    内网映射都会走代理机流量,代理机带宽不够就gg

    校验提示文案

    提交
    收起所有回复
  • Duckdns 不要钱 不过别到处宣扬 免得被封

    校验提示文案

    提交
    dns域名什么的,访问还是需要输入端口号,这个方法唯一的好处就是不输端口号

    校验提示文案

    提交
    域名是必须的 用http协议在公网裸奔不能接受 我都是配好域名搞好tls证书才敢放行公网 至于端口号 反正记录在客户端app里了 只要不变就行

    校验提示文案

    提交
    还有10条回复
    收起所有回复
  • 电信怎么问的公网ip,直接响客服要?

    校验提示文案

    提交
    恩 打电话要,基本都能给

    校验提示文案

    提交
    收起所有回复
  • 买个十年top,xyz域名不香吗?一年超便宜。然后用脚本定时修改域名解析

    校验提示文案

    提交
    80端口用不了,不香 [傻笑]

    校验提示文案

    提交
    可以用80

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 又一台流量肉鸡

    校验提示文案

    提交
  • TPlink路由器自带tpddns不香么 [皱眉]

    校验提示文案

    提交
    一开始我也想折腾下,结果发现tp直接有,还免费

    校验提示文案

    提交
    收起所有回复
  • 不大明白问一下,这个功能不是很多机器都有?比如f3322?

    校验提示文案

    提交
  • 阿里云自带的解析就挺好用啊

    校验提示文案

    提交
  • 花生壳要买会员的,不然有带宽和流量限制

    校验提示文案

    提交
  • ddns+路由器端口转发不就好了?为什么要弄这么复杂?

    校验提示文案

    提交
  • poddns了解一下

    校验提示文案

    提交
    百度一下没搜到这玩意

    校验提示文案

    提交
    偶,我打反了,是这个DNSPOD

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 关键是免费的域名跟解析,别的都是浮云,我用frp,很好使,放我的私有云上,就是顺带的事。

    校验提示文案

    提交
  • 大妈上都开始搞运维的活儿了?

    校验提示文案

    提交
  • 外行看门道,内行看热闹 [抠鼻]

    校验提示文案

    提交
  • 域名都不是事,主要是公网IP的问题,用frp又慢得难受 [尴尬] 只能凑活用了

    校验提示文案

    提交
  • 路由器自带的comm不香么?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
天猫超级红包
距结束04:21:30
现金红包天天领,最高8888元
红包按钮
最新文章 热门文章
354
扫一下,分享更方便,购买更轻松

举报成功

该举报信息「小小值」会优先核实并处理哦!