Windows客户端安装

1) 下载安装Open***客户端工具

  创建客户端配置文件 ../Open***/config/client.o*** 内容如下

# cat client.o***
      client
      dev tun
      proto tcp
      remote 203.195.xxx.xxx 1194  # Open***服务器的外网IP和端口
      resolv-retry infinite
      nobind
      persist-key
      persist-tun
      ca ca.crt
      ;cert client1.crt  # client1的证书
      ;key client1.key   # client1的密钥
      ns-cert-type server 
      tls-auth ta.key 1  # 客户端是1,服务器是0
      comp-lzo
      verb 3
      auth-user-pass     # 启动User/Pass登录的方式

2) 拷贝client.o***文件到win本地open***客户端 ../Open***/config/目录下 

  从服务器上拷贝证书/秘钥 “ca.crt、ta.key” 到本地open***客户端的config/目录下

  然后用管理员身份打开Open***客户端,点击连接。切记,一定要用管理员身份打开,否则客户端将无法执行服务端push推送过来的route路由添加指令

  ok,如果一切顺利,就会看到 "Mon Apr 11 16:26:12 2016 MANAGEMENT: >STATE:1460363172,CONNECTED,SUCCESS,10.8.0.6,10.2.8.45",客户端分配到的ip,10.8.0.6

打开CMD,ipconfig /all 可以看到分配的虚拟ip


Linux 客户端安装

1) 下载客户端工具
  # rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
  # yum install -y open*** 
2) 创建客户端配置文件 client.conf
 # cat /etc/open***/conf/client.conf  添加如下内容
      client
      dev tun
      proto tcp
      remote 203.195.xxx.xxx 1194  # Open***服务器的外网IP和端口
      resolv-retry infinite
      nobind
      persist-key
      persist-tun
      ca ca.crt
      ns-cert-type server 
      tls-auth ta.key 1  # 客户端是1,服务器是0
      comp-lzo
      verb 3
  auth-user-pass     # 启动User/Pass登录的方式
3) 启动客户端
 # open*** --daemon --config /etc/open***/conf/client.conf > /var/log/open***_client.log # 后台守护进程模式启动
   Username: test     # 输入用户名
   Password: 123456   # 输入密码
 # ps -ef | grep -v grep | grep open***  # 查看启动进程


Linux客户端启动脚本 expect.sh

#!/usr/bin/expect 
# FileName: expect.sh
# Auth: Loren
# Date: 2016-04-26 10:00
# 定义账号密码
set user test
set pass 123456
# 启动命令
spawn /usr/local/sbin/open*** --daemon --config /etc/open***/config/client.conf > /var/log/open***_client.log
set timeout 30
# 检测到指定内容
expect "Username:"
# 输入账号
send "$user\n"
set timeout 30
# 检测输入密码
expect "Password:"
# 输入密码
send "$pass\n"
set timeout 30
# 退出
expect eof
# expect expect.sh  # 执行脚本


Linux客户端启动、停止、重启及状态脚本 open***_client.sh

#!/bin/bash
# FileName ***_client_status.sh
# Auth: Loren
# Date: 2016-04-26 10:00

# 客户端配置文件
CONF_FILE='/etc/open***/conf/client.conf'
# log文件
LOG_FILE='/var/log/open***_client.log'
# pid文件
PID_FILE='/tmp/open***_client.pid'
# 启动脚本
EXPECT='/etc/open***/expect.sh'

function start() {
#/usr/local/sbin/open*** --daemon --config $CONF_FILE > $LOG_FILE
expect $EXPECT > /dev/null
ps -ef | grep -v grep | grep open*** > /dev/null
[ $? -eq 0 ] && echo -e 'Start Open*** \033[32msuccessfully\033[0m!' || echo -e 'Start Open*** \033[31mFailing\033[0m!'
echo `ps -ef | grep -v grep | grep open*** | awk '{print $2}'` > $PID_FILE
}

function stop() {
ps -ef | grep -v grep | grep open*** | awk '{print $2}' | xargs -I {} kill -9 {} > /dev/null
ps -ef | grep -v grep | grep open*** > /dev/null
[ $? -eq 0 ] && echo -e 'Stop Open*** is \033[31mFailing\033[0m!' || echo -e 'Stop Open*** is \033[32mOK\033[0m!'
rm -f $PID_FILE
}

function status() {
ps -ef | grep -v grep | grep open*** > /dev/null
[ $? -eq 0 ] && echo -e 'Open*** is \033[32mRunning ...\033[0m' || echo -e 'Open*** is \033[31mStopped\033[0m!'
}

#### main
case $1 in
  start)
          start
          ;;
  stop)
          stop
          ;;
  restart)
	  stop
	  start
	  ;;
  status)
	 status
	  ;;
  *)
          echo "Error! Usage sh $0 (start|stop|restart|status)"
          ;;
esac
sh open***_client start    #启动***
sh open***_client stop     # 停止***
sh open***_client restart # 重启***