先来说说怎么利用ChinaNet、CMCC免费上网。 ChinaNet和CMCC都是基于页面认证的上网,要让客户端使用页面认证上网,就必须开通DNS服务和80端口,其中,DNS是udp53端口,网页是80端口,但是客户端上访问80端口就会被路由器重定向,但使用DNS服务器正常,也就是说,udp53端口有国际权限。通过这一点,我们可以使用udp53端口来建立VPN,从而实现免费上网。

VPS上架设OpenVPN的教程多如牛毛,在此我就不详述了,记个流水帐,以便模仿与被模仿。

第一步:检测环境。 1.TUN支持。 OpenVPN需要TUN支持 用这个命令检测: cat /dev/net/tun

如果返回信息为: cat: /dev/net/tun: File descriptor in bad state 说明VPS支持TUN,否则给vps公司法Ticket,有的VPS重装系统之后还要重新发Ticket。

2.iptables_nat模块支持 这个模块检测方法不科学,仅供参考。如果有人能提供科学的检测方法,一定要告诉我哈。。 命令 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE 返回 iptables: Unknown error 4294967295

第二步:准备安装OpenVPN 很多教程都是用yum安装,这样固然有好处,便于后期维护。但是缺点也很明显,无法打补丁,我需要打IPV6补丁,所以用编译安装。 我这里以/data/src为源码路径 mkdir -p /data/src cd /data/src wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.05.tar.gz wget http://swupdate.openvpn.net/community/releases/openvpn-2.2.0.tar.gz wget https://github.com/downloads/jjo/openvpn-ipv6/openvpn-2.2.0-ipv6-0.4.16.patch.gz --no-check-certificate 安装openvpn所需环境openssl和gcc yum install -y openssl-devel gcc

第三步:解压缩,打补丁,安装openvpn。 先安装lzo tar zxvf lzo-2.05.tar.gz cd lzo-2.05 ./configure && make && make install cd .. 解压缩openvpn并打补丁 tar zxvf openvpn-2.2.0.tar.gz gzip -d openvpn-2.2.0-ipv6-0.4.16.patch.gz mv openvpn-2.2.0-ipv6-0.4.16.patch openvpn-2.2.0 cd openvpn-2.2.0 patch -p1 < openvpn-2.2.0-ipv6-0.4.16.patch 安装 ./configure && make && make install mkdir -p /etc/openvpn cp -r ./easy-rsa/ /etc/openvpn cp -r ./sample-config-files/server.conf /etc/openvpn/2.0/conf/server.conf

第四步,生成证书并更改配置文件 1.生成证书颁发机构(CA) cd /etc/openvpn/2.0/ ./clean-all ./build-ca 2.建立server key,一路拍回车,出现y/n的时候拍y即可。 ` ./build-key-server server 3.生成客户端 key,client为客户端名,可修改一路拍回车,出现y/n的时候拍y即可。 ./build-key client 4.生成Diffie Hellman参数 ./build-dh 如果这里发生错误,请尝试: `openssl dhparam -out ./keys/dh1024.pem 1024` 5.修改配置文件 `vi /etc/openvpn/2.0/conf/server.conf` 将里边的 port 改为 53

ca ca.crt cert server.crt key server.key # This file should be kept secret dh dh1024.pem ``` 后边的文件改为绝对路径 ;push “redirect-gateway def1 bypass-dhcp” 前边的注释;删掉

给出一个使用53端口UDP协议的参考配置 port 53 proto udp dev tun ca /etc/openvpn/2.0/keys/ca.crt cert /etc/openvpn/2.0/keys/server.crt key /etc/openvpn/2.0/keys/server.key dh /etc/openvpn/2.0/keys/dh1024.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" keepalive 10 120 comp-lzo persist-key persist-tun verb 3

第五步,启动openvpn,开启nat转发 openvpn --config /etc/openvpn/2.0/conf/server.conf 开启nat转发 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE 如果不设置,你连上后只能在你和VPS之间建立VPN,在这里,10.8.0.0为server.conf里边server中的IP段。 到这里,openvpn服务器端的架设就结束了。

当然,想要让客户端连接上服务器,还需要在客户端上进行简单配置。 首先进入服务器/etc/openvpn/2.0/keys目录,将证书打包 cd /etc/openvpn/2.0/keys find ./ -name "*.crt" -or -name "*.key" -not -name "server.key" -not -name "c.key" | xargs tar czvf keys.tar.gz 然后把keys.tar.gz下载到客户端上就可以了 客户端配置样例 client remote ip 53 dev tun proto udp resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key ns-cert-type server comp-lzo route-delay 2 route-method exe verb 3 用openvpn打开就OK啦。