CentOS 7 安装n2n v3.0.0 Stable
感谢各位大佬的努力,让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 条评论
提交 自动部署脚本: #!/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
错误: 无法验证 file.bugxia.com 的由 “/C=US/O=Let’s Encrypt/CN=R3” 颁发的证书,遇到该错误请执行如下命令!!!!
wget –no-check-certificate https://file.bugxia.com/s/yEoXNaZPE852N6p/download
错误: 无法验证 file.bugxia.com 的由 “/C=US/O=Let’s Encrypt/CN=R3” 颁发的证书:
颁发的证书已经过期。