?因设备是一个采用4G无线通信方式,4G拨号后是移动分配给设备的一个变动的局域网IP。若想远程连接设备对设备进行配置、升级,则设备作为服务端,远程服务器的配置工具软件作为客户端,则连接不上设备,因为不是固定IP。这里采用的方案是 设备4G拨号成功后,通过openvpn?拨号连接远程服务器,拨号成功后建立一个p-t-p的通信隧道。服务器就以这个p-t-p的IP连接设备.
一、openVpn 移植
1.1编译lzo-2.10 用于数据压缩 ?
tar zxvf lzo-2.10.tar.gz
# cd /usr/src/lzo-2.10/
# CC=arm-fsl-linux-gnueabi-gcc ./configure ? --host=arm-linux --prefix=$PWD/install --enable-shared
# make -j4 && make install
1.2 编译openssl-1.0.2.tar.gz
#tar -zxvf openssl-1.0.2.tar.gz
#cd openssl-1.0.2
#CC=arm-fsl-linux-gnueabi-gcc ./config no-asm -shared --prefix=$PWD/install
#vim Makefile
搜索-m64选项并删除,共有两处。
#make -j4
#make install
1.3 编译OpenVPN https://openvpn.net/?下载 github上面也有 #tar xvfz openvpn-2.4.6.tar.gz? 新建一个脚本配置文件 myconfigure.sh 内容如下:
./configure \
OPENSSL_CFLAGS=-I/home/jdtf/VpnClient/openssl-1.0.2/install/include \
OPENSSL_LIBS="-L/home/jdtf/VpnClient/openssl-1.0.2/install/lib -lssl -lcrypto" \
--prefix=$PWD/install ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?\
LZO_CFLAGS=-I/home/jdtf/VpnClient/lzo-2.10/install/include ?? ? ?? ?\
LZO_LIBS="-L/home/jdtf/VpnClient/lzo-2.10/install/lib -llzo2" ?? ?\
--host=arm-fsl-linux-gnueabi ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?\
CC=arm-fsl-linux-gnueabi-gcc?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?\
AR=arm-fsl-linux-gnueabi-ar ?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?\
RANLIB=arm-fsl-linux-gnueabi-ranlib ?? ??? ??? ??? ??? ??? ??? ??? ?\
--disable-plugin-auth-pam --disable-lz4
#chmod 777 myconfigure.sh
#./myconfigure.sh
#make -j4
#make install
将生成的bin sbin lib 拷贝至 设备的文件系统里面
若设备内核不支持tun模块需要重新编译下内核文件? tun: Universal TUN/TAP device driver, 1.6 #make menuconfig Device Drivers ---> ?? ?Network device support ---> ?? ?<M>?? ?Universal TUN/TAP driver support? 然后 在/dev/net/tun 网络节点出现 ?
二、windows 安装 openVpn 2.1 安装?openvpn https://openvpn.net/index.php/open-source/downloads.html 下载 openvpn-install-2.4.6-I602.exe
注意安装时候要选中 EasyRSA 2 Certificate Management Scripts 同意安装 TAP-Windows Provider V9 网络适配器
2.2 生成证书 打开cmd ,进入安装目录?easy-rsa 文件夹
-> init-config
-> vars
-> clean-all
# 生成CA根证书密钥对。
-> build-ca
#创建服务器端证书和私钥
-> build-key-server server
# 创建客户端证书和私钥
-> build-key client
# 为O服务器端创建迪菲·赫尔曼交换密钥 默认1024大小 用以对数据进行加密
-> build-dh
2.3 服务器拷贝证书文件 将?ca.crt ca.key? dh2048.pem server.crt server.key 拷贝至config目录下 ,并且在config目录下创建配置文件server.ovpn, 可以从sample-config 拷贝进行更改
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 192.168.0.0 255.255.0.0
keepalive 10 120
cipher AES-256-CBC
persist-key
persist-tun
status openvpn-status.log
verb 3
explicit-exit-notify 1
2.4 设备拷贝证书文件 建立 /etc/openvpn 文件夹 ,将ca.crt client.crt client.key? 拷贝至该目录 并且建立client.ovpn文件,可以从sample-config 拷贝进行更改
client
dev tun
proto udp
remote 192.168.3.122 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
;tls-auth ta.key 1
;comp-lzo
verb 3
2.5 启动VPN
openvpn --cd /etc/openvpn/ --config /etc/openvpn/client.ovpn
#ifconfig 可以看到新的网卡 tun
?
|