一.什么是open***
Open***是一款基于openssl的开源***软件,它可以很好的运行在linux及windows各发行版本中,它的核心技术是虚拟网卡,其实它更像是一个底层的网卡驱动软件,安装完成后会在主机上多
出一块虚拟网卡。Open***属于c/s架构,想要实现***连接必须要在server端和客户端都进行正确的网络配置,配置完成后虚拟网卡就可以像其他网卡一样配置并接收来自应用层软件的数据包
请求
二.怎么搭建open***
Open***在各操作系统中的搭建大同小异,其实都是安装软件、制作证书、修改配置文件、启动连接的过程,本文对具体的安装步骤不再赘述,在网上都能找到详细的安装步骤,只对安装过程
中几个重要的点进行说明
如果yum安装的open***软件不带easy-rsa目录,将不能进行证书制作及发放,需要再次手动安装easy-rsa包,然后进行证书制作及发放
制作证书的过程中输入的证书密码一定要牢记,将来在客户端连接的时候会用到
制作证书的过程一共需要以下证书
ca.crt 根证书
server.crt 服务器证书
server.key 服务器key文件
dh.pem 验证文件(不同版本文件名可能不同如dh1024.pem)
client.crt 客户端证书(名字可自定义)
client.key 客户端key文件(名字可自定义)
每一个版本的open***都提供了示例配置文件,在open***安装目录的/sample/sample-config-files下,服务器端的示例配置文件是server.conf,客户端在windows下的示例配置文件是
client.o***,需要将它们拷贝到对应的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端进行代理通信
三.Open***网络配置
Open***有两种常用的网络配置方式,第一种是路由模式,在这种模式下open*** server就相当于一台网关设备;第二种是nat模式,在这种模式下open*** server就相当于一台nat防火墙设备
。要根据自己的业务模型选择适合的网络配置方式,下面分别介绍两种模式是如何实现的。
路由模式
假如有一批服务器,它们处于同一网段,那么这种情况就是试用在路由模式,因为路由模式下主要是需要在其他机器上添加到open*** server的回程路由,将open***server作为一台网关设备
,因此如果不在同一网段将会导致无法添加回程路由。腾讯云的主机在现阶段的架构下暂时无法做到自定义网段,因此服务器的IP可能都不在同一网段,路由模式将不适用,所以不做过多介
绍
Nat模式
在nat模式下,open*** server接到客户端通过***虚拟网卡发来的包通过iptables将其转换为自己网卡所在网段的包,然后再寻址转发,回程的包也是一样先转换成***网段的包然后再转发给
客户端,这样就实现了代理通信,这种方式在腾讯云服务器上试用。Windows服务器上可以通过路由和远程访问服务来设置nat
在linux服务器下,配置路由转发特别简单,在服务器上开启路由转发并用iptables启用转发即可
sysctl -w net.ipv4.ip_forward=1 //开启路由转发
iptables –t nat -A POSTROUTING -j MASQUERADE //iptables设置nat转发
这样,一台基本的nat模式open***服务器就假设成功,赶紧用客户端连接试试吧
四.常见open***问题排查
Open***服务无法启动
检查server.conf配置文件,ca、cert、key、dh四个文件路径及文件名是否正确,最好用绝对路径写,检查这几个文件是否都存在,如果不存在,从头再来制作一次吧
客户端无法连接open***服务器
a. 检查server端服务是否正常启动,端口是否在监听
b. 在客户端telnet服务器的open***监听端口,检查是否通
c. 检查服务器iptables设置,是否关闭或放通open***使用的端口
d. 检查客户端配置文件,是否和服务器端配置一致且使用正确的服务器IP
Remote 服务器公网IP 端口
e. 如果以上都不行,在open***客户端安装目录下找到log文件夹进去看看日志吧
客户端连接成功但是无法上网
这种问题多半是客户端路由配置不对引起,可以route print检查一下路由表信息,默认路由0.0.0.0所在网关是否是***服务器。在open***服务器端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到客户端,如需要通过内网地址管理服务器就推送服务器内网地址路由到客户端。修改完配置文件记得重启
open***服务
客户端连接成功可以登录qq但是无法上网
这种典型的是dns设置没有推送过来,打开电脑的open***网卡设置,添加一条localdns服务器记录即可