文档章节

使用腾讯云服务器搭建openvpn

李先生的帐号
 李先生的帐号
发布于 2016/08/26 18:01
字数 1807
阅读 351
收藏 1


如何搭建openvpn

一.什么是openvpn
Openvpn是一款基于openssl的开源vpn软件,它可以很好的运行在linux及windows各发行版本中,它的核心技术是虚拟网卡,其实它更像是一个底层的网卡驱动软件,安装完成后会在主机上多出一块虚拟网卡。Openvpn属于c/s架构,想要实现vpn连接必须要在server端和客户端都进行正确的网络配置,配置完成后虚拟网卡就可以像其他网卡一样配置并接收来自应用层软件的数据包请求

二.怎么搭建openvpn
Openvpn在各操作系统中的搭建大同小异,其实都是安装软件、制作证书、修改配置文件、启动连接的过程,本文对具体的安装步骤不再赘述,在网上都能找到详细的安装步骤,只对安装过程中几个重要的点进行说明
Ø  如果yum安装的openvpn软件不带easy-rsa目录,将不能进行证书制作及发放,需要再次手动安装easy-rsa包,然后进行证书制作及发放
Ø  制作证书的过程中输入的证书密码一定要牢记,将来在客户端连接的时候会用到
Ø  制作证书的过程一共需要以下证书
ca.crt   根证书
server.crt   服务器证书
server.key   服务器key文件
dh.pem   验证文件(不同版本文件名可能不同如dh1024.pem)
client.crt   客户端证书(名字可自定义)
client.key   客户端key文件(名字可自定义)
Ø  每一个版本的openvpn都提供了示例配置文件,在openvpn安装目录的/sample/sample-config-files下,服务器端的示例配置文件是server.conf,客户端在windows下的示例配置文件是client.ovpn,需要将它们拷贝到对应的config目录进行配置,一定要注意server端和client端的配置文件一定要一致,如都配置tcp模式,网卡都配置tun模式等,如果不一致会出现连接不上的情况
Ø  服务器端还要注意防火墙的控制,要放通对应的端口,一般默认的端口是1194
Ø  Windows下安装完后既可以作为server端也可以作为客户端,一般都是windows作为客户端。Windows客户端需要根据操作系统版本进行选择,32位和64位一定要选择不同的客户端,否则将会出现虚拟网卡驱动不能安装创建不了虚拟网卡的情况
Windows32位客户端下载地址:http://pan.baidu.com/s/1sj8vrCp
Windows64位客户端下载地址:http://pan.baidu.com/s/1gdrKDVl
如果搭建及配置的过程没有问题,客户端也配置正确,至此客户端基本就可以连接成功了,连接成功后在客户端和服务器端都会多出一块虚拟网卡


如果在客户端能ping通服务器端的地址,那就说明搭建成功了,但是到此仅仅是完成了第一步搭建工作,接下来仍需要配置需要让客户端能通过server端进行代理通信

三.Openvpn网络配置
Openvpn有两种常用的网络配置方式,第一种是路由模式,在这种模式下openvpn server就相当于一台网关设备;第二种是nat模式,在这种模式下openvpn server就相当于一台nat防火墙设备。要根据自己的业务模型选择适合的网络配置方式,下面分别介绍两种模式是如何实现的。
Ø  路由模式
假如有一批服务器,它们处于同一网段,那么这种情况就是试用在路由模式,因为路由模式下主要是需要在其他机器上添加到openvpn server的回程路由,将openvpnserver作为一台网关设备,因此如果不在同一网段将会导致无法添加回程路由。腾讯云的主机在现阶段的架构下暂时无法做到自定义网段,因此服务器的IP可能都不在同一网段,路由模式将不适用,所以不做过多介绍
Ø  Nat模式
在nat模式下,openvpn server接到客户端通过vpn虚拟网卡发来的包通过iptables将其转换为自己网卡所在网段的包,然后再寻址转发,回程的包也是一样先转换成vpn网段的包然后再转发给客户端,这样就实现了代理通信,这种方式在腾讯云服务器上试用。Windows服务器上可以通过路由和远程访问服务来设置nat
在linux服务器下,配置路由转发特别简单,在服务器上开启路由转发并用iptables启用转发即可
sysctl -w net.ipv4.ip_forward=1    //开启路由转发
iptables –t nat -A POSTROUTING -j MASQUERADE      //iptables设置nat转发
     
