OpenWRT 22.3.0 编译N2N
来源:本站添加时间:2022-05-02 点击:
现有两台斐讯K2G(联发科MIPS架构),已刷入Openwrt 22.3.0系统,需要安装n2n 测试基于p2p的vpn。最老的版本系统安装源自带n2n包,通过opkg install n2n即可安装,新版本openwrt已经没有n2n包了,需要手动编译。编译有两种方式 本地编译(在openwrt系统中编译,需要在openwrt中安装开发包,这个对存储空间要求大,k2g路由器只有8M的flash) ,交叉编译(在X86平台上通过SDK包编译软件后上传至Openwrt系统中进行安装)
先提供下载地址
openwrt 官网 https://www.openwrt.org
openwrt 官网编译指南 https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem
清华大学镜像源 https://mirrors.tuna.tsinghua.edu.cn/
n2n github 官网仓库 https://github.com/ntop/n2n/
n2n-2.8 官方编译说明https://github.com/ntop/n2n/tree/2.8-stable/packages/openwrt
1.到 openwrt官网通过路由器的型号进行搜索下载 sdk

1.2下个页面输入设备型号,选择可用系统版本

1.3通过下面这个链接下载 sdk包

1.4复制下面这个链接,下载到编译平台(Centos 8 Stream)

如果下载速度慢,就到清华大学镜像源下载,到相同的目录下载防止下载错误
1.6 在centos 8 /root目录下 解压 该sdk包
#tar -xf openwrt-sdk*
2.1安装Cenotos平台基本编译工具,ubuntu也有相应的说明
参照:https://openwrt.org/docs/guide-developer/toolchain/install-buildsystem
执行以下命令
sudo dnf --setopt install_weak_deps=False --skip-broken install
bash-completion bzip2 gcc gcc-c++ git make ncurses-devel patch
rsync tar unzip wget which diffutils python2 python3 perl-base
perl-Data-Dumper perl-File-Compare perl-File-Copy perl-FindBin
perl-Thread-Queue
2.2 sdk目录下 更新feed,下载n2n 并且拷贝openwrt平台源码到 sdk目录下
./scripts/feeds update -a
git clone https://github.com/ntop/n2n n2n
cp -r n2n/packages/openwrt package/n2n
2.3 通过make命令选择需要编译的软件包,并保存(M代表选择,package下有n2n文件夹,系统默认就是选择的)
make menuconfig # select Network -> VPN -> n2n-edge and n2n-supernode
光标移至Save 回车保存
2.4正式编译 V=s 表示多线程编译
make package/n2n/compile V=s
2.5 编译结果无错误说明编译成功,即可搜到生成的ipk文件
find . -name 'n2n*ipk'
2.6把搜到的n2n ipk包复制到目标系统进行安装
2.7安装n2n ipk时可能提示以下错误,是因为缺少依赖包
Unknown package 'n2n-edge'.
Collected errors:
* pkg_hash_check_unresolved: cannot find dependency kmod-tun for n2n-edge
* pkg_hash_check_unresolved: cannot find dependency resolveip for n2n-edge
* pkg_hash_check_unresolved: cannot find dependency libopenssl for n2n-edge
* pkg_hash_fetch_best_installation_candidate: Packages for n2n-edge found, but incompatible with the architectures configured
* opkg_install_cmd: Cannot install package n2n-edge.
解决办法:
opkg update #如果这一步提示错误,反复尝试,或者切换国内镜像源后重试
opkg install kmod-tun
opkg install resolveip
opkg install libopenssl
2.8 openwrt平台安装好 n2n后,配置文件再/etc/n2n/edge.conf 。启动方式 /etc/init.d/edge start
编译问题FAQ:
1.Centos8上下载资源文件太慢,解放方法:通过socks5全局代理或者vpn
2.编译失败,删除sdk目录,重新解压再操作
3. 斐讯K2G使用22.3.0版本容易出现重启后配置丢失,lan口地址获取不到ip等
4.高版本sdk编译的ipk包,可以在较近的低版本中使用,如22.3编译的19.7版本实际测试可用