已经写过一个配置文档,但没发上来。然后后来重装系统,放桌面上就没了,然后按记忆从搞以便,发现不行。每天晚上下班回家就搞这个东西了,后来得出要么是服务商问题,要么是国家破墙问题,昨晚上换端口后可以正常访问。唯独1194端口不行,所以一般爬墙的人都懂了!
在自己服务器上搭建完全是想手机翻个Qiang,上个推特。但不太会用openvpn客户端里面的配置,弄好后在手机端一直报错,估计是因为tun的原因,服务器上不支持。很悲催,有时间后还是试试pptp吧,最少pptp可以直接在手机设置里配置,简单。
系统配置:
cat /etc/issue
CentOS release 6.4 (Final)
需要支持tap、tun等(我的好像不支持tun,无法创建,很奇怪)
软件: openvpn lzo openssl
下载安装rpm源等
里面用到却无法在国.内下载的,可以到与当前文章对应的微盘目录下下载
微盘路径:"rpmforge-release-0.5.2-2.el6.rf.x86_64.zip" http://vdisk.weibo.com/s/uCPG4
或
wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm yum makecache yum install lzo openssl* openvpn 拷贝easy-rsa,有两种情况 第一种 cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/ 第二种 cd /usr/share/doc/openvpn-2.2.2/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa/2.0 chmod +x ./* source ./vars
#如果出现下面这种情况
************************************************************** No /etc/openvpn/easy-rsa/2.0/openssl.cnf file could be found Further invocations will fail #解决方法: ln -s openssl-1.0.0.cnf openssl.cnf
同样可以修改vars文件内最后那几行的内容
KEY_COUNTRY=CN KEY_PROVINCE=BJ KEY_CITY=BeiJing KEY_ORG="KingGoo" KEY_OU="KingGoo.com" KEY_EMAIL="supper#163.com"
# 生成key等文件,最后两个选y,其余的回车默认
./clean-all
# 创建CA
./build-ca server
# 创建CA之后来生成服务器证书,输入
./build-key-server server
# 生成客户端证书,最后两个选y,其余的回车默认
./build-key kinggoo ./build-key com
# 最后生成Diffie Hellman参数:
./build-dh
拷贝配置文件及证书
cp -rf /etc/openvpn/easy-rsa/2.0/keys /etc/openvpn/ tar -cvf kinggoo.vpn.tar /etc/openvpn/keys/*
将其下载到本地改名为config文件
编辑server.conf文件
cat /etc/openvpn/server.conf |grep -E -v ‘^[$|#|;]’
port 443 #它大爷的gwf,把1194封掉了估计,反正我是没办法用这个端口连上,可以自己调整 proto tcp dev tap #看你自己ifconfig 里面那个设备,有tun好像不行我这 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key dh /etc/openvpn/keys/dh1024.pem server 10.8.0.0 255.255.255.0 # 可以做多个服务或端口 route 10.8.0.0 255.255.255.0 push "redirect-gateway def1" ;push "dhcp-option DNS 208.67.222.222" #我发现push过去也没用,还是需要手动修改 ;push "dhcp-option DNS 208.67.220.220" client-to-client keepalive 10 120 duplicate-cn #允许多个客户端使用同一个证书,懒人必备 comp-lzo persist-key persist-tun verb 3 log /var/log/openvpn.log log-append /var/log/openvpn.log
将客户端配置文件,将如下内容保存为以".ovpn"(不包括")为扩展名的文件,保存到本地openvpn安装目录下的config下
client dev tap proto tcp remote 你服务器外网ip 443 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert kinggoo.crt key kinggoo.key ns-cert-type server comp-lzo verb 3
设置防火墙:是不是还可以添加其它好的规则策略?
iptables -A INPUT -i venet0:1 -p tcp -m tcp --dport 443 -j ACCEPT #(venet0:1是你的外网网口)不这样做也可以 iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT iptables -A INPUT -i tap -j ACCEPT iptables -A OUTPUT -o tap -j ACCEPT iptables -A FORWARD -i tap -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 你服务器外网ip
其中tap是你的设备好,如果你的是tun也可以
安装客户端的openvpn客户端, "openvpn-2.2.2-install.zip" http://vdisk.weibo.com/s/uCNse
或者http://openvpn.net/index.php/open-source/downloads.html
最后在电脑上设置你tap设备的dns就可以了
更多参考可到:http://openvpn.net/index.php/open-source/documentation/howto.html
openvpn,不能访问外网?
在服务器端的配置内看看是不是添加了这行
route 10.8.0.0 255.255.255.0
ip地址要根据自己配置的ip段来设置
利用iptables做nat传输数据卡死? http://segmentfault.com/q/1010000002511579
这个写完好久了,一直没发