马鞍山中加招生简章:vps搭建openvpn指北

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 03:42:43
也许,VPN已经是当前的必备品了……

什么是vpn?
vpn这个东西,就是通过广域网组建虚拟局域网的一个技术(wikipedia)。以前的浩方等游戏对战平台也可以算是vpn的一种。而openvpn就是vpn的实现方式之一。
什么是vps?
vps就是指virtual private server,您可以像真正的服务器一样ssh上去进行任何操作。不像虚拟空间,您对其拥有完全的控制权,可以安装并运行任何软件,执行各种操作等。当然您可以在vps和local间建立vpn,从而达到目的。
为什么要用vpn?
(看图不说话)
 
如何选择搭建vpn的vps?
符合以下几点的vps就可以搭建vpn:
速度快
非大陆vps
vps可以正常方式访问(http等直连,非特殊方式)
vps运营商允许搭建vpn
vps的是自由的(即vps通过可以访问所有你原先不能访问的网站)
如果您的vps符合以上几条,那么恭喜您,您可以在您的vps上安装vpn。
搭建方法:
(以burst.net的vps为例,debian5 server)
服务端
首先您要确定您的vps是否开启tun支持。
1
2
3
# ls /dev/net/
//如果提示 No such file or directory 那么证明没有tun支持,您需要给客服发ticket请求开启tun
//如果提示 tun ,那么证明已经开启tun支持,可以开始搭建vpn
安装openvpn以及iptables:
1
apt-get install openvpn iptables
配置openvpn:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
cd ~
//cd进入家目录
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./
//拷贝openvpn的rsa示例到家目录
cd 2.0
//cd进入刚刚拷贝的目录
source  ./vars
//执行vars
./clean-all
//删除以前生成的密钥等
./build-ca
//生成新的certificate(所有生成操作均需要填写相关信息,所有选项均可留空,回车略过即可。请注意:错误的信息可能导致openvpn启动出现错误!请慎重填写。)
./build-key-server server
//生成服务端key文件
./build-key  client
//生成客户端key文件
./build-dh
//生成dh1024.pem文件(重要!)
cp keys/ca.crt /etc/openvpn/
//拷贝~/2.0/keys/ca.crt到/etc/openvpn/(重要!)
cp  keys/server.* /etc/openvpn/
//拷贝~/2.0/keys/server.*到/etc/openvpn/(包含服务端配置文件等)(重要!)
cp keys/dh1024.pem /etc/openvpn/
//拷贝 ~/.2.0/keys/dh1024.pem到/etc/openvpn(中要!)
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz   /etc/openvpn/
//拷贝服务端配置示例到/etc/openvpn/
gzip -d /etc/openvpn/server.conf.gz
//解包
echo "push \"redirect-gateway def1\"" >> /etc/openvpn/server.conf
//配置 /etc/openvpn/server.conf 让客户端使用这个服务器的地址作为默认网关
至此,openvpn配置完毕,您可以通过下述命令启动他:
1
/etc/init.d/openvpn start
如果启动失败,那么请执行下述命令debug:
1
openvpn /etc/openvpn/server.conf
Mon May 31 14:41:09 2010 Note: Cannot open TUN/TAP dev /dev/net/tun: No such device (errno=19)Mon May 31 14:41:09 2010 Note: Attempting fallback to kernel 2.2 TUN/TAP interfaceMon May 31 14:41:09 2010 Cannot allocate TUN/TAP dev dynamicallyMon May 31 14:41:09 2010 Exiting这是由于您tun支持没有开启的缘故,请给客服发ticket请求开启tun支持。
Mon Jul 30 09:25:59 2007 Cannot open dh1024.pem for DH parameters: error:02001002:system library:fopen:No such file or directory: error:2006D080:BIO routines:BIO_new_file:no such fileMon Jul 30 09:25:59 2007 Exiting这是由于openvpn不能根据/etc/server.conf找到dh1024.pem文件,必须在/etc/openvpn/server.conf指定dh10247.pem路径。(建议ca.crt,server.crt等均使用绝对路径而非相对路径。)
ca /etc/openvpn/ca.crtcert /etc/openvpn/server.crtkey /etc/openvpn/server.keydh /etc/openvpn/dh1024.pemOpenvpn – MULTI: bad source address from client – solution将push "redirect-gateway"client-config-dir ccdroute 10.8.0.0 255.255.255.0加入 /etc/openvpn/server.conf文件详细请参考这里其他类型错误应该是证书生成错误造成的,请google详细错误或者重新生成证书即可。
成功启动openvpn后,配置服务器网络,允许数据转发
1
2
3
4
5
echo 1 > /proc/sys/net/ipv4/ip_forward
//ipv4 数据转发
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
//设置数据转发,其中10.8.0.0是ifconfig物理网卡ip,venet0是物理网卡
至此,服务端配置完毕。
客户端
(arch)
安装openvpn
1
sudo pacman -S openvpn
复制配置文件,{VPSIP}为你的VPS服务器的IP地址
1
2
3
4
sudo scp root@VPSIP:/root/2.0/keys/client.crt /etc/openvpn/
sudo scp  root@VPSIP:/root/2.0/keys/client.key /etc/openvpn/
sudo scp  root@VPSIP:/root/2.0/keys/ca.crt /etc/openvpn/
sudo scp  root@VPSIP:/usr/share/doc/openvpn/examples/sample-config-files/client.conf  /etc/openvpn/
修改 /etc/openvpn/client.conf 配置文件,将服务器的IP地址写入到配置文件。将IP替换为你的VPS服务器的IP地址:
1
sudo gedit /etc/openvpn/client.conf
将 remote my-server-1 1194 替换为remote VPSIP 1194,并把client.conf,ca.crt等替换为绝对路径而非相对路径。(同服务端配置方法)
启动openvpn
1
sudo /etc/rc.d/openvpn start
如果您
1
ifconfig
出现
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1RX packets:16487 errors:0 dropped:0 overruns:0 frame:0TX packets:15844 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100RX bytes:14209978 (13.5 Mb)  TX bytes:2277651 (2.1 Mb)则证明vpn连接成功。

