拓扑图:

简单设置open***服务器,win xp客户端centos客户端测试;


通过***实现远程客户端访问服务器内网:


服务器 IP 备注
centos6.6 (open***-server)
192.168.10.64 
centos6.6 (client) 192.168.10.66
windows xp (client) 192.168.10.69



一、open***服务器配置


[[email protected]~]# vim /etc/sysctl.conf

net.ipv4.ip_forward= 1    # 把0改成1,开启服务器端路由转发功能


 

[[email protected]~]# iptables –F   #清空iptables规则

[[email protected]~]#  iptables -t nat -A POSTROUTING -s10.8.0.0/24 -o eth0 -j MASQUERADE        
#设置IPTABLES转发策略;


[[email protected]~]# service iptables save    #保存iptables策略

[[email protected]~]# yum install -y open***  #yum安装open***

[[email protected]~]# rpm -q open***   #查看版本

open***-2.3.7-1.el6.x86_64       #版本为2.3.7

 

 

配置open***

[[email protected]~]# cp /usr/share/doc/open***-2.3.7/sample/sample-config-files/server.conf  /etc/open***/   #先把主要配置文件复制到/etc/open***

[[email protected]~]# cd /etc/open***/

[[email protected]***]# vim server.conf    #编辑配置文件,其中#和;开头的为注释内容;

# 设置监听IP,默认是监听所有IP
;local a.b.c.d
# 设置监听端口,必须要对应的在防火墙里面打开
port 1194
# 设置用TCP还是UDP协议?(用UDP会比较快些)
;proto tcp
proto tcp
# 设置创建tun的路由IP通道,还是创建tap的以太网通道路,由于IP容易控制,所以推荐使用tun;但如果IPX等必须使用第二层才能通过的通讯,则可以用tap方式,tap也就是以太网桥接
;dev tap
dev tun
# Windows服务端需要给网卡一个名称,linux不需要
;dev-node MyTap
# 这里是重点,必须指定SSL/TLS rootcertificate (ca),certificate(cert), and private key (key),ca文件是服务端和客户端都必须使用的,但不需要ca.key,服务端和客户端指定各自的.crt和.key,请注意路径,可以使用以配置文件开始为根的相对路径,也可以使用绝对路径,请小心存放.key**文件
ca /usr/share/doc/open***-2.3.7/sample/sample-keys/ca.crt
cert /usr/share/doc/open***-2.3.7/sample/sample-keys/server.crt
key /usr/share/doc/open***-2.3.7/sample/sample-keys/server.key
# 指定Diffie hellmanparameters.
dh /usr/share/doc/open***-2.3.7/sample/sample-keys/dh2048.pem
# 配置×××使用的网段,Open×××会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网段重复,这里我选择默认
server 10.8.0.0 255.255.255.0
# 维持一个客户端和virtual IP的对应表,以方便客户端重新连接可以获得同样的IP
ifconfig-pool-persist ipp.txt
# 配置为以太网桥模式,但需要使用系统的桥接功能,这里不需要使用
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
# 为客户端创建对应的路由,以另其通达公司网内部服务器,但记住,公司网内部服务器也需要有可用路由返回到客户端,这里主要填写open***所在局域网的网段,我的open***所在的局域网是10.0.0.0,如果你的open***所在的局域网是其他的网段,下面请填写其他网段,可以填写多个网段。
;push "route 192.168.20.0 255.255.255.0"
push "route 10.0.0.0 255.255.255.0"
# 若客户端希望所有的流量都通过×××传输,则可以使用该语句,其会自动改变客户端的网关为×××服务器,推荐关闭,一旦设置,请小心服务端的DHCP设置问题,如果需要抓取所以连接×××客户端的流量信息,需要开启,这就是网络上面所说的×××。
;push "redirect-gateway def1 bypass-dhcp"   所有数据都通过×××
# 用Open×××的DHCP功能为客户端提供指定的DNS、WINS等
push "dhcp-option DNS 172.16.1.5"
;push "dhcp-option WINS 10.8.0.1"
# 默认客户端之间是不能直接通讯的,除非把下面的语句注释掉
client-to-client
# 如果您希望有相同Common Name的客户端都可以登陆,也可以注释下面的语句,推荐每个客户端都使用不用的Common Name,开启的话,一个证书可以多个客户端连接
;duplicate-cn
# 设置服务端检测的间隔和超时时间
keepalive 10 120
# 使用lzo压缩的通讯,服务端和客户端都必须配置
comp-lzo
# 设置最大用户数
;max-clients 100
# 让Open×××以nobody用户和组来运行(安全)
;user nobody
;group nobody
#持续选项会尽量避免访问某些资源的重新启动可能不可以因为特权的降级。
persist-key
persist-tun
# 输出短日志,每分钟刷新一次,以显示当前的客户端
status /var/log/open***/open***-status.log
# 缺省日志会记录在系统日志中,但也可以导向到其他地方建议调试的使用先不要设置,调试完成后再定义,只能使用其中的一个,log会每次启动前先清楚日志,log-append会对数据追加
;log /var/log/open***/open***.log
log-append /var/log/open***/open***.log
# 设置日志的级别
verb 3

 

