找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 2809|回复: 16

3.4内核的padavan安装wireguard内核模块进行组网

[复制链接]
本帖最后由 8267 于 2024-4-27 12:38 编辑

3.4内核的padavan没有wireguard内核模块,导致无法使用wireguard,以前只能tunsafe代替。
只有4.4内核的padavan还有3.4内核的padavan-ng有内核模块支持,才能使用 ip link add dev wg0 type wireguard 添加接口。

好像必须要wireguard内核模块才能使用 ip link add dev wg0 type wireguard 创建接口,所以照着padavan-ng里的添加wg内核模块的步骤,在3.4内核的普通padavan里单独编译了个wg模块,
hiboy的padavan固件没开源 没编译工具 所以hiboy的padavan不可用 ,得使用下面的wireguard-go创建接口 不能用内核模块 或者用上方的tunsafe


下载对应cpu型号的模块 (里面包含wg管理工具)
cpu MT7621:  

cpu MT7620:  

cpu MT7628:



CPU型号系统日志这里可以查看  或者 命令行输入 cat /proc/cpuinfo | grep "system type"  查看
编译的wireguard-linux-compat内核版本和padavan-ng里的一样的都是1.0.20210219,测试使用内核组网没有丢包了

lsmod | grep wireguard  可以查看固件是否有wg内核模块


1.首先下载上方的模块,解压出wireguard.ko  

2.上传至/etc/storage/wireguard.ko

3.然后安装命令是  insmod /etc/storage/wireguard.ko  (卸载命令是 rmmod wireguard.ko)

4.如果没有报错就是安装成功了


这样可以正常按照wireguard教程开始了 附官方的教程
  1. #大致步骤如下
  2. insmod /etc/storage/wireguard.ko   #安装模块
  3. ip link del dev wg0    #删除wg0接口
  4. ip link add dev wg0 type wireguard   #创建wg0接口
  5. wg setconf wg0 /etc/storage/wg0.conf  #接口绑定配置文件
  6. ip -4 addr add dev wg0 20.10.0.2/24  #设置接口的ipv4虚拟地址
  7. ip -6 addr add dev wg0 fd69::1/64   #设置接口的ipv6虚拟地址
  8. ip link set wg0 mtu 1400  #设置接口的mtu   可以不需要这个命令  
  9. ip link set dev wg0 up  #配置完成 使接口上线
  10. #傻瓜全自动生成配置的网站:www.wireguardconfig.com
复制代码

可以测试 ip link add dev wg0 type wireguard  创建网卡,如果没有内核模块是无法创建的





不过由于重启后padavan会恢复成原来没有安装的状态,所以需要上传至闪存里/etc/storage/wireguard.ko
然后在开机启动后执行里 添加安装命令才行insmod /etc/storage/wireguard.ko  这样才能每次开机自动安装好



hiboy的padavan固件没开源 没编译工具 所以hiboy的padavan不可用 得使用下面的wireguard-go 创建接口 不能用内核模块 或者用tunsafe了,wireguard好像是不分服务器和客户端的,自己可以说服务器也可以说客户端,tunsafe好像是tcp版的wireguard,那应该也是可以既是服务器也是客户端吧?
附padavan的界面版的wireguard服务器



----------------------------------------------------------------------------------------wireguard-go---------------------------------------------------------------------------------------------------------------------------

使用wireguard-go创建的wg0接口,必须 wireguard-go -f wg0 & 创建接口,不加-f 会出现丢包

今天发现 这位大佬的为红米 AX6000 路由器官方固件增加 wireguard server 并支持自启动 在没有wg模块的设备里可以使用
那没有wg模块的padavan应该也可以使用wireguard-go在没有wg内核模块支持的情况下先创建出接口 再用wg管理
  1. ip link del dev wg0    #删除接口
  2. ./wireguard-go -f wg0 &    #创建接口
  3. #如果需要显示日志 则命令是  LOG_LEVEL=verbose ./wireguard-go -f wg0 &     
  4. ./wg setconf wg0 ./wg0.conf  #绑定配置文件
  5. ip -4 addr add dev wg0 192.168.69.1/24   #设置ipv4地址
  6. ip -6 addr add dev wg0 fd69::1/64 #设置ipv6地址
  7. ip link set wg0 mtu 1400 #设置接口mtu 这个命令可以不要
  8. ip link set dev wg0 up  #使接口上线
复制代码

wireguard-go wg0创建tun网卡后, 可以使用 ip link show wg0 查看是否创建成功

那个帖子里的 70ff 贴出的 这个网站傻瓜全自动生成配置,所需要的公钥和私钥以及服务端和客户端所有文件,简直是神器。
网址是:www.wireguardconfig.com  