浏览器设置:
现在,您已近可以利用vpn无障碍浏览任何网站了。
等等……为什么我youtube,twitter仍然上不去?这是因为您的浏览器依然使用本地的dns进行域名解析,然后通过vpn传输数据。如果dns被污染或者劫持,当然不能正确访问网站啦。所以您需要对浏览器进行设置。
在Firefox设置SOCKS远程域名解析,主要是为了 防止DNS 污染。firefox可以通过远程服务器进行dns解析,保证解析结果正确。具体设置方法是,在Firefox地址栏中,输入 about:config ,按确认,修改里面的数值,双击项目改成 network.proxy.socks_remote_dns=true 就可以了。

其他浏览器好像都没有remote_dns设置,您需要把系统dns设置为openDns,GoogleDns或Norton DNS。
1
2
3
sudo echo "" > /etc/resolv.conf
sudo echo "nameserver 8.8.8.8" >> /etc/resolv.conf
sudo echo "nameserver 8.8.4.4" >> /etc/resolv.conf
chnroutes
vpn自动网卡切换工具chnroutes(项目主页)
通过这个工具,您可以在使用vpn访问国外资源的同时, 能用非vpn线路高速访问本国资源。即自动vpn访问国外网站,非vpn访问国内网站。非常实用。
参考资料:
http://forum.ubuntu.com.cn/viewtopic.php?f=166&t=262036
http://openvpn.net/index.php/open-source/documentation/howto.html
pityonline的配置过程。(通过这篇文章,您可以学习到有很多知识点,对于错误的解决很有帮助)

Article Source:
https://www.deleak.com/blog/2010/06/04/openvpn-on-vps/