我是搞网安,我给你讲讲怎么做。
首先,你得确认一下你们内网是怎么禁b站的,
因为一个大型网站的ip是很多而且经常变的,通常来说内网的禁止策略不会经常更新,所以通过ip拦截也经常不准,比如很多网站的cdn都托管在云上,乱ban ip很可能导致正常请求无法进行。
所以公司通常是配合dns拦截进行,比如内网你用的公司的dns服务器,解析b站dns的时候给你返回一个错误的ip,你就访问不了了。
如果公司只是这样做,那绕过非常简单,你配一个外面的dns,拿到正确的响应就行。
但是一般来说公司不会这么简单让你绕过,比如防火墙会直接禁止非公司dns服务器的查询出网,这个时候就可以使用doh(dns over https),使用加密的dns来防止劫持。
那如果你们公司真的直接把b站ip ban了,那除了使用doh以外,还需要走ip层透明代理,常见的就是socks5代理,你使用socks5代理访问网站,在网站看来就像是你的云服务器直接访问网站一样,只要你的云服务器通外网,且你能和云服务器正常通信,你就能正常浏览网页,socks5代理在过gfw的软件上使用很广。
至于你用nginx访问不了,原因就是nginx不是透明代理,而且它只转发指定http请求,还会携带原请求的信息,加载b站的时候请求并不全是挂在b站域名下面的,就可能有跨域请求,跨域的请求你nginx没配置转发规则也是不转发的。
总结一下,你需要在你的云服务器搭建一个代理服务器(可以直接使用ssh的socks5隧道功能)来转发流量,如果dns被劫持且不能出网,你还需要一个doh的方案(或者dns也走你的代理也行)
首先,你得确认一下你们内网是怎么禁b站的,
因为一个大型网站的ip是很多而且经常变的,通常来说内网的禁止策略不会经常更新,所以通过ip拦截也经常不准,比如很多网站的cdn都托管在云上,乱ban ip很可能导致正常请求无法进行。
所以公司通常是配合dns拦截进行,比如内网你用的公司的dns服务器,解析b站dns的时候给你返回一个错误的ip,你就访问不了了。
如果公司只是这样做,那绕过非常简单,你配一个外面的dns,拿到正确的响应就行。
但是一般来说公司不会这么简单让你绕过,比如防火墙会直接禁止非公司dns服务器的查询出网,这个时候就可以使用doh(dns over https),使用加密的dns来防止劫持。
那如果你们公司真的直接把b站ip ban了,那除了使用doh以外,还需要走ip层透明代理,常见的就是socks5代理,你使用socks5代理访问网站,在网站看来就像是你的云服务器直接访问网站一样,只要你的云服务器通外网,且你能和云服务器正常通信,你就能正常浏览网页,socks5代理在过gfw的软件上使用很广。
至于你用nginx访问不了,原因就是nginx不是透明代理,而且它只转发指定http请求,还会携带原请求的信息,加载b站的时候请求并不全是挂在b站域名下面的,就可能有跨域请求,跨域的请求你nginx没配置转发规则也是不转发的。
总结一下,你需要在你的云服务器搭建一个代理服务器(可以直接使用ssh的socks5隧道功能)来转发流量,如果dns被劫持且不能出网,你还需要一个doh的方案(或者dns也走你的代理也行)
原口末麻酱
射命丸文

先森🤩🤩