----------------------------------------------------------------------tunsafe------------------------------------------------------------------------------------
tunsafe也是一样 可以是服务器也可以是客户端


一端以 tcp v4 连接服务器



一端以tcp v6连接服务器



一端v4 一端v6



都是v4





分享个arm的  

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在路由器把配置文件转换成二维码 利用qrencode
/tmp/var/qrencode -k -t UTF8 -r /tmp/var/wg0.conf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
本帖最后由 liaohcai 于 2024-2-21 00:36 编辑

wireguard-go是在用户态实现了wireguard的功能

但体验不如原生的内核态好,丢包率极高!
还好@8267 大佬单独编译了wireguard内核模块,我在r3p试用了,按照@8267 大佬的步骤就能成功运行,在使用体验上跟OpenWrt原生无差别,无丢包率。

这是我的使用体验记录

我手机安装了个“WireGuard”app
路由器r3g安装了iperf3

为了达到最高速率,我模拟了使用环境:
手机-------[主路由]———[二级路由器cr660x]——[路由器r3g]——[AP模式的padavan(wireguard内核)]
                                                                  

开启后:手机→[主路由]→[二级路由器cr660x]→[路由器r3g]→[AP模式的padavan(wireguard内核)]
                                                                             iperf3↙

开启后数据流在padavan中作封包解包中转,才能回返到[路由器r3g]

关闭后:手机→[主路由]→[二级路由器cr660x]→[路由器r3g]
                                                                             iperf3

关闭后数据流直接到达[路由器r3g]iperf3


手机 开启[WireGuard隧道] padavan路由器(内核态)

ping:


iperf3:


表明了数据流是在经过padavan中作封包解包中转


手机 关闭[WireGuard隧道] padavan路由器(内核态)


接着,我顺便测试了VNT在这种环境下最高速率
手机安装了个VntApp(作者没时间去优化手机版,速率可能偏低)
手机 开启[VNT隧道] padavan路由器
iperf3:


表明了数据流是在经过padavan中作封包解包中转

再接着进行外网测速,结果

最后模拟下高带宽的使用场景


最后来个真实外网环境测速


_______________以下内容是之前的wireguard-go配置____________________


以下是我食用wireguard-go的记录:
————————————————————————-————
我使用的工具是MobaXterm
@8267 大佬提供的压缩包,下载解压到桌面上
1用MobaXterm登陆padavan后台,我喜欢在/tmp目录下新建目录wg/,把桌面上的解压文件拖到/tmp/wg目录中
2赋予wg和wiregurd运行权限


3生成公钥和私钥
  1. /tmp/wg/wg genkey | tee /tmp/privatekey | /tmp/wg/wg pubkey > /tmp/publickey
复制代码


私钥是要写在自己的配置文件上的,是给自己用的
公钥是要写在对端的配置文件上的,是给别人用的



4双击打开/tmp/wg/wg0.conf配置文件
  1. [Interface] # r3p
  2. PrivateKey = 私钥
  3. ListenPort = 51820

  4. [Peer] # k2
  5. PublicKey = 别人的公钥1
  6. AllowedIPs = 20.10.0.33/32,192.168.33.0/24  #对端路由器上的虚拟ip和网段
  7. #PersistentKeepalive = 25

  8. [Peer] # 手机
  9. PublicKey = 别人的公钥2
  10. AllowedIPs = 20.10.0.65/32 #对端手机上的虚拟ip
  11. #PersistentKeepalive = 25
复制代码
这是我服务端上的配置文件wg0.conf,其实是没有服务端和客户端之分的,但我喜欢把有公网ipv4称为服务端。

a在服务端下的配置文件wg0.conf中的[Peer]不用配置 Endpoint = 公网ipv4:端口
b但要配置PublicKey 和AllowedIPs
c可以配置多个[Peer]


客户端上的配置文件就简单多了
  1. [Interface]
  2. PrivateKey = 私钥

  3. [Peer]
  4. PublicKey = 服务端的公钥
  5. AllowedIPs = 0.0.0.0/0
  6. Endpoint = 公网ipv4:端口
  7. PersistentKeepalive = 25
复制代码

[Peer]下要有Endpoint;AllowedIPs 直接 = 0.0.0.0/0就行了

5运行起来
这是服务端r3p:
  1. ip link del dev wg0 # 先删除旧的
  2. /tmp/wg/wireguard-go wg0
  3. ip -4 addr add dev wg0 20.10.0.30/24 # 设置ip地址
  4. ip link set wg0 mtu 1300
  5. /tmp/wg/wg setconf wg0 /tmp/wg/wg0.conf
  6. ip link set dev wg0 up # 使其上线
