再也不用记IP了,0成本(极低成本)搞定域名"动态解析"
创作立场声明:本文纯属个人观点,不存在安利元素。
我要解决什么问题
卤煮最近撸了一台nas,部署了一个jellyfin,也问电信要了公网IP,每次想看个电影吧,XXX.XXX.XXX.XXX:8096。电信耙耙的IP差不多2个礼拜变一次,变了之后又要输入AAA.AAA.AAA.AAA:8096。
能不能输入我自己的域名,直接跳转到我的jellyfin呢?不花钱的那种,一分都不花的那种。
环境&工具
卤煮的nas环境是:
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
工具:
花生壳(实名认证过,可以http内网穿透)
nginx
实现原理
我们在浏览器输入bcd.abc.com(花生壳二级域名),这个域名映射了nginx服务器,nginx服务器再返回302临时(一开始我用的是301,301会被浏览器缓存我改成302了,图片就懒的改了)重定向到我们的公网IP,此时浏览器上的URL变成了我们的公网IP,实现"动态解析"。
相信大家已经看出来了,接下来的事已经和花生壳,nginx没有半毛钱关系了,我们只是嫖花生壳一个免费域名。
具体实现
1. 花生壳
首先你需要有一个花生壳账号(ngrok,frp也是可以的)并且能使用http映射的。
花生壳http映射需要实名认证可能需要花6块钱(卤煮趁他搞活动撸的0元 ,所以标题是0成本或者极低成本)。体验版的花生壳流量1G/月,宽带1M,2个映射(还有一个映射22端口)指望他来看电影几乎是不可能的。(提一句,注册开发者搞一个测试应用,送铂金版账号3个月,我只能说这么多了)
将花生壳域名映射到8080端口,以后我们的jellyfin只需要输入这个域名就能访问啦。
2.Nginx
这里考虑到其他NAS我这里以docker版的nginx为例。
前往dockerhub拉去官方镜像,由于众所周知的原因,我建议您先搞个加速器,不然你可能需要一个晚上(毕竟我们不是罗志祥晚上还是要睡觉的 )
拉去完镜像之后,找个文件夹新建一个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直接的事情,不过这也算是一种方法啦(还是白嫖爽啦 )。
卤煮本来还想通过nginx判断客户机真实IP完成一个域名搞定内外网。(外网跳转到外网IP,内跳转到内网IP),无奈花生壳没法获取到真实IP,如果大佬们有方案记得通知卤煮。(不要跟我说修改路由器host之类的,卤煮的路由器是老款菊花牌,不支持这些花里胡哨的功能)
新人投稿,码字不易,请点个赞
![](https://res.smzdm.com/pc/pc_shequ/dist/img/the-end.png)
dkess
校验提示文案
解毒药
校验提示文案
愤怒的小小猪
校验提示文案
风淡云卿
校验提示文案
VeryRobin
校验提示文案
ioioioion
校验提示文案
RainDing
校验提示文案
cwt0490
校验提示文案
思明
校验提示文案
薯片很忙
校验提示文案
无人熟悉大菠萝
校验提示文案
唐璜的回忆
校验提示文案
让爱随风而逝
校验提示文案
Woodrow
校验提示文案
NuistSecurity
校验提示文案
半糖S
校验提示文案
长腿哥哥
校验提示文案
拉斯基
校验提示文案
薅羊毛的大表哥
校验提示文案
经若丸
校验提示文案
24k双花红棍
校验提示文案
陈圻淼
校验提示文案
薯片很忙
校验提示文案
BinyEM6
校验提示文案
cwt0490
校验提示文案
ferrets
校验提示文案
RainDing
校验提示文案
经若丸
校验提示文案
薅羊毛的大表哥
校验提示文案
拉斯基
校验提示文案
长腿哥哥
校验提示文案
半糖S
校验提示文案
NuistSecurity
校验提示文案
ioioioion
校验提示文案
VeryRobin
校验提示文案
风淡云卿
校验提示文案
Woodrow
校验提示文案
思明
校验提示文案
愤怒的小小猪
校验提示文案
让爱随风而逝
校验提示文案