Loading... 抱歉,很久没更新Blog。昨天夜里,某群友咨询关于通过大流量双栈服务器中转IPv6的网站流量,因之前实践过将联通的大内网单播源通过nginx中转为ipv4实现了其他运营商通过家庭公网宽带上行的访问,随口就把思路发在了群里。故而有了今天的分享。 实现的前提是中转设备需支持IPv4+IPv6双栈访问。原理很简单,来自互联网的客户端请求您的Nginx服务器,服务器收到IPv4请求后通过Nginx的代理来获取来自IPv6站点的资源然后发送给客户端。因服务器可访问IPv6资源,故而直接可以获取到来自IPv6站点的内容。 题外话:如果您使用的Nginx服务运行在Docker容器,则需要开启Docker容器的IPv6网络,详细内容请访问:[Enable IPv6 support | Docker Docs](https://docs.docker.com/config/daemon/ipv6/) ##### 下面我们来实现它: 为服务器安装Nginx服务: ``` sudo apt install nginx ``` 编辑您的nginx.conf文件: ``` sudo nano /etc/nginx/nginx.conf ``` 找到“http {”插入如下内容并保存: ``` include /etc/nginx/proxy.conf;#复制这一行插入“http {”的下方 ``` 在/etc/nginx/目录下创建“proxy.conf”文件写入如下内容并保存: ``` server { listen 80; server_name 192.168.0.2; #您的域名或服务器IP location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://[2409:8087:1e03:21::31]:6610; #您要代理的v6地址+端口 } } ``` 以上代码以上海移动为例,仅作演示。 接下来,重启Nginx服务。 ``` sudo nginx -s stop sudo nginx ``` 最后,我们就可以通过播放器访问 http://192.168.0.2/cms001/ch00000090990000001022/index.m3u8?IASHttpSessionId=OTT1606820231214093512000136 来观看节目了。 **需要注意的是:您要代理的IPv6地址必须是最终跳转后的地址。如跳转后的地址带有鉴权,通过IPv4地址访问的时也需要加上鉴权内容。否则不能成功。** 最后修改:2023 年 12 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 34 如果觉得我的文章对你有用,请随意赞赏
16 条评论
谢谢分享,看到论坛里有一种更方便的方法:
代理的地址应该用 http://192.168.0.2/http://[2409:8087:1e03:21::31]:6610/cms001/ch0000 ... 023121409351200013 或者 http://192.168.0.2/http/[2409:8087:1e03:21::31]:6610/cms001/ch0000 ... 023121409351200013,这样可以代理https、http与任意ip地址,
当然nginx配置需要修改,以下的配置支持 http与https,同时支持多次302重定向。
location ~ ^/(http(s*))((:*)\/+)(.*) {
proxy_pass $1://$5$is_args$query_string;
proxy_redirect http /http;
}
你是我的偶像
请问,梅林路由器没U盘情况下无法安装nginx,有没有其他方式来代理IPV6流量呢?目前里面有SS插件。
通过VPN连接到双栈设备理论上也可以实现异地观看。你可以试一下。
博主,为啥ipv6源只有几个本地台能看了,cctv和别的地方台都不能看了
测试过,是可以正常使用的。
博主 你那直播电视源下线了吗?
IPv4源不再提供了。
大佬。IPV6源还有吗