侧边栏壁纸
博主头像
一杯苦咖啡 博主等级

越是宣传的,越是有坑等你填补,越是禁止的,越是不想让你分享的,做一个能独立思考的人

  • 累计撰写 32 篇文章
  • 累计创建 3 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

自建解锁服务器自建DNS实现流媒体解锁

Administrator
2024-12-05 / 0 评论 / 0 点赞 / 131 阅读 / 0 字 / 正在检测是否收录...

使用过Netflix、hulu等流媒体的朋友应该都知道要能正常播放这些流媒体的内容,都需要特定的IP,既要能够解锁这些流媒体的IP。但在实际情况中会存在一个矛盾,要不能解锁Netflix等流媒体的VPS流量很少,或者速度不理想;要不流量多的或者速度很好的VPS却不能解锁Netflix等流媒体。

而使用DNS解锁流媒体成了最理想的方法;本方法出自github,适用于CentOS6/7/8、Debian8/9/10、Ubuntu16/18。其原理就是使用Dnsmasq的DNS将网站解析劫持到SNI proxy反向代理的页面上,我们也可以简单理解为使用能解锁Netflix等流媒体的VPS的IP当作不能解锁Netflix等流媒体的VPS的DNS。

搭建DNS解锁

首先我们需要有一台能正常解锁Netflix的VPS,然后使用SSH登陆这台VPS,接着执行以下命令安装Dnsmasq SNIproxy。Dnsmasq SNIproxy需要用到53、80、443端口,所以需要放行53、80、443端口。 快速安装(推荐):

sudo apt install net-tools
sudo apt update
wget --no-check-certificate -O dnsmasq_sniproxy.sh https://raw.githubusercontent.com/myxuchangbin/dnsmasq_sniproxy_install/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -f

普通安装:

wget --no-check-certificate -O dnsmasq_sniproxy.sh https://raw.githubusercontent.com/myxuchangbin/dnsmasq_sniproxy_install/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -i

卸载:

wget --no-check-certificate -O dnsmasq_sniproxy.sh https://raw.githubusercontent.com/myxuchangbin/dnsmasq_sniproxy_install/master/dnsmasq_sniproxy.sh && bash dnsmasq_sniproxy.sh -u 
#安装完成后,如果脚本最后显示的IP和实际公网IP不相符,请修改一下文件/etc/sniproxy.conf中的IP地址。

我们也可以使用命令来确认sniproxy是否有效运行,返还active(exited)即表示正在运行。
查看sni状态命令:

systemctl status sniproxy 

如果未运行,请确认防火墙放行53、80、443,且确保其他服务没有占用80、443端口,以防端口冲突。
查看端口监听命令:

netstat -tlunp|grep 443 

最后把不能解锁Netflix那台VPS的DNS修改为能解锁这台的IP即可。
简单来说,比如我们这里把能解锁Netflix的VPS成为VPS A,不能解锁Netflix的称为VPS B,在使用上面命令在VPS A上安装好Dnsmasq SNIproxy后,把VPS B的DNS改为VPS A的IP地址即可。完成以上操作后,我们还可以用nslook查看VPS B解析Netflix是否为VPS A的IP地址,
检测命令:

nslookup Netflix.com 

如果命令不存在则安装:

apt-get -y install dnsutils
yum install -y bind-utils

最后,为了防止DNS被其他人滥用,我们需要使用iptables限制访问VPS A(能解锁Netflix的VPS)的53端口。
先限制所有IP访问53端口

apt-get update
apt-get install iptables
iptables -I INPUT -p udp --dport 53 -j DROP

再允许VPS B(不能解锁Netflix的VPS)的IP访问

iptables -I INPUT -s x.x.x.x -p udp --dport 53 -j ACCEPT

删除规则

iptables -L -n --line-numbers
sudo iptables -D INPUT <行号>

修改系统DNS

首先使用SSH工具以root身份登陆需要修改的VPS,然后执行以下命令:

vi /etc/resolv.conf

把nameserver项修改为我们需要的目标值,修改完毕之后,按键盘ESC键,输入:wq保存即可。
不过,通过上面的方法修改的DNS,在我们重启VPS后,可能又会还原到原本的默认值,为了让VPS重启后还是保持我们修改的DNS,我们可以选择锁定DNS文件,防止被自动更改。

chattr +i /etc/resolv.conf

感谢github大佬的项目:https://github.com/myxuchangbin/dnsmasq_sniproxy_install

本文搬运自:https://www.nodeseek.com/post-177024-1

0

评论区