| |
Linux下的OPENVPN客户端并不支持服务器push过来的dns地址(我是使用Ubuntu下/etc/init.d/openvpn start来启动vpn客户端的),所以假如使用vpn上国外某些网站的话,会由于国内的dns污染而无法连接。这不是vpn的问题,是由于dns解析出来的结果压根就是错的。

解决办法:root权限修改/etc/resolv.conf。修改为国外的dns服务器,这里可以使用Google的:8.8.8.8服务器,简单好记。正在研究通过修改/etc/init.d/openvpn脚本来自动实现修改dns的方法。


现在,SS5仍不能把这个vpn连接共享出去,因为路由表的问题。vpn连接建立后会把所有的流量路由至vpn服务器,比如该机收到1发来的包,他会把应答发送至vpn服务器,让vpn服务器来发送给1,由于1无法和vpn服务器通信(比如教育网机器和国外vpn),导致1无法收到代理服务器的应答,共享失败。所以要在路由表中添加一条规则,让发往1的数据包直接发往网关而不经vpn。

注:上面说的共享失败的原因我现在还不确定到底是何种原因,可能性如下:1,就是文中说的,主机1和vpn服务器无法通信。2,主机1中本来是和代理服务器通信的,突然收到vpn服务器发来的一堆包,会认为是垃圾,丢弃导致通信失败。
如大家有对其中原理了解的欢迎指教。不过即使这种方式能通信,也由于应答发往vpn再从vpn发回来而导致带宽浪费和延迟加大。


最后,还需要在iptables里开放相应端口。iptables我最近一直在研究,让人蛋疼的是居然没有一个命令可以显示出所有的规则。-L也只是显示一部分。所以有时候开端口不用在iptables里加规则(默认开放),有的时候就必须加了。为保万一,还是加上的好。

by snooda | 分类: 默认分类 | 评论(0) | 引用(0) | 阅读(5560)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]