×

linux多节点(多云多地)异地组网 EasyTier

hqy hqy 发表于2025-02-27 21:10:39 浏览3 评论0

抢沙发发表评论

git资源:https://github.com/EasyTier


需求目的:需要打通两段网段(192.168.0.0/24;192.168.1.0/24)的办公网到阿里云业务内云网段互通且业务可达


前提条件:云上47.106.x.x上已经通过EasyTier创建了一个10.21.x.x/24内网节点了,同时共享宣告了云上内网172.16.0.0/24,10.1.0.0/24
实验环境
图片
把资源下载下来放到自定义目录下
图片
easytier-core.exe --ipv4 10.21.x.x --peers udp://47.106.x.x:11x -n 192.168.0.0/24 --no-listener
参数说明--ipv4 10.21.x.x指定本地节点的 IPv4 地址为 10.21.x.x。这是该节点在网络中的唯一标识。--peers udp://47.106.x.x:11x指定对等节点(peer)的地址为47.106.x.x,使用 UDP 协议,端口号为 11x该节点会尝试连接到这个对等节点以加入网络。-n 192.168.0.0/24指定网络地址为 192.168.0.0/24这表示该节点将加入或管理的子网范围是 192.168.0.0 到 192.168.0.255--no-listener禁用本地监听功能。这意味着该节点不会监听来自其他节点的连接请求,但仍可以主动连接到指定的对等节点。如果需要监听别的节点的连接请求,完成组网则不需要--no-listener
会增加一个虚拟网卡,ip为指定的10.21.x.x来和云端内网10.21.x.x来组网
图片

echo '1'> /proc/sys/net/ipv4/ip_forward  临时开启ip转发(若不开启,则仅本机可通云主机47.106.x.x的内网网段172.16.x.x,192.168.0.0/24其他ip不可通),重启机器将失效永久生效方式:echo 'net.ipv4.ip_forward = 1' >>/etc/sysctl.confsysctl -p
图片
配置Linux系统中的iptables规则,主要用于网络地址转换(NAT)iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADEiptables -t nat -A POSTROUTING -o ens34 -j MASQUERADE
参数说明iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 这条命令在NAT表的POSTROUTING链中添加了一条规则。它针对所有通过tun0接口输出的数据包。tun0通常是一个虚拟的隧道接口,用于如VPN连接等场景。MASQUERADE动作意味着将数据包的源IP地址替换为发送该数据包的接口的IP地址(在这个情况下是tun0的IP地址)。这使得内部网络可以使用外部IP进行通信,从而隐藏了内部网络的实际结构。iptables -t nat -A POSTROUTING -o eth34 -j MASQUERADE 类似地,这条命令也是在NAT表的POSTROUTING链中添加规则,但它适用于通过eth0接口输出的数据包。eth0通常是物理网络接口,比如连接到局域网或直接到互联网的接口。这条规则允许内部网络中的设备使用eth0接口的IP地址与外部网络通信,同样起到隐藏内部网络结构的作用。这两条命令的主要用途是在具有多个网络接口的系统上执行源NAT(SNAT),以确保来自不同接口的流量能够正确路由和返回。这对于设置如路由器、防火墙或者具有复杂网络配置的服务器非常有用。需要注意的是,执行这些命令通常需要超级用户权限,并且在某些系统上可能需要安装额外的软件包来支持iptables功能。此外,如果系统重启后需要这些规则继续生效,还需要将它们保存并在启动时重新加载
图片
这时候已经成功组网了,本地192.168.0.0/24网段已经共享宣告到云段内网。通过各自自定义的内网ip10.21.x.x来组网转发对应数据包查看当前路由

图片
问题:发现办公网192.168.0.0/24网段任一IP与云网端172.16.x.x互ping通且业务正常但是办公网192.168.1.0/24网段任一IP与云网端172.16.x.x互ping通但业务不可达ping通但是nc -v 172.16.x.x a 任一业务端口都不通分析:easytier-core.exe --ipv4 10.21.x.x --peers udp://47.106.x.x:11x -n 192.168.0.0/24 --no-listener这儿只共享宣告了192.168.0.0/24网段不包含192.168.1.0/24,所以云端172.16.x.x上没有到192.168.1.0/24的路由,只有到192.168.0.0/24的路由,数据包无法返回修正:easytier-core.exe --ipv4 10.21.x.x --peers udp://47.106.x.x:11x -n 192.168.0.0/23 --no-listener192.168.0.0/23这就包含了192.168.0.1-192.168.1.255两个网段的所有IP查看新路由
图片
图片
root@proxy73:/home/admin/easytier# cat keep_easytier_alive.sh #!/bin/bash
sleep 5# 使用 awk 过滤掉包含 grep 的行count=$(ps -ef | grep easytier-core | grep -v grep | awk '{print $1}' | wc -l)echo "Count of easytier-core processes: $count"if [ "$count" -ge 1 ]; then    echo "easytier-core is already running."else    echo "Starting easytier-core..."    cd /home/admin/easytier/    if [ $? -ne 0 ]; then        echo "Failed to change directory to /home/admin/easytier/"        exit 1    fi    nohup ./easytier-core --ipv4 10.21.x.x --peers udp://47.106.x.x:11x -n 192.168.0.0/23 --no-listener    if [ $? -ne 0 ]; then        echo "Failed to start easytier-core"        exit 1    fifi




打赏

本文链接:https://www.kinber.cn/post/4970.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客