复制代码
其中ip -4 addr add dev wg0 20.10.0.30/24的20.10.0.30/24要根据自己的需求修改

客户端也是运行这块代码
但要修改里面的ip修改为20.10.0.33/24

不一会儿,就能连接成功!
我两端的路由器padavn都是用ap模式
k2能ping通r3p
同样r3p能ping通k2
——————————————————————————————
我和@8267 大佬研究了一整天
我用r3p与他的k2p组网,本想测速wiregurd组网的速度
k2p能ping通r3p
但r3p不能ping通k2p
他的k2p是用路由模式
我的r3p是用AP模式
都关闭了防火墙
折腾了好久,还是无法解决。
不知道哪里出错!

整个过程,都是在@8267 大佬细心的指导





















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

只有公网 ipv6,但只有 udp 能通,可以用 wireguard 吗?  详情 回复 发表于 2024-2-10 01:34
应该是服务端不知道去客户端的路由; 因为客户端一般配置外网走wg  详情 回复 发表于 2024-2-9 18:12
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
大佬有心了,感谢长期分享

点评

我小白呀还不会用诶 专业的交给专业的人来 @liaohcai 大佬 有空出个配置教程 让大家学习一下  详情 回复 发表于 2024-2-7 18:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
Zodio 发表于 2024-2-7 17:03
大佬有心了,感谢长期分享

我小白呀还不会用诶  专业的交给专业的人来 @liaohcai  大佬 有空出个配置教程 让大家学习一下

点评

何必呢?少说几句吧,网络这么大,聚到一起也不容易!: 5.0
何必呢?少说几句吧,网络这么大,聚到一起也不容易!: 5
就你皮  发表于 2024-2-8 00:25
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

这两天也在用wg组网,服务端公网v4地址建了wg服务端。
客户端在异地没有公网,
之前也在padavan上试过wireguard-go
  1. wg-quick up wg0
复制代码
自动连接配置路由。第一次挺好,连上对端,内外网都可以,后来不知道怎么的一连上客户端就上不去网了。

今天在尝试https://mary.kevinmx.top/default/wireguard.html,5.10内核的集成了wg接口,内网打通了,客户端策略路由(支持域名黑白名单)走服务端上网还没搞定。
也请了解的大神指教。谢谢
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 8267 于 2024-4-27 17:50 编辑
bsdcpp 发表于 2024-2-8 20:41
这两天也在用wg组网,服务端公网v4地址建了wg服务端。
客户端在异地没有公网,
之前也在padavan上试过wireg ...

我的padavan是第一次可以连上ping通。后面就不通了。连服务器都ping不通了  

客户端连上就上不去网的话   服务器那边需要设置 iptables -t nat -A POSTROUTING -s 虚拟ip网段 -o 外网网卡名 -j MASQUERADE,然后客户端的服务器对应的AllowedIPs = 0.0.0.0/0, ::/0  也可以是服务器ip地址 AllowedIPs = 10.0.0.1/32   这样应该就可以了

点评

和你差不多,我也是第一次一切正常,然后后面不管重启还是怎么操作,死活不行,客户端一连上服务端,外网都上不去。  详情 回复 发表于 2024-2-8 21:58
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

8267 发表于 2024-2-8 20:55
我的padavan是第一次可以连上ping通。后面就不通了。连服务器都ping不通了  
...

和你差不多,我也是第一次一切正常,然后后面不管重启还是怎么操作,死活不行,客户端一连上服务端,外网都上不去。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 bsdcpp 于 2024-2-9 18:16 编辑
liaohcai 发表于 2024-2-8 00:35
首先需要公网ipv4
什么没有公网ipv4,那公网ipv6应该有吧。
什么公网ipv6也没有!

应该是服务端不知道去客户端的路由;
因为客户端一般配置外网走wg

在服务端添加到客户端子网段的静态路由就可以了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

liaohcai 发表于 2024-2-8 00:35
首先需要公网ipv4
什么没有公网ipv4,那公网ipv6应该有吧。
什么公网ipv6也没有!

只有公网 ipv6,但只有 udp 能通,可以用 wireguard 吗?

点评

能用 https://zhuanlan.zhihu.com/p/108365587  详情 回复 发表于 2024-2-10 03:11
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

hpx5027 发表于 2024-2-10 01:34
只有公网 ipv6,但只有 udp 能通,可以用 wireguard 吗?

能用
https://zhuanlan.zhihu.com/p/108365587
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我在r3p试用了,按照@8267 大佬的步骤就能成功运行,在使用体验上跟OpenWrt原生无差别,无丢包率
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报


vnt与wireguard的速率对比



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢长期分享,,,,,,,,,,,,,,,,
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-28 15:24

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表