CentOS 7 安装n2n v3.0.0 Stable

Linux, N2N, 折腾 2021/11/13

感谢各位大佬的努力,让N2N更加好用 :可爱:

https://github.com/ntop/n2n/releases/tag/3.0

记录一下安装方法

以 CentOS 7 为例

RPM安装

yum install libzstd -y
#国内备份链接
#wget https://file.bugxia.com/s/yEoXNaZPE852N6p/download
wget https://github.com/ntop/n2n/releases/download/3.0/n2n-3.0.0-1038.x86_64.rpm
rpm -i n2n-3.0.0-1038.x86_64.rpm

编译安装

yum install autoconf automake libtool git kernel-headers -y
#国内备份链接
#wget https://file.bugxia.com/s/TtD5mqW6Z47ioCA/download
wget https://github.com/ntop/n2n/archive/refs/tags/3.0.tar.gz
tar xzvf 3.0.tar.gz
cd n2n-3.0
./autogen.sh
./configure
make && make install
本文标签:


23 条评论

  • mige 评论于 回复

    提交 自动部署脚本: #!/bin/bash

    # 读取用户输入的虚拟网名称,并存储在变量community中
    read -p “请输入虚拟网名称:” community

    # 读取用户输入的本机IP地址,并存储在变量name中
    read -p “请输入本机要使用的ip地址:” name

    # 读取用户输入的服务器地址及端口,并存储在变量host中
    read -p “请输入服务器地址及端口:” host

    # 选择N2N版本
    echo “可选版本: 3.0-stable,2.8-stable,2.6-stable,2.4-stable”
    read -p “请选择N2N版本:” n2n_version

    # 创建n2n启动脚本
    echo “sudo /usr/local/sbin/edge -a $name -c $community -l $host” > /usr/sbin/n2n

    # 创建停止n2n的脚本
    echo “sudo killall -9 edge” > /usr/sbin/noff

    # 使脚本文件可执行
    chmod +x /usr/sbin/n2n
    chmod +x /usr/sbin/noff

    echo “拷贝n2n成功!”

    # 下载并解压N2N源代码
    if [ ! -d “n2n” ]; then
    git clone https://github.com/ntop/n2n.git
    fi

    # 进入n2n源代码目录
    cd n2n || { echo “n2n源代码目录不存在,请检查文件结构。”; exit 1; }

    # 切换到选择的N2N版本分支
    case $n2n_version in
    “3.0-stable”)
    git checkout 3.0-stable
    ;;
    “2.8-stable”)
    git checkout 2.8-stable
    ;;
    “2.6-stable”)
    git checkout 2.6-stable
    ;;
    “2.4-stable”)
    git checkout 2.4-stable
    ;;
    *)
    echo “无效的N2N版本选择,请选择3.0-stable,2.8-stable,2.6-stable,2.4-stable。”
    exit 1
    ;;
    esac

    # 安装必要的依赖
    if command -v apt-get >/dev/null; then
    sudo apt-get update
    sudo apt-get install -y libssl-dev cmake net-tools gcc g++
    elif command -v yum >/dev/null; then
    sudo yum install -y openssl-devel cmake net-tools gcc gcc-c++
    else
    echo “未检测到apt-get或yum,请确保您的系统已安装这些包管理器。”
    exit 1
    fi

    # 编译安装n2n
    mkdir -p build
    cd build || { echo “无法进入build目录,请检查文件结构。”; exit 1; }
    cmake ..
    make && sudo make install

    # 检查edge二进制文件是否存在
    if [ ! -f /usr/local/sbin/edge ]; then
    echo “edge 二进制文件未找到,请检查编译安装是否成功。”
    exit 1
    fi

    # 创建n2n配置文件
    sudo mkdir -p /etc/n2n
    sudo tee /etc/n2n/edge.conf > /dev/null < /var/log/n2n.log 2>&1 &

    echo “n2n安装成功,正在检查连接状态,请等待”

    # 等待5秒
    sleep 5

    # 使用用户输入的服务器地址进行ping测试
    if ! ping -Q 2 -c 2 -t 64 $(echo $host | cut -d: -f1); then
    echo “`date ‘+%Y-%m-%d %T’` n2n 连接服务器失败 !”
    else
    echo “`date ‘+%Y-%m-%d %T’` n2n 连接服务器成功 !”
    fi

    # 检查n2n接口是否UP
    if ! ifconfig | grep -q “edge0”; then
    echo “n2n接口未启动,请检查n2n配置。”
    exit 1
    fi

    # 检查路由表
    # 获取用户输入的IP地址的网络部分
    network=$(echo $name | cut -d. -f1-3).0/24
    if ! ip route | grep -q “$network dev edge0”; then
    sudo ip route add $network dev edge0
    fi

    # 检查防火墙设置
    sudo ufw allow $(echo $host | cut -d: -f2)/udp

    # 检查n2n的MTU设置
    sudo ifconfig edge0 mtu 1400

    # 重新启动n2n服务
    sudo killall -9 edge
    sudo /usr/sbin/n2n &

    # 检查网络接口状态
    ifconfig edge0

    # 检查IP地址分配
    if ! ifconfig edge0 | grep -q “$name”; then
    echo “n2n接口未分配正确的IP地址,请检查n2n配置。”
    exit 1
    fi

    # 检查ARP表
    arp -a

    # 检查n2n的社区支持
    echo “如果以上方法都无效,可以在n2n的社区或者论坛寻求帮助,提供详细的配置和日志信息。”

    # 检查网络拓扑
    echo “确保网络拓扑中没有防火墙、路由器或其他设备阻止n2n的流量。”

    echo “部署脚本执行完毕。”

    # 检查系统日志(限制输出时间)
    echo “正在检查系统日志,请等待…”
    sudo tail -n 50 /var/log/syslog

  • datou 评论于 回复

    错误: 无法验证 file.bugxia.com 的由 “/C=US/O=Let’s Encrypt/CN=R3” 颁发的证书:
    颁发的证书已经过期。

  • 评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)