[[email protected]***]# mkdir /var/log/open***

[[email protected]***]# touch /var/log/open***/open***.log  #创建日志文件

[[email protected]***]# service open*** start    #启动open***服务

 

 

 

二、配置windows客户端:


1.下载客户端,并默认安装:下载地址可能需要翻、墙

http://***tech.googlecode.com/files/open***-2.1.1-gui-1.0.3-install-cn-64bit.zip

2.将服务端内ca.crt、client.crt、client.key、client.conf复制到客户端C:\Program Files(x86)\Open×××\config下.

3.把client.conf改名为client.o***,并修改内容,内容如下(可以直接复制,修改服务器ip即可):

# 定义是一个客户端
client
# 定义使用路由IP模式,与服务端一致
dev tun
# 定义Windows下使用的网卡名称,linux不需要
;dev-node MyTap
# 定义使用的协议,与服务端一致
proto tcp
# 指定服务端地址和端口,可以用多行指定多台服务器实现负载均衡高可用(从上往下尝试)
remote 211.152.x.x 1194
;remote my-server-2 1194
# 若上面配置了多台服务器,让客户端随机连接
;remote-random
# 解析服务器域名
resolv-retry infinite
# 客户端不需要绑定端口
nobind
# Try to preserve some stateacross restarts.
persist-key
persist-tun
# 重点,就是指定ca和客户端的证书
ca ca.crt
cert client.crt
key client.key
# 使用lzo压缩,与服务端一致
comp-lzo
# 日志级别
verb 3


简单设置open***服务器,win xp客户端centos客户端测试;


设置完成后,右键点击电脑右下角,连接服务;

简单设置open***服务器,win xp客户端centos客户端测试;

简单设置open***服务器,win xp客户端centos客户端测试;

客户端已经获取到IP!!!

简单设置open***服务器,win xp客户端centos客户端测试;

尝试ping外网和***服务器;因为我这里测试机器是xp系统,ping不能指定网卡,下次用win7客户端测试一下,看能不能用***获取到的地址链接外网;

简单设置open***服务器,win xp客户端centos客户端测试;

 

 

三、使用centos客户端连接open***


[[email protected] ~]#yum install -y open***

[[email protected]~]# cd /etc/open***/

[[email protected]***]# vim client.o***

client
dev tap
proto tcp-client
remote192.168.10.64 1194
resolv-retryinfinite
nobind
mute-replay-warnings
redirect-gateway
ca  /etc/open***/ca.crt
cert /etc/open***/client.crt
key/etc/open***/client.key
comp-lzo
verb 3

[[email protected]***]# ls   #把服务器的验证文件拷贝过来

ca.crt  client.crt client.key  client.o***


在配置好.o***文件后,执行

[[email protected]***]#open***/etc/client.o***

即可连接服务器了。注意,上面的参数应该换成你的配置文件实际位置。

此时,终端会回显很多连接日志。如果连接不成功,则可以通过这些日志来确定出错位置。如果要断开,只需要通过Ctrl+C强制终止即可。

上面的命令在实际中并不方便,因为它要占用一个独立的终端。在测试成功后,使用以下命令即可在后台连接Open×××:

[[email protected]***]#open***/etc/client.o*** > /dev/null &

值得称赞的是,open***非常智能,在连接异常中断、无法连接服务器、断网的情况下,它会自动重连。因此,如果希望开机即自动连接Open×××,或者是×××常年在线,则可将上述命令行加入/etc/rc.local中。注意,命令末尾的&符号不能省略,否则将可能阻塞系统的正常启动。

 

 

[[email protected]~]# ping -S 10.8.0.6  192.168.10.65  #测试***服务器内网地址段

PING192.168.10.65 (192.168.10.65) 56(84) bytes of data.
64 bytes from192.168.10.65: icmp_seq=1 ttl=64 time=6.28 ms
1 packetstransmitted, 1 received, 0% packet loss, time 510ms
rttmin/avg/max/mdev = 6.280/6.280/6.280/0.000 ms

 

[[email protected]~]# ping -S 10.8.0.6  www.baidu.com #测试外网

PINGwww.a.shifen.com (180.97.33.107) 56(84) bytes of data.
64 bytes from180.97.33.107: icmp_seq=1 ttl=50 time=32.3 ms
1 packetstransmitted, 1 received, 0% packet loss, time 772ms
rttmin/avg/max/mdev = 32.379/32.379/32.379/0.000 ms

 

[[email protected]~]# ping -S 10.8.0.6  10.8.0.1          #测试***服务器

PING 10.8.0.1(10.8.0.1) 56(84) bytes of data.
64 bytes from10.8.0.1: icmp_seq=7 ttl=64 time=1.05 ms
9 packetstransmitted, 3 received, 66% packet loss, time 8608ms
rttmin/avg/max/mdev = 0.779/0.911/1.052/0.116 ms