本帖最后由 8267 于 2024-2-2 07:37 编辑
发现一个很好用的异地组网软件,分享给大家,项目地址:github.com/lbl8603/vnt 感谢lbl8603大佬! 电脑以及其他平台这里面有现成的 安卓下载 vntapk
只要两端都安装了vnt 即可实现互相访问 类似于zerotier吧 速度接近宽带速率 支持ipv6 ,更容易直连!轻松跑满我的30M上传 有朋友宽带更高的可以试试极限能跑多少 分享一下速度,用在7621这个路由器 又没有公网IP的 组网插件我推荐这个vnt 其次是lucktu仓库的多线程n2n,这俩都能轻松跑满我的宽带速度 openwrt可以参考liaohcai大佬写的教程OpenWrt一键安装异地虚拟组网插件VNT(脚本) openwrt的界面 luci-app-vnt
来自于 xf110 测试了,在两端p2p直连下,速度可以跑满宽带,如下图,他宽带上传是30M
家里nat1
单位nat4
也能打通p2p直连
3.7M/s 算是差不多跑满了
来自于 liaohcai 测试7621的cpu大概可以跑55M左右 下图 以及他提供的一些数据 10楼,点此直达
vnt-cli 客户端:下载地址 vnts 服务端:下载地址 小容量设备可以下载原版自己压缩。也可以下载我压缩好的,压缩版地址:下载地址
下载自己对应平台的即可,我使用程序内置的服务器,所以就只下载客户端即可,我是padavan(mt7621),所以下载mipsel的vnt-cli ,压缩版我用的是vnt-cli_full 下载后改名为vnt-cli
以下简单介绍padavan的使用步骤:其他平台不懂的或运行问题请前往作者项目地址里,或者作者的交流QQ群 里咨询大佬们吧
使用winscp之类的软件上传到/etc/storage/bin/vnt-cli 并赋予执行权限,同时可以在这个文件夹里新建一个配置文件,以yaml结尾 如vnt.yaml 填入以下内容
- # 全部参数 ---- 参考地址:https://github.com/lbl8603/vnt/blob/main/vnt-cli/README.md#-f-conf
- tap: false #是否使用tap网卡(默认使用tun网卡)
- token: xxx #组网token(各客户端使用相同的token才能组到同一个虚拟网里)
- device_id: xxx #当前设备id(如1 每个客户端id不能相同)
- name: windows 11 #当前设备名称 (如k2p,用来识别哪个客户端)
- server_address: ip:port #服务器(自建服务器请填你的域名:端口,如果使用作者的服务器 请删掉此行)
- stun_server: #stun服务器(以下两行为默认stun服务器,免费stun服务器下方有介绍)
- - stun1.l.google.com:19302
- - stun2.l.google.com:19302
- in_ips: #代理ip入站(对端的内网ip网段和相应的虚拟ip,以下代表对端内网192.168.1.0网段和它的虚拟ip10.26.0.3,多个客户端按以下格式在下一行自行添加)
- - 192.168.1.0/24,10.26.0.3
- out_ips: #代理ip出站(本机网段 0.0.0.0代表本机网段)
- - 0.0.0.0/0
- password: xxx #密码 (各个客户端组网的加密,加密会影响速率,不加密请删掉此行)
- simulate_multicast: false #模拟组播(默认)
- mtu: 1420 #mtu (默认1420,如果无法ping通,适当调小)
- tcp: false #tcp模式(在如果网络环境差。udp有限速 可开启tcp模式)
- ip: 10.26.0.2 #指定虚拟ip (指定本机的虚拟ip,上面的代理ip入站需要用到指定虚拟ip)
- relay: false #中继模式(客户端网络环境很差,p2p效果不佳,速度慢?不稳?可以使用服务器转发,作者免费服务器只有5M带宽)
- server_encrypt: true #服务端加密 (默认)
- parallel: 1 #任务并行度 (默认,7621cpu 默认即可,多核cpu可自行增加测试最佳速度)
- cipher_model: aes_ecb #客户端加密算法(7621cpu此加密算法最快,不使用加密请删掉此行)
- finger: false #关闭数据指纹
- punch_model: ipv4 #打洞模式 (默认使用ipv4地址尝试打洞p2p,若无法打洞成功p2p,有ipv6地址的可使用ipv6,注意ipv4速度比ipv6速度更快)
- port: 0 #使用随机端口(默认无需修改)
- cmd: false #关闭控制台输入
- no_proxy: false #是否关闭内置代理,true为关闭(默认false启用,如果使用true关闭,速度会更快,但要额外输入nat命令下方有介绍)
复制代码 把以上内容修改为你的参数,填入vnt.yaml 和vnt-cli同目录里。新建一个启动脚本,vnt.sh也放至同目录。填入以下内容,并赋予执行权限
- #!/bin/sh
- /etc/storage/bin/vnt-cli --stop
- killall vnt-cli
- logger -t "vnt" "准备启动"
- cd /etc/storage/bin
- ./vnt-cli -f /etc/storage/bin/vnt.yaml &
- sleep 8
- if [ ! -z "`pidof vnt-cli`" ] ; then
- logger -t "vnt" "启动成功"
- #放行vnt防火墙
- iptables -I INPUT -i vnt-tun -j ACCEPT
- iptables -I FORWARD -i vnt-tun -o vnt-tun -j ACCEPT
- iptables -I FORWARD -i vnt-tun -j ACCEPT
- iptables -t nat -I POSTROUTING -j MASQUERADE
- #如果关闭内置代理(no_proxy: true) 需要启用下面的ip转发命令才能访问内网设备,去掉前方的#即可 (参考地址:https://github.com/lbl8603/vnt#linux)
- #sysctl -w net.ipv4.ip_forward=1
- else
- logger -t "vnt" "启动失败"
- fi
复制代码
另外可以参考使用liaohcai大佬的一键安装异地虚拟组网插件VNT 的脚本
免费的stun服务器
TCP/UDP
- fwa.lifesizecloud.com
- stun.isp.net.au
- stun.freeswitch.org
- stun.voip.blackberry.com
- stun.nextcloud.com
- stun.sipnet.com
- stun.radiojar.com
- stun.sonetel.com
- stun.voipgate.com
- stun.byterace.shop
- stunserver.stunprotocol.org
UDP
- stun.miwifi.com
- stun.qq.com
以下为旧版,自1.2.6版本以后很稳定很好用速度最快!
1.2.2(增加可选参数‘ --punch ipv4/ipv6’,如果存在公网ipv4和ipv6,默认将同时使用ipv4和ipv6打洞,也可指定其中一种,和1.2.1版本一起组网并且使用加密时,必须增加参数‘--finger’)
注意自1.2.0版本起 服务器增加了加密功能,自建服务器使用1.2.0版本及以上那么客户端也要使用1.2.0及以上才行。如果单独使用客户端,两地的客户端也要保持一致 要么都是1.1.2版本 要么都是1.2.0版本及以上,1.1.2和1.2.0版本不能互通了 还在测试,版本随时更新中 更多版本说明请去github.com/lbl8603/vnt/releases 查看
1.1.2版之前的问题已修复重新上传了
编译了mipsel静态版的vnt-cli程序
客户端
客户端启动参数:参数说明
最新版本下载地址 :客户端,服务端
服务端使用说明:github.com/lbl8603/vnts
单独使用只需要下载上面的客户端就行了 , 解压出 vnt-cli 上传到路由器/etc/storage/bin/目录 或者你喜欢的目录,然后在当前目录新建一个vnt.sh的脚本用来启动吧,并赋予他们的执行权限
编辑vnt.sh 例如 如果之前使用了1.1.2版本的 请删除1.1.2版本的设备id 1.2.0使用1.1.2版的设备id会导致启动失败 rm -rf /home/root/.vnt-cli /etc/storage/.vnt-cli/device-id
以下启动参数仅供参考 若是启动失败 请自行查看官方的启动参数说明
- #!/bin/sh
- /etc/storage/bin/vnt-cli --stop
- #关闭vnt的防火墙
- iptables -D INPUT -i tun0 -j ACCEPT 2>/dev/null
- iptables -D FORWARD -i tun0 -o tun0 -j ACCEPT 2>/dev/null
- iptables -D FORWARD -i tun0 -j ACCEPT 2>/dev/null
- iptables -t nat -D POSTROUTING -o tun0 -j MASQUERADE 2>/dev/null
- killall vnt-cli
- killall -9 vnt-cli
- sleep 3
- #清除vnt的虚拟网卡
- ifconfig tun0 down && ip tuntap del tun0 mode tun
- #启动命令 更多命令去官方查看
- #/etc/storage/bin/vnt-cli -k 密钥 -i 对端内网网段.0/24,对端虚拟ip -o 本机网段.0/24 -d1 设备1 --ip 指定本机ip & 例如下面的 此路由ip是192.168.123.1 --ip指定本机虚拟ip为10.26.0.3 下面改为你自己的 -d1 另外一台设备就用-d2 不能一致密钥尽量复杂一点 不然容易和别人干扰 如果启动不了 大概就是这个虚拟ip被占了
- /etc/storage/bin/vnt-cli -k zheshimiyao -i 192.168.2.0/24,10.26.0.2 -o 192.168.123.0/24 -d1 --ip 10.26.0.3 &
- sleep 8
- if [ ! -z "`pidof vnt-cli`" ] ; then
- logger -t "vnt" "启动成功"
- #放行vnt防火墙
- iptables -I INPUT -i tun0 -j ACCEPT
- iptables -I FORWARD -i tun0 -o tun0 -j ACCEPT
- iptables -I FORWARD -i tun0 -j ACCEPT
- iptables -t nat -I POSTROUTING -o tun0 -j MASQUERADE
- #开启arp
- ifconfig tun0 arp
- else
- logger -t "vnt" "启动失败"
- fi
复制代码 启动就输入/etc/storage/bin/vnt.sh 启动它, 停止必须输入程序 --stop,不能直接killall 它 (1.2.2版本及以后可以killall)下次会启动失败! 输入/etc/storage/bin/vnt-cli --stop 停止它
开机启动在 参数设置-在路由器启动后执行里添加 /etc/storage/bin/vnt.sh &
以上就是启动成功了 输入 /etc/storage/bin/vnt-cli --info 可以查看本机信息
也可以输入/etc/storage/bin/vnt-cli --all 显示所有当前密钥组网内用户在线情况
上面显示我的是服务器中继
下面是p2p直连
此时表示两端已经成功连接了
输入对端的内网ip 即可访问了
以下 是我自建服务器 测试 p2p 30M上传的速度
这是1.1.2版本
这是1.2.0版本
服务器启动参数 参考如下
- #!/bin/sh
- killall vnts
- #关闭vnts的防火墙规则
- iptables -t filter -D INPUT -p tcp --dport 8268 -j ACCEPT
- iptables -t filter -D INPUT -p udp --dport 8267 -j ACCEPT
- logger -t "vnt" "启动服务器"
- /etc/storage/bin/vnts --port 8267 &
- sleep 8
- if [ ! -z "`pidof vnts`" ] ; then
- logger -t "vnt" "服务器启动成功"
- #放行vnts防火墙
- iptables -t filter -I INPUT -p tcp --dport 8267 -j ACCEPT
- iptables -t filter -I INPUT -p udp --dport 8267 -j ACCEPT
- else
- logger -t "vnt" "服务器启动失败"
- fi
复制代码
再次测试 我两个电信 30M上传 使用1.2.0 在路由器上自建的服务器 (使用客户端自带的服务器或者公益服务器vnt.8443.eu.org:29871 速度都一样 ) 可以跑满宽带
|