2015-01-04 10:41:06 k73游戏之家 作者:appcrash
以下为大家提供的关于PS4教程适用于那些愿意折腾玩机的玩家,如果玩家们对于linux基础有一定了解的会更加好,以下分享个人的PS4解决DNS污染提高联网成功率。
PS4联网本人一直用V.P.N,拿树莓派做网关。但是最近购买的用于搭建V.P.N的VPS线路抽风,于是想着不用曲线救国的方式解决联网问题。其实坛子里大部分人基本是买路由器刷openwrt然后用shadowsocks或者V.P.N,但是不管用哪种方式都是要将网络包发到国外代理的服务器上再转发到游戏服务器上。虽然一定程度上解决了联不上或者掉线的问题,但是一旦提供商线路抽风也只能干瞪眼了。通过最近的研究发现,其实直连未必就比V.P.N慢。大家很多时候联不上服务器可能更多的是出在DNS的问题上面。
这两天一直在男友4和花园战争,以前走V.P.N时信号最多3格,解决了DNS污染的问题后直接即使是晚上人多的时候也能搜索到满格的服务器。
关于DNS的问题坛子里的方案有dnsmasq,改用棒子的dns。今天我介绍另外一种方式:unbound。unbound的配置相对来说更加简单。我们只用它来干一件事情,帮助我们用tcp的方式去查询上级dns。
说到这里有些人可能看不懂,没关系,我简单解释一下为什么大家联网时候会出现:failed to connect。以花园战争为例,游戏启动后首先要连ea的服务器,那么要先去查询ea服务器的ip地址,但是问题来了。不管你家的路由器用的时运营商指定给你的还是棒子的,这个返回的地址不一定准确。原因有很多种,dns被投毒了,g.f.w故意篡改了等等,总之不会让游戏程序得到正确的IP地址,然后游戏一直去连接这个错误的IP地址,超时后提示:连不上啊。大家如果用V.P.N做网关的话就不会有这样的问题,因为所有DNS查询都是走国外的,国外网络环境干净的多,不存在这么恶心的污染。
我用unbound主要就是解决这类问题的。目前G.F.W只对udp方式查询的DNS包做篡改,tcp的还没伸毒手,所以用unbound做一个本地dns服务器,并强制使用tcp方式去查询上级dns服务器,如谷歌的8.8.8.8。这样能保证得到正确的IP地址。缺点就是第一次查询非常的慢,但是有了缓存后会快很多。关于TCP如何能保证正确的地址大家可以在windows 命令行下试一试以下两个命令:
nslookup facebook.com 8.8.8.8
nslookup -vc facebook.com 8.8.8.8
后者用了tcp查询,得到的是正解的结果。
言归正传,我是在树莓派上搭建unbound的,刷了openwrt的朋友可以安装unbound包,这里我只介绍树莓派的配置方法。
1 安装
sudo apt-get install unbound
2 修改配置 /etc/unbound/unbound.conf
server:
interface: 0.0.0.0
do-ip6: no
do-ip4: yes
do-udp: yes
do-tcp: yes
access-control: 0.0.0.0/0 allow
tcp-upstream: yes
do-not-query-localhost: no
forward-zone:
name: "."
forward-addr: 8.8.8.8
forward-addr: 8.8.4.4
forward-first: no
3 重启服务
sudo service unbound restart
如果之前安装过dnsmasq则需要先将它的服务stop,因为域名查询的53端口要让给unbound。我的树莓派设定了固定的IP,192.168.0.200,在PS4里将DNS设置成相应的IP即可。如果是用路由器配置的话将默认DNS设置成路由器的IP。
G.F.W对网站的封锁有不同等级的,有的只是污染DNS,有的直接干掉IP,比如最近挂掉的GMAIL。我在电脑上将DNS设置成树莓派的地址,竟然可以直连 非死不可..... 最后说一下,本人广东电信目前直连男友4,只要是亚洲的服信号都在3格以上,比用神器强多了,大家如果愿意折腾不妨一试。