架设ipv6下的openvpn
服务器端:
如果你的主机/VPS支持IPv6,那么直接向下看,否则请先看添加IPv6管道
先下载openvpn的ipv6版本
页面
在openvpn - 2.1.0-1+ipv6-2~intrepid下选择对应版本下载,如amd64版本:
wget https://launchpad.net/~berni/+archive/ipv6/+files/openvpn_2.1.0-1+ipv6-2~intrepid_amd64.deb |
然后安装即可
此版本支持IPv4和IPv6,使用不同的配置文件就可以了
如果你的机器支持IPv6那么在IPv6的配置文件中填写本机的IPv6地址,如果使用的he.net隧道,那么填写he.net隧道地址,协议使用udp6或tcp6
配置文件部分示例:
IPv4
local *.*.*.* proto udp |
IPv6
local 2001:470:*:*::2 proto udp6 |
其他部分可以一样,此处可以参考openvpn维护
windows客户端:
先下载并安装openvpn2.1.1:
页面 下载链接
先安装openvpn2.1.1,此时该版本只支持IPv4。
备份安装目录bin下的openvpn.exe,然后解压缩补丁,将其中的openvpn.exe放到bin下。
注意:此补丁文件只支持IPv6。
客户端配置文件对应填写IPv6地址和协议,如:
proto udp6 remote 2001:470:*:*::2 1194 |
其他配置可以参考openvpn维护
测试结果:
服务器端使用不同配置文件,相同证书,开启两个openvpn线程。
在公网连接IPv4下openvpn成功。在教育网连接IPv6下openvpn成功。
相关配置:
下面附上服务器端的两种配置和iptables的设置,不过为了保证设置成功,冗余设置比较多,没有去除。
IPv4配置:
local *.*.*.* port 1194 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 # This file should be kept secret dh /etc/openvpn/2.0/keys/dh1024.pem server 10.8.0.0 255.255.255.0 #duplicate-cn #client-to-client keepalive 10 120 comp-lzo ;max-clients 100 ;user nobody ;group nobody persist-key persist-tun status /etc/openvpn/2.0/keys/openvpn-status.log verb 4 ;mute 20 crl-verify crl.pem push "route 10.8.0.0 255.255.255.0" push "dhcp-option DNS 10.8.0.1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" |
IPv6配置:
local 2001:470:*:*::2 port 1194 proto udp6 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 # This file should be kept secret dh /etc/openvpn/2.0/keys/dh1024.pem server 10.8.10.0 255.255.255.0 #duplicate-cn #client-to-client keepalive 10 120 comp-lzo ;max-clients 100 ;user nobody ;group nobody persist-key persist-tun status /etc/openvpn/2.0/keys/openvpn-status.log verb 4 ;mute 20 crl-verify crl.pem push "route 10.8.10.0 255.255.255.0" push "dhcp-option DNS 10.8.10.1" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" |
iptables配置(网卡设备号自行对比自己的机器):
echo 1 > /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv6/conf/he-ipv6/forwarding echo 1 > /proc/sys/net/ipv6/conf/default/forwarding echo 1 > /proc/sys/net/ipv6/conf/all/forwarding echo 1 > /proc/sys/net/ipv6/conf/eth0/forwarding echo 1 > /proc/sys/net/ipv6/conf/lo/forwarding iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o he-ipv6 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.10.0/24 -o he-ipv6 -j MASQUERADE iptables -t nat -A POSTROUTING -s 10.8.10.0/24 -o eth0 -j MASQUERADE ip6tables -A INPUT -i eth0 -p all -j ACCEPT iptables -A INPUT -i eth0 -p all -j ACCEPT ip6tables -A INPUT -i he-ipv6 -p all -j ACCEPT iptables -A INPUT -i he-ipv6 -p all -j ACCEPT ip6tables -A INPUT -i lo -p all -j ACCEPT iptables -A INPUT -i lo -p all -j ACCEPT ip6tables -A INPUT -i tun1 -p all -j ACCEPT iptables -A INPUT -i tun1 -p all -j ACCEPT ip6tables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i tun+ -j ACCEPT iptables -A FORWARD -i tun+ -j ACCEPT ip6tables -A INPUT -i tun+ -j ACCEPT ip6tables -A FORWARD -i tun+ -j ACCEPT iptables -A INPUT -i tun0 -j ACCEPT iptables -A FORWARD -i tun0 -j ACCEPT iptables -A INPUT -i tun1 -j ACCEPT iptables -A FORWARD -i tun1 -j ACCEPT ip6tables -A INPUT -i tun0 -j ACCEPT ip6tables -A FORWARD -i tun0 -j ACCEPT ip6tables -A INPUT -i tun1 -j ACCEPT ip6tables -A FORWARD -i tun1 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT iptables -A INPUT -p udp --dport 1194 -j ACCEPT ip6tables -A INPUT -p udp --dport 1194 -j ACCEPT iptables -A INPUT -s 10.8.10.0/24 -p all -j ACCEPT iptables -A FORWARD -d 10.8.10.0/24 -j ACCEPT iptables -A INPUT -s 10.8.0.0/24 -p all -j ACCEPT iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT |
转载请注明:转载自DarkIces.com
本文链接地址:http://dki.me/r
相关文章:
大牛,我想知道linux下的话client应该很好设置吧,还有速度如何呢?
[回复]
DarkIce 回复:
三月 11th, 2010 at 16:52
@JustFan, Linux下也是安装Openvpn那个软件,他会根据配置文件不同来判断是服务器端还是客户端
运行命令是openvpn –config urkey.conf
速度根据服务器不同有差别,我这用的是百兆共享,但是因为相同主机上分享的VPS比较少,速度还不错。
国内到美国延时在200到300ms之间,对延时要求高的东西可能会有些感觉,访问网页没有问题。
[回复]
您好,看了您的文章受益匪浅,想请教您一个问题
我想在VPS同时开ipv4和ipv6,我的ipv4上Openvpn已经工作正常了,那么服务器端配置文件server.conf是需要给ipv6再写一个么?那这个ipv6的conf和ipv4的conf在命名上有啥讲究么?
ipv4配置和ipv6的配置应该是不能同时写到一个server.conf里面的吧?
谢谢您的解答
[回复]
DarkIce 回复:
四月 25th, 2010 at 21:27
@Allen, 需要写2个配置文件,命名conf后缀就可以,不能写在同一个里面
[回复]
Allen 回复:
四月 25th, 2010 at 21:29
@DarkIce, Thanx!解决了~
[回复]
Allen 回复:
四月 26th, 2010 at 00:55
@DarkIce, 那个……杯具了。/etc/init.d/openvpn start xxx.conf 之后,提示我failed,看/var/log/messages也看不出为啥就failed了……莫非BURSTNET的VPS就不能开ipv6?
[回复]
DarkIce 回复:
四月 26th, 2010 at 10:16
@Allen, 先确保ipv6安装成功,可以ping6 ipv6.google.com看看能不能通。
如果是ip问题,log里面应该能看出来,你可以运行/etc/init.d/openvpn –conf xxx.conf看界面上的log,命令中应该是双横线
Allen 回复:
四月 26th, 2010 at 10:31
@DarkIce,
ping6得到的结果好像并不是ipv6.google.com的ipv6地址。似乎还是v4的
64 bytes from iad04s01-in-x68.1e100.net: icmp_seq=2 ttl=59 time=16.4 ms
这应该说明ipv6安装不成功吧?
我已经用了teredo,并且ifconfig里面有teredo的ipv6地址了呀……
求解~~
多谢!
DarkIce 回复:
四月 26th, 2010 at 11:07
@Allen, teredo我试过,也不太成功
你可以看下http://blog.darkices.com/archive/add-ipv6-tunnel-openvz-vps.html,里面第二个回复提供了一个openvz下使用he.net的ipv6地址的方法,你可以试一下能不能成功
[回复]