Debian 5 安装 OpenVPN
折腾了很久才真正在VPS上搞定了OpenVPN的安装,记录一下
首先确认你的VPS上TUN/TAP功能是否打开,大部分都是默认关闭的
可以用以下命令检测:
1 | cat /dev/net/tun |
若返回以下结果表示OK
1 | cat: /dev/net/tun: File descriptor in bad state |
如果不是返回上述结果,请联系你的服务商打开TUN/TAP功能即可
1、安装
1 | aptitude install openvpn |
2、准备工作
1 2 3 4 5 6 7 | cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ cd /etc/openvpn gzip -d server.conf.gz |
3、初始化
1 2 3 4 5 6 7 | cd easy-rsa/2.0 source vars ./clean-all ./build-ca // 这里会问你很多问题,都回车默认就行了 |
4、生成服务器证书和密钥
1 | ./build-key-server server |
5、生成客户端证书和密钥
1 | ./build-key client |
6、创建 Diffie Hellman
1 | ./build-dh |
7、编辑服务器端配置文件
1 | vi /etc/openvpn/server.conf |
配置文件中需要修改的关键部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ;local a.b.c.d local YOUR.IP.ADDRESS // 这行是服务器的外网 IP 地址 port 1194 // 端口,客户端配置文件和服务器保持一致就行了,想玩狠一点就放在 53 上 ;proto tcp proto udp // 这两个二选一,默认是 udp,同样客户端和服务器端保持一致,但是我用 tcp 的时候非常慢,所以推荐使用 udp ;dev tap dev tun // 使用默认 tun (tunnel)模式 ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt cert /etc/openvpn/easy-rsa/2.0/keys/server.crt key /etc/openvpn/easy-rsa/2.0/keys/server.key # This file should be kept secret dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem // 证书和 dh 文件的位置 server 10.8.0.0 255.255.255.0 // 给客户端分配的 IP 段,千万不要和现有网段冲突 push "redirect-gateway def1 bypass-dhcp" // 把 openvpn 服务器作为网关 push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" // 推送 Google DNS 服务器到客户端 ;duplicate-cn // 每个用户只允许一个链接 ;max-clients 100 // 最多客户端数 ;user nobody ;group nogroup // 启动所用用户组 log openvpn.log ;log-append openvpn.log // 单独的日志,会出现在 /etc/openvpn ,第二种是追加模式 |
8、修改包转发设置
1 2 3 4 5 6 7 8 9 | for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done vi /etc/sysctl.conf 修改 net.ipv4.ip_forward = 1 sysctl -p |
9、启用包转发
1 | iptables --table nat --append POSTROUTING --jump MASQUERADE |
10、编辑客户端配置文件
1 2 3 | cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~ vi ~/client.conf |
proto 等内容需要和 server.conf 保持一致,需要修改的部分:
1 2 3 4 | remote SERVER.IP.ADDRESS 1194 // IP 和 端口按照服务器实际情况填写 ca ca.crt cert client.crt key client.key //后面两个要根据实际证书文件名修改 |
11、下载证书和配置文件(将服务器上如下四个文件下载到本地,放到某个文件夹中)
1 2 3 4 | /etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn/easy-rsa/2.0/keys/client.crt /etc/openvpn/easy-rsa/2.0/keys/client.key ~/client.conf |
12、启动 openvpn 并检查
1 | /etc/init.d/openvpn start |
如果在这里出现错误请仔细检查前面几步是否有出现差错…
发表评论
| Trackback
