伟大的长城已经到了让人忍无可忍的地步,查资料,文档的时候各种无理由connection reset。连slideshare都墙让人很火光。无奈只好翻墙,我现在用的是vpn,但是开了vpn有个问题,上国内网站也要绕一圈回来,速度很慢。理想的是由网关来翻墙,而后根据访问的目标ip来走不通的路由。公司的网关我没有办法改,下面是具体的在一台redhat linux 5 网关服务器上的安装vpn作为新网关的安装步骤。
大慨步骤很简单1. 连接上vpn 2.获取中国IP列表,根据列表设置路由表,国内IP走国内网关,剩余的IP统一VPN出去。
1.安装openvpn客户端
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
yum install openvpn
而后到/etc/openvpn 目录下新建文件 vps.opvn
client
dev tap
proto tcp
remote xxx.xxx.xxx.xxx 443
resolv-retry infinite
nobind
mute-replay-warnings
redirect-gateway
ca /etc/openvpn/ca.crt
cert /etc/openvpn/rhel223.crt
key /etc/openvpn/rhel223.key
comp-lzo
verb 4
直接执行以下命令启动客户端
nohup openvpn /etc/openvpn/rhel223.ovpn &
执行ifconfig应该可以看到类似的显示,表明vpn顺利连接。

2.设置路由表
新建一个shell脚本,getip.sh ,内容与下
#!/bin/sh
rm ip.txt
FILE=china-ip
wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O $FILE
grep ‘apnic|CN|ipv4|’ $FILE | cut -f 4,5 -d’|’|sed -e ‘s/|/ /g’ | while read ip cnt
do
echo $ip:$cnt
mask=$(cat << EOF | bc | tail -1
pow=32;
define log2(x) {
if (x<=1) return (pow);
pow–;
return(log2(x/2));
}
log2($cnt)
EOF
)
echo $ip/$mask >>ip.txt
done
新建一shell脚本,addroute.sh 内容如下:
#!/bin/bash
VPS=”209.141.50.182″
#current default gw
GW=’172.16.131.254′
CNLIST=”ip.txt”
#VPS
route add -host $VPS gw $GW
#lan addr
route add -net 172.16.130.0/23 gw $GW
#change default gw
route add default dev tun0
for i in `cat $CNLIST`
do
route add -net $i gw $GW
done
而后执行两个shell,路由表就应该设置完成,执行route命令应该看到如下图的结果 
3.网络设置
编辑/etc/sysctl.conf 文件,将net.ipv4.ip_forward = 0 从0改为1
而后执行sysctl -p 命令将设置生效
而后执行以下命令允许不同网卡间转发,及做nat
iptables -A FORWARD -i eth0 -o tap0 -j ACCEPT
iptables -A FORWARD -i tap0 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.130.0/23 -o tun0 -j MASQUERADE
到此变结束了。
在windows的客户端上执行以下命令,设置路由,将局域网内服务器指向原默认网关,而新默认网关指向新的有vpn的服务器,即可。
route delete 0.0.0.0
route add 172.6.0.0 mask 255.255.255.0 172.16.131.254
route add 172.16.130.0 mask 255.255.254.0 172.16.131.254
route add 0.0.0.0 mask 0.0.0.0 172.16.130.223
在windows 上执行tracert slideshare.net 和tracert baidu.com 看看效果吧。
爽爽的享受吧!!