一、安装 dnsmasq 和 sniproxy
sudo apt update
sudo apt install dnsmasq sniproxy -y
二、配置 dnsmasq
增加一个dns配置文件文件
sudo vim /etc/dnsmasq.d/netflix.conf
添加如下内容:
domain-needed
bogus-priv
no-resolv
no-poll
all-servers
server=8.8.8.8
server=1.1.1.1
server=208.67.222.222
server=4.2.2.1
cache-size=2048
local-ttl=60
interface=*
address=/akadns.net/你的服务器ip
address=/akam.net/你的服务器ip
address=/akamai.com/你的服务器ip
address=/akamai.net/你的服务器ip
address=/akamaiedge.net/你的服务器ip
address=/akamaihd.net/你的服务器ip
address=/akamaistream.net/你的服务器ip
address=/akamaitech.net/你的服务器ip
address=/akamaitechnologies.com/你的服务器ip
address=/akamaitechnologies.fr/你的服务器ip
address=/akamaized.net/你的服务器ip
address=/edgekey.net/你的服务器ip
address=/edgesuite.net/你的服务器ip
address=/srip.net/你的服务器ip
address=/footprint.net/你的服务器ip
address=/level3.net/你的服务器ip
address=/llnwd.net/你的服务器ip
address=/edgecastcdn.net/你的服务器ip
address=/cloudfront.net/你的服务器ip
address=/netflix.com/你的服务器ip
address=/netflix.net/你的服务器ip
address=/nflximg.com/你的服务器ip
address=/nflximg.net/你的服务器ip
address=/nflxvideo.net/你的服务器ip
address=/nflxso.net/你的服务器ip
address=/nflxext.com/你的服务器ip
address=/hulu.com/你的服务器ip
address=/huluim.com/你的服务器ip
address=/hbo.com/你的服务器ip
address=/hbonow.com/你的服务器ip
address=/hbomax.com/你的服务器ip
address=/hbomaxcdn.com/你的服务器ip
address=/hboasia.com/你的服务器ip
address=/hbogoasia.com/你的服务器ip
address=/max.com/你的服务器ip
address=/warnermediacdn.com/你的服务器ip
address=/wmcdp.io/你的服务器ip
address=/ngtv.io/你的服务器ip
address=/pypestream.com/你的服务器ip
address=/arkoselabs.com/你的服务器ip
address=/amazon.com/你的服务器ip
address=/amazon.co.uk/你的服务器ip
address=/amazonvideo.com/你的服务器ip
address=/crackle.com/你的服务器ip
address=/pandora.com/你的服务器ip
address=/vudu.com/你的服务器ip
address=/blinkbox.com/你的服务器ip
address=/abc.com/你的服务器ip
address=/fox.com/你的服务器ip
address=/theplatform.com/你的服务器ip
address=/nbc.com/你的服务器ip
address=/nbcuni.com/你的服务器ip
address=/ip2location.com/你的服务器ip
address=/pbs.org/你的服务器ip
address=/warnerbros.com/你的服务器ip
address=/southpark.cc.com/你的服务器ip
address=/cbs.com/你的服务器ip
address=/brightcove.com/你的服务器ip
address=/cwtv.com/你的服务器ip
address=/spike.com/你的服务器ip
address=/go.com/你的服务器ip
address=/mtv.com/你的服务器ip
address=/mtvnservices.com/你的服务器ip
address=/playstation.net/你的服务器ip
address=/uplynk.com/你的服务器ip
address=/maxmind.com/你的服务器ip
address=/disney.com/你的服务器ip
address=/disneyjunior.com/你的服务器ip
address=/adobedtm.com/你的服务器ip
address=/bam.nr-data.net/你的服务器ip
address=/bamgrid.com/你的服务器ip
address=/braze.com/你的服务器ip
address=/cdn.optimizely.com/你的服务器ip
address=/cdn.registerdisney.go.com/你的服务器ip
address=/cws.conviva.com/你的服务器ip
address=/d9.flashtalking.com/你的服务器ip
address=/disney-plus.net/你的服务器ip
address=/disney-portal.my.onetrust.com/你的服务器ip
address=/disney.demdex.net/你的服务器ip
address=/disney.my.sentry.io/你的服务器ip
address=/disneyplus.bn5x.net/你的服务器ip
address=/disneyplus.com/你的服务器ip
address=/disneyplus.com.ssl.sc.omtrdc.net/你的服务器ip
address=/disneystreaming.com/你的服务器ip
address=/dssott.com/你的服务器ip
address=/execute-api.us-east-1.amazonaws.com/你的服务器ip
address=/js-agent.newrelic.com/你的服务器ip
address=/xboxlive.com/你的服务器ip
address=/lovefilm.com/你的服务器ip
address=/turner.com/你的服务器ip
address=/amctv.com/你的服务器ip
address=/sho.com/你的服务器ip
address=/mog.com/你的服务器ip
address=/wdtvlive.com/你的服务器ip
address=/beinsportsconnect.tv/你的服务器ip
address=/beinsportsconnect.net/你的服务器ip
address=/fig.bbc.co.uk/你的服务器ip
address=/open.live.bbc.co.uk/你的服务器ip
address=/sa.bbc.co.uk/你的服务器ip
address=/www.bbc.co.uk/你的服务器ip
address=/crunchyroll.com/你的服务器ip
address=/ifconfig.co/你的服务器ip
address=/omtrdc.net/你的服务器ip
address=/sling.com/你的服务器ip
address=/movetv.com/你的服务器ip
address=/happyon.jp/你的服务器ip
address=/abema.tv/你的服务器ip
address=/hulu.jp/你的服务器ip
address=/optus.com.au/你的服务器ip
address=/optusnet.com.au/你的服务器ip
address=/gamer.com.tw/你的服务器ip
address=/bahamut.com.tw/你的服务器ip
address=/hinet.net/你的服务器ip
address=/dmm.com/你的服务器ip
address=/dmm.co.jp/你的服务器ip
address=/dmm-extension.com/你的服务器ip
address=/dmmapis.com/你的服务器ip
address=/videomarket.jp/你的服务器ip
address=/p-smith.com/你的服务器ip
address=/img.vm-movie.jp/你的服务器ip
address=/saima.zlzd.xyz/你的服务器ip
address=/challenges.cloudflare.com/你的服务器ip
address=/ai.com/你的服务器ip
address=/openai.com/你的服务器ip
address=/cdn.oaistatic.com/你的服务器ip
address=/aiv-cdn.net/你的服务器ip
address=/aiv-delivery.net/你的服务器ip
address=/amazonprimevideo.cn/你的服务器ip
address=/amazonprimevideo.com.cn/你的服务器ip
address=/amazonprimevideos.com/你的服务器ip
address=/amazonvideo.cc/你的服务器ip
address=/media-amazon.com/你的服务器ip
address=/prime-video.com/你的服务器ip
address=/primevideo.cc/你的服务器ip
address=/primevideo.com/你的服务器ip
address=/primevideo.info/你的服务器ip
address=/primevideo.org/你的服务器ip
address=/primevideo.tv/你的服务器ip
address=/pv-cdn.net/你的服务器ip
说明:
你的服务器IP替换为你的服务器公网 IP- 使用
address强制解析 Netflix 相关域名到服务器 IP
- 关闭自带的DNS服务并且重启 dnsmasq
sudo systemctl stop systemd-resolved.service
sudo systemctl restart dnsmasq
sudo systemctl enable dnsmasq
三、配置 sniproxy
- 编辑
sniproxy.conf
sudo vim /etc/sniproxy.conf
添加如下配置:
user daemon
pidfile /var/tmp/sniproxy.pid
error_log {
syslog daemon
priority notice
}
resolver {
nameserver 8.8.8.8
nameserver 8.8.4.4 # local dns should be better
mode ipv4_only
}
listener 0.0.0.0:80 {
proto http
access_log {
filename /var/log/sniproxy/http_access.log
priority notice
}
}
listener 0.0.0.0:443 {
proto tls
access_log {
filename /var/log/sniproxy/https_access.log
priority notice
}
}
table {
.*akadns\.net$ *
.*akam\.net$ *
.*akamai\.com$ *
.*akamai\.net$ *
.*akamaiedge\.net$ *
.*akamaihd\.net$ *
.*akamaistream\.net$ *
.*akamaitech\.net$ *
.*akamaitechnologies\.com$ *
.*akamaitechnologies\.fr$ *
.*akamaized\.net$ *
.*edgekey\.net$ *
.*edgesuite\.net$ *
.*srip\.net$ *
.*footprint\.net$ *
.*level3\.net$ *
.*llnwd\.net$ *
.*edgecastcdn\.net$ *
.*cloudfront\.net$ *
.*netflix\.com$ *
.*netflix\.net$ *
.*nflximg\.com$ *
.*nflximg\.net$ *
.*nflxvideo\.net$ *
.*nflxso\.net$ *
.*nflxext\.com$ *
.*hulu\.com$ *
.*huluim\.com$ *
.*hbo\.com$ *
.*hbonow\.com$ *
.*hbomax\.com$ *
.*hbomaxcdn\.com$ *
.*hboasia\.com$ *
.*hbogoasia\.com$ *
.*max\.com$ *
.*warnermediacdn\.com$ *
.*wmcdp\.io$ *
.*ngtv\.io$ *
.*pypestream\.com$ *
.*arkoselabs\.com$ *
.*amazon\.com$ *
.*amazon\.co\.uk$ *
.*amazonvideo\.com$ *
.*crackle\.com$ *
.*pandora\.com$ *
.*vudu\.com$ *
.*blinkbox\.com$ *
.*abc\.com$ *
.*fox\.com$ *
.*theplatform\.com$ *
.*nbc\.com$ *
.*nbcuni\.com$ *
.*ip2location\.com$ *
.*pbs\.org$ *
.*warnerbros\.com$ *
.*southpark\.cc\.com$ *
.*cbs\.com$ *
.*brightcove\.com$ *
.*cwtv\.com$ *
.*spike\.com$ *
.*go\.com$ *
.*mtv\.com$ *
.*mtvnservices\.com$ *
.*playstation\.net$ *
.*uplynk\.com$ *
.*maxmind\.com$ *
.*disney\.com$ *
.*disneyjunior\.com$ *
.*adobedtm\.com$ *
.*bam\.nr-data\.net$ *
.*bamgrid\.com$ *
.*braze\.com$ *
.*cdn\.optimizely\.com$ *
.*cdn\.registerdisney\.go\.com$ *
.*cws\.conviva\.com$ *
.*d9\.flashtalking\.com$ *
.*disney-plus\.net$ *
.*disney-portal\.my\.onetrust\.com$ *
.*disney\.demdex\.net$ *
.*disney\.my\.sentry\.io$ *
.*disneyplus\.bn5x\.net$ *
.*disneyplus\.com$ *
.*disneyplus\.com\.ssl\.sc\.omtrdc\.net$ *
.*disneystreaming\.com$ *
.*dssott\.com$ *
.*execute-api\.us-east-1\.amazonaws\.com$ *
.*js-agent\.newrelic\.com$ *
.*xboxlive\.com$ *
.*lovefilm\.com$ *
.*turner\.com$ *
.*amctv\.com$ *
.*sho\.com$ *
.*mog\.com$ *
.*wdtvlive\.com$ *
.*beinsportsconnect\.tv$ *
.*beinsportsconnect\.net$ *
.*fig\.bbc\.co\.uk$ *
.*open\.live\.bbc\.co\.uk$ *
.*sa\.bbc\.co\.uk$ *
.*www\.bbc\.co\.uk$ *
.*crunchyroll\.com$ *
.*ifconfig\.co$ *
.*omtrdc\.net$ *
.*sling\.com$ *
.*movetv\.com$ *
.*happyon\.jp$ *
.*abema\.tv$ *
.*hulu\.jp$ *
.*optus\.com\.au$ *
.*optusnet\.com\.au$ *
.*gamer\.com\.tw$ *
.*bahamut\.com\.tw$ *
.*hinet\.net$ *
.*dmm\.com$ *
.*dmm\.co\.jp$ *
.*dmm-extension\.com$ *
.*dmmapis\.com$ *
.*videomarket\.jp$ *
.*p-smith\.com$ *
.*img\.vm-movie\.jp$ *
.*saima\.zlzd\.xyz$ *
.*challenges\.cloudflare\.com$ *
.*ai\.com$ *
.*openai\.com$ *
.*cdn\.oaistatic\.com$ *
.*aiv-cdn\.net$ *
.*aiv-delivery\.net$ *
.*amazonprimevideo\.cn$ *
.*amazonprimevideo\.com\.cn$ *
.*amazonprimevideos\.com$ *
.*amazonvideo\.cc$ *
.*media-amazon\.com$ *
.*prime-video\.com$ *
.*primevideo\.cc$ *
.*primevideo\.com$ *
.*primevideo\.info$ *
.*primevideo\.org$ *
.*primevideo\.tv$ *
.*pv-cdn\.net$ *
}
说明:
listener监听所有网络接口的 443 和 80 端口table设置需要代理的 Netflix 相关域名
- 重启 sniproxy
sudo systemctl restart sniproxy
sudo systemctl enable sniproxy
四、调整防火墙
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
五、配置客户端 DNS
在客户端(如路由器或设备)上,将 DNS 服务器 设置为 你的服务器IP,然后测试 Netflix 是否可用。
ubuntu22.04临时修改DNS只需要将/etc/resolv.conf中的nameserver改为你的服务器IP就可以了,保存退出自动立即生效
sudo vim /etc/resolv.conf
六、测试解锁效果
- 测试 DNS 解析
nslookup www.netflix.com 你的服务器IP
如果返回的是你的服务器 IP,则 dnsmasq 配置成功。
- 测试代理
curl -v https://www.netflix.com --resolve www.netflix.com:443:你的服务器IP
如果返回 HTTP/2 200 或 Netflix 页面内容,则 sniproxy 代理正常。
补充说明
- Netflix 可能会封锁 IP,需要更换 IP 进行测试。
- 可以结合
WireGuard或Shadowsocks提供完整的 Netflix 解锁解决方案。 - 推荐在美国或其他 Netflix 友好地区的 VPS 进行搭建。
这样,你的 dnsmasq + sniproxy 方案应该就能正常解锁 Netflix 了!
原理
dnsmasq + sniproxy 解锁 Netflix 的原理主要基于 DNS 劫持 和 SNI 代理,通过绕过 Netflix 的区域限制,让其认为你的访问来自受支持的国家/地区。
一、Netflix 的区域限制机制
Netflix 主要通过 IP 地址 和 SNI(Server Name Indication) 来判断用户的地理位置:
- DNS 解析
- 当用户访问
www.netflix.com,Netflix 的 DNS 服务器会返回不同的 IP 地址,指向不同的地区服务器。 - 如果你的 DNS 解析到的是 非受支持国家的服务器,那么 Netflix 可能会限制你的访问。
- 当用户访问
- IP 识别
- Netflix 直接检查你的公网 IP 是否来自受支持的国家/地区。
- 如果你的 IP 不在可观看的地区列表中,Netflix 会限制访问或提供不同的内容库。
- SNI(TLS 握手时的域名)
- 当客户端与 Netflix 服务器建立 HTTPS 连接 时,Netflix 服务器会检查
SNI头部(即 TLS 握手中的域名)。 - 如果 Netflix 发现
SNI头部的域名对应的 IP 地址来自 不支持的国家,它会直接阻止访问或返回错误页面。
- 当客户端与 Netflix 服务器建立 HTTPS 连接 时,Netflix 服务器会检查
二、dnsmasq + sniproxy 如何绕过 Netflix
1. dnsmasq 劫持 DNS
dnsmasq用来 拦截 Netflix 相关域名的 DNS 查询,并将其解析到你的服务器 IP,而不是 Netflix 官方的 IP。- 这样,客户端会把所有 Netflix 请求都发送到你的服务器,而不是 Netflix 真实的服务器。
2. sniproxy 代理 SNI 流量
sniproxy监听 80 端口(HTTP)和 443 端口(HTTPS),并基于 SNI 头部 代理 Netflix 的请求到正确的 Netflix 服务器。- 因为
sniproxy只是 中转流量,它不会解密 HTTPS 数据,而是根据 SNI 头部转发到正确的 Netflix 服务器。
示例流程:
- 用户访问 Netflix
- 浏览器请求
www.netflix.com dnsmasq劫持 DNS,返回你的服务器 IP
- 浏览器请求
- Netflix 服务器验证
- 由于 Netflix 服务器收到的 SNI 头部仍然是
www.netflix.com,但来源 IP 是你的服务器,它不会阻止访问。 sniproxy将这个请求 透明转发 给 Netflix 的原始服务器。
- 由于 Netflix 服务器收到的 SNI 头部仍然是
- Netflix 以为你来自服务器 IP
- 由于流量最终是从你的服务器 IP 发出的,Netflix 认为你是来自 该服务器的地区,从而绕过了地区限制。
三、为何使用 sniproxy 而不是普通代理?
相比 VPN 或 Shadowsocks,sniproxy 具备以下优势:
- 不修改 HTTPS 流量,Netflix 无法检测到代理或 VPN
- 无须安装客户端,只需改 DNS 即可生效
- 不会影响其他网站,仅代理 Netflix 相关域名
四、存在的风险和问题
- Netflix 可能封锁你的服务器 IP
- 许多 VPS 提供商的 IP 段已被 Netflix 屏蔽,建议使用 住宅 IP 或 动态 IP 服务器。
- Netflix 可能加强 SNI 检测
- 目前
sniproxy方案依赖于 Netflix 只检查 源 IP 而不检查 SNI 代理行为,但未来可能会升级检测机制。
- 目前
- IPv6 可能会绕过 DNS 劫持
- 需要在
dnsmasq里屏蔽 IPv6 或者确保sniproxy也支持 IPv6。
- 需要在
五、总结
| 方案 | 方法 | 适用情况 |
|---|---|---|
| VPN | 直接使用代理服务器 | 适用于所有网站,但可能被 Netflix 识别并封锁 |
| Shadowsocks | 代理所有流量 | 需要安装客户端,适用于所有网站 |
| dnsmasq + sniproxy | 劫持 Netflix DNS + 透明 SNI 代理 | 适用于 只解锁 Netflix,无需客户端,难以被检测 |
dnsmasq + sniproxy 是一种轻量级的 Netflix 解锁方案,适用于服务器 IP 仍未被封锁的情况。