这样,一台基本的nat模式openvpn服务器就假设成功,赶紧用客户端连接试试吧

四.常见openvpn问题排查
Ø   Openvpn服务无法启动
检查server.conf配置文件,ca、cert、key、dh四个文件路径及文件名是否正确,最好用绝对路径写,检查这几个文件是否都存在,如果不存在,从头再来制作一次吧
Ø  客户端无法连接openvpn服务器
a.       检查server端服务是否正常启动,端口是否在监听
b.       在客户端telnet服务器的openvpn监听端口,检查是否通
c.       检查服务器iptables设置,是否关闭或放通openvpn使用的端口
d.       检查客户端配置文件,是否和服务器端配置一致且使用正确的服务器IP
Remote 服务器公网IP 端口
e.       如果以上都不行,在openvpn客户端安装目录下找到log文件夹进去看看日志吧
Ø  客户端连接成功但是无法上网
这种问题多半是客户端路由配置不对引起,可以route print检查一下路由表信息,默认路由0.0.0.0所在网关是否是vpn服务器。在openvpn服务器端server.conf配置文件里可以下发路由和默认网关以及dns配置到客户端分别对应如下配置
push "route 10.251.134.186 255.255.255.255"  //如这条配置可以将10.251.134.186这条主机路由添加到客户端,如果需要多条路由,逐行添加即可
push "dhcp-option DNS 114.114.114.114"     //推送dns配置到客户端
push "redirect-gateway def1 bypass-dhcp"   //推送默认路由到客户端
         以上配置根据需要自行添加,如需要代理上网就推送默认路由加dns到客户端,如需要通过内网地址管理服务器就推送服务器内网地址路由到客户端。修改完配置文件记得重启openvpn服务
Ø  客户端连接成功可以登录qq但是无法上网
这种典型的是dns设置没有推送过来,打开电脑的openvpn网卡设置,添加一条localdns服务器记录即可

本文转载自:http://bbs.qcloud.com/thread-4044-1-1.html

共有 人打赏支持
李先生的帐号
粉丝 2
博文 12
码字总数 2507
作品 0
石家庄
私信 提问
加载中

评论(4)

彼岸花の涙は
彼岸花の涙は
能不能换成openvpn手机端进行手机免流啊
s
smile点点
博主写的步骤很细,谢谢,腾讯云服务器也很不错。
391139057
391139057
腾讯云服务器很安全稳定
崔辰_Catherine宅着
崔辰_Catherine宅着
感谢楼主分享,已使用腾讯云搭建成功,多谢指导!
使用OpenVPN搞定远程办公

欢迎访问陈同学博客原文 本文基于同事海伟的内部笔记整理,新增了httpbasic demo,client从付费的shimo换成了免费的tunnelblick。 背景:公司VPN仅支持IE浏览器,需在登录VPN账户后一直开着I...

genter
2018/08/26
0
0
CentOS搭建OpenVPN服务

安装OpenVPN软件包 默认的Centos软件源里面没有OpenVPN的软件包,我们可以添加rpmforge的repo,从而实现yum安装openvpn 针对CentOS 5 rpm -ivh http://apt.sw.be/redhat/el5/en/x8664/rpmfor...

张旭0512
2014/07/08
0
0
搭建基于证书认证登录的OpenVPN服务器

一、OpenVPN简介 OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。 OpenVPN允许参与建立VPN的单点使用共享金钥,电子证书,或者用户名/密码来进行身...

技术小胖子
2017/11/02
0
0
Linux自学笔记——模拟搭建openvpn

VPN直译就是虚拟专用通道,是提供给企业之间或者个人与公司之间安全数据传输的隧道,openvpn无疑是linux开源vpn的先锋,提供了良好的性能和友好的用户GUI。 OpenVPN是一个基于OpenSSL库的应用...

claude_liu
2018/04/26
0
0
ubuntu server 搭建openvpn(路由模式) 笔记

OpenVPN 是由ubuntu库提供的私人虚拟网络(VPN)解决方案. 具有灵活,易用,可靠,安全的特点. OpenVpn分两种模式,即桥接模式与路由模式,本次是路由模式。 实验环境:服务器:ubuntu server 11....

伪码农eric
2012/06/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
3
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
4
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
3
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部