OpenVPN DNS 设置

来源:互联网 发布:option键是哪个 mac 编辑:程序博客网 时间:2024/05/21 04:26

因为国内的DNS服务器存在污染问题,用VPN后都不愿意用国内的DNS服务器;但是如果常用8.8.8.8等,又导致访问国内的cdn时候返回线路,导致访问缓慢;这个问题不好解决,相对好点的方法在连接vpn前使用isp提供的dns,而连接后替换成外国的dns。

但是OpenVPN的--dhcp-option配置,对非Win32的客户端是无效的,只能考虑执行自定义脚本来完成:

vpnup.sh

123456789
#!/bin/bashRESOLVE=/etc/resolv.confFOREIGNDNS1='4.2.2.1'FOREIGNDNS2='4.2.2.2'DNSMARK='_MK' sed "s/^nameserver/#$DNSMARK nameserver/" -i $RESOLVEecho "nameserver $FOREIGNDNS1" >> $RESOLVEecho "nameserver $FOREIGNDNS2" >> $RESOLVE

vpndown.sh

1234
#!/bin/bashRESOLVE=/etc/resolv.confDNSMARK='_MK'sed -e '/^nameserver/d' -e "s/^#$DNSMARK //" -i $RESOLVE

很简单,就是使用sed来完成/etc/resolv.conf文件的内容替换。

实际上我还使用了chnroutes的脚本生成的国内路由表,上面两段只是分别贴到其中的vpnup/vpndown当中。

原创粉丝点击