首页
关于本博客
友情链接
推荐
linux/shell
Search
1
LEDE官方固件安装中文语言包的方法
11,094 阅读
2
LEDE固件踢出弱信号客户端,实现WiFi无缝漫游脚本
9,221 阅读
3
基于CloudFlare API的纯Shell动态DNS(DDNS)脚本
8,201 阅读
4
一次OpenVPN交叉编译笔记
6,733 阅读
5
利用iptables的string模块来屏蔽域名(关键词匹配)
6,177 阅读
study
OpenWrt/LEDE
网络技术
数通
HCNP/CCNP
linux
shell
CentOS
Ubuntu/Debian
php
Linux应用
VPS推荐
洛杉矶VPS
欧洲VPS
搬瓦工
C/C++
虚拟化
IDC
杂项
MySQL
运维笔记
zabbix
seafile
openvpn
QEMU/KVM
windows
html
nginx
互联网应用
IP地址段汇总
登录
Search
标签搜索
nginx
OpenWrt
openvpn
SSH
cloudflare
seafile
iptables
VPS
linux
openssl
ddns
CentOS
Linux启动脚本
seafile网盘
vsftpd
openvpn配置模板
ftp
反向代理
seafile服务器
letsencrypt
自渡
累计撰写
78
篇文章
累计收到
2
条评论
首页
栏目
study
OpenWrt/LEDE
网络技术
数通
HCNP/CCNP
linux
shell
CentOS
Ubuntu/Debian
php
Linux应用
VPS推荐
洛杉矶VPS
欧洲VPS
搬瓦工
C/C++
虚拟化
IDC
杂项
MySQL
运维笔记
zabbix
seafile
openvpn
QEMU/KVM
windows
html
nginx
互联网应用
IP地址段汇总
页面
关于本博客
友情链接
推荐
linux/shell
搜索到
1
篇与
vtun
的结果
2018-08-18
开源虚拟隧道创建程序VTun编译及配置详解
程序简介vtun是一款开源、轻量级的网络虚拟隧道创建程序,VTun可以通过TCP/IP协议为企业在公网上建立安全的VPN隧道。VTun的功能与OpenVPN类似,都是使用了Linux内核中的虚拟网卡TUN/TAP设备,同时它也支持PPP设备,能够提供多种形式的隧道。但是VTun与OpenVPN的区别是:VTun的隧道是一对一的,即隧道内仅有客户端和服务器两端,不像OpenVPN一样可以设置一个网段和分配不同IP给多个客户端,灵活性略逊后者。 VTun更适合应用于企业总公司与分公司远程组网的场景,直接部署于网关。部署和测试的系统环境客户端:Linux CentOS 7.3 ARM(树莓派3b)服务端:Linux CentOS 6.9 x86_64 (KVM VPS主机)系统内核必须有TUN/TAP和PPP模块,VPS主机须母机的支持。这里只测试RedHat系的系统,Debian系的类似。部署和测试的系统环境下载及编译程序先安装依赖yum install -y openssl openssl-devel zlib zlib-devel bison byacc flex gcc wget ppp lzo lzo-devel git下载程序源码cd /usr/src && git clone https://github.com/VTun/VTun cd /usr/src/VTun && ./configuremake && make install对配置文件进行修改编译完成后,默认的配置文件在/etc/vtund.conf,二进制文件在/sbin/vtund。程序启动时,将会通过读取/etc/vtund.conf配置文件来建立虚拟隧道。该文件内也给出了许多配置例子以供参考。VTun所能提供的隧道类型有IP隧道(tun)、以太网隧道(tap)、串行隧道(支持所有通过串行隧道工作的协议,如PPP、SLIP等等)、pipe隧道(支持通过Unix pipe工作的隧道)。用户可以根据环境的需求来选择合适的隧道类型以及协议。我仅测试了TUN和PPP隧道,而PPP隧道在进行连接时总是报找不到伪终端的错误(Can't allocate pseudo tty,No such file or directory.),调试多次无果,且由于相关资料较少,最终放弃了PPP隧道,如果有大佬知道如何解决还请留言多多指教。而TUN隧道的测试较为顺利,下面贴出TUN/TAP隧道的配置:TUN/TAP隧道服务端配置:#option字段是全局选项,包括监听的端口及定义使用到的二进制文件目录 options { port 5000; #服务器所监听的端口,默认为5000 bindaddr { iface eth0; }; #服务监听的网卡,一般为eth0 syslog daemon; #开启daemon模式,即守护模式,使程序在后台运行 ppp /usr/sbin/pppd; #这是一些二进制文件的目录,默认无需改动 ifconfig /sbin/ifconfig; route /sbin/route; firewall /sbin/ipchains; ip/sbin/ip;}#此处是定义默认会话的选项,将会应用于整个文件内的所有隧道 default { compress no; #compress决定是否对数据压缩,默认为no,压缩方法可选zlib和lzo speed 0; #speed选项可对隧道总速度进行限制,默认为0不限制,限速单位为KB/s } #以下是配置隧道选项,可一次性添加多个字段,即多条隧道,下列以tunnel1为例 tunnel1 { passwd XXXXXX; #此处定义隧道的密钥 type tun; #type选项可根据需求选择tun或者tap proto tcp; #proto是选择隧道通信所使用的协议,在国内运营商对UDP包大幅丢包的状态下,建议选择TCP以建立可靠的连接 device tun0; #隧道建立后,tun虚拟网卡的名称,不得与当前已有的设备重名 compress no; #压缩数据,同default字段里的compress encrypt no; #选择是否加密,加密有多种选项,当你不认为你处在一个可靠的网络内时,建议启用,默认加密方式为blowfish128ecb keepalive yes; # 该选项可隔一段时间ping对端以确认会话的状态,若客户端在NAT网关或者防火墙后,建议开启 stat yes; # 在日志里面记录隧道连接状态 #up字段是隧道在连接后,所执行的命令,即开启一个虚拟网络设备 up { #该选项表示隧道内,本地IP为10.221.96.10,对端IP为10.221.96.11,客户端在配置时应与之相对应 ifconfig "%% 10.221.96.10 pointopoint 10.221.96.11 mtu 1450"; }; down { #在隧道关闭时所执行的命令,即关闭网卡 ifconfig "%% down"; }; }TUN/TAP隧道客户端配置options { port 5000; timeout 60; #此处选项是设置连接到对端的超时时间,单位为秒 ppp/usr/sbin/pppd; ifconfig/sbin/ifconfig; route/sbin/route; firewall/sbin/ipchains; ip/sbin/ip; } #tunnel1字段是为了连接上面服务端的tunnel1隧道 tunnel1 { passwd XXXXXX; #隧道密码,只有与服务器一致才可连接成功 #以下选项同上 type tun; proto tcp; compress no; encrypt no; keepalive yes; stat yes; device tun0; persist yes; #开启此选项后,当物理网络出现问题时,可确保虚拟网卡tun设备不会处于down状态 up { ifconfig "%% 10.221.96.11 pointopoint 10.221.96.10 mtu 1450"; #该选项应该与服务端相对应,IP不得冲突,mtu应保持一致 }; down { ifconfig "%% down"; }; }启动VTunVTun的二进制文件为/sbin/vtund;服务端的启动命令为:vtund -s -f /etc/vtund.conf客户端的启动命令为:vtund -f /etc/vtund.conf tunnel1 $SERVER_IP其中-s选项表示程序以服务端运行,-f表示从配置文件中读取,在客户端启动命令中,tunnel1作为隧道的名称,应该加入到vtund -f /etc/vtund.conf后面,并且最后应填上对端服务器的外网IP。总结VTun作为轻量级网络隧道软件,与OpenVPN相比,配置也非常简单,根据官方介绍,它同OpenVPN一样也可以采用SSL来确保服务器不被仿冒,只能建立一对一隧道这一特性,决定了它更适合部署在网关/路由设备上,而openvpn极高的安全性以及多客户端的特性,决定了它更适合用于客户端-服务器这一模式,如出差员工通过手机、笔记本电脑连接至公司网关这一情景,能够保证员工在安全未知的网络环境下,仍然能通过SSL/TLS来建立安全的连接。
2018年08月18日
4,951 阅读
0 评论
0 点赞