首页 > Linux, 技术 > 架设ipv6下的openvpn

架设ipv6下的openvpn

2010年2月4日 DarkIce975 views 发表评论 阅读评论

服务器端:
如果你的主机/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:
页面 下载链接

然后下载ipv6补丁:
页面 下载链接

先安装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

相关文章:

  1. Ubuntu下openvpn的iptables配置
  2. openvpn维护
  3. ubuntu下l7-filter-userspace安装
  4. openvpn服务器端dns劫持解决dns污染问题
  5. 转载:Android上OpenVPN的设置与使用
分类: Linux, 技术 标签: , , ,
  1. JustFan
    2010年3月11日16:06 | #1

    大牛,我想知道linux下的话client应该很好设置吧,还有速度如何呢?

    [回复]

    DarkIce 回复:

    @JustFan, Linux下也是安装Openvpn那个软件,他会根据配置文件不同来判断是服务器端还是客户端
    运行命令是openvpn –config urkey.conf
    速度根据服务器不同有差别,我这用的是百兆共享,但是因为相同主机上分享的VPS比较少,速度还不错。
    国内到美国延时在200到300ms之间,对延时要求高的东西可能会有些感觉,访问网页没有问题。

    [回复]

  2. 2010年4月23日18:07 | #2

    您好,看了您的文章受益匪浅,想请教您一个问题

    我想在VPS同时开ipv4和ipv6,我的ipv4上Openvpn已经工作正常了,那么服务器端配置文件server.conf是需要给ipv6再写一个么?那这个ipv6的conf和ipv4的conf在命名上有啥讲究么?

    ipv4配置和ipv6的配置应该是不能同时写到一个server.conf里面的吧?

    谢谢您的解答

    [回复]

    DarkIce 回复:

    @Allen, 需要写2个配置文件,命名conf后缀就可以,不能写在同一个里面

    [回复]

    Allen 回复:

    @DarkIce, Thanx!解决了~

    [回复]

    Allen 回复:

    @DarkIce, 那个……杯具了。/etc/init.d/openvpn start xxx.conf 之后,提示我failed,看/var/log/messages也看不出为啥就failed了……莫非BURSTNET的VPS就不能开ipv6?

    [回复]

    DarkIce 回复:

    @Allen, 先确保ipv6安装成功,可以ping6 ipv6.google.com看看能不能通。
    如果是ip问题,log里面应该能看出来,你可以运行/etc/init.d/openvpn –conf xxx.conf看界面上的log,命令中应该是双横线

    Allen 回复:

    @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 回复:

    @Allen, teredo我试过,也不太成功
    你可以看下http://blog.darkices.com/archive/add-ipv6-tunnel-openvz-vps.html,里面第二个回复提供了一个openvz下使用he.net的ipv6地址的方法,你可以试一下能不能成功

    [回复]

  1. 2010年2月6日00:28 | #1
  2. 2010年2月6日00:29 | #2