首页 > 系统相关 >CentOS8部署zerotier异地组网

CentOS8部署zerotier异地组网

时间:2024-07-04 18:30:22浏览次数:24  
标签:iptables IP 局域网 zerotier 转发 CentOS8 组网

CentOS8部署zerotier异地组网

CentOS8部署zerotier异地组网

一、前言

本文在此前研究部署FRP进行内网穿透,但FRP是基于公网服务器的流量转发,上下行的速率取决于公网服务器的带宽,并且每启用一个服务都需要开放服务器的一个端口,在易用性和安全性上都有着一定的问题。
为解决内网穿透需求,了解到zerotier这个工具,可以实现异地组网的功能。
在zerotier中,每一台设备都是一个客户端,客户端之间通过p2p连接。每台设备上安装一个虚拟网卡,实现虚拟局域网,这样处于公网中的机器也能够像在局域网中一样互相访问。

二、部署

  1. 安装zerotier
    Linux端的一键安装命令:
    curl -s https://install.zerotier.com | sudo bash
    此外,卸载命令:

    dpkg -P zerotier-one
    rm -rf /var/lib/zerotier-one/
    
  2. 开启zerotier
    zerotier-one -d
    若出现

    zerotier-one: fatal error: cannot bind to local control interface port 9993

    则说明端口9993被占用,接下来查看端口占用信息。
    netstat -lp | grep 9993
    若是自己占用了,那么结束其进程:
    killall -9 zerotier-one
    反复运行,直到出现提示进程已全都结束。
    若提示无killall,安装:
    yum install psmisc
    再次启动zerotier。
    若zerotier还是不能启动,则开启zerotier开机自启:
    systemctl enable zerotier-one.service
    再次重启。

  3. zerotier加入网络
    zerotier-cli join 需要加入的网络ID
    当出现200 join OK时,说明加入成功。

  4. 开启IP转发
    编辑/etc/sysctl.conf文件
    输入一下两行配置开启IP转发:

    net.ipv4.ip_forward=1
    net.ipv6.conf.all.forwarding=1
    

    解释:
    net.ipv4.ip_forwardnet.ipv6.conf.all.forwarding选项同理)该选项设置为 1 时,表示启用了IP转发功能。IP转发是指网络设备在接收到一个IP数据包后,根据目标IP地址对该数据包进行决策,并选择合适的网络接口将其转发出去。
    当配置的值为 1 时,系统将启用IP转发功能,允许将网络流量从一个接口转发到另一个接口,使得不同网络之间能够进行路由通信。这在充当网络路由器或防火墙的系统中非常常见。
    然而,需要注意的是,启用IP转发功能可能会对系统的安全性产生影响。因此,在应用中启用此功能之前,应仔细评估网络安全风险,并采取适当的安全措施来保护系统和网络。
    请谨慎使用IP转发功能并确保采取了适当的网络安全措施。

  5. zerotier配置路由表
    如图所示,格式为:
    内网网段 via 跳板机所分配地址

zerotier路由表.png

  1. 跳板机设置路由表
    输入ip addr
    记录下连接局域网的物理网卡和zerotier的虚拟网卡(一般以zt开头)
    将网卡名称导出为环境变量名:

    PHY_IFACE=物理网卡名称
    ZT_IFACE=zerotier的虚拟网卡名称
    

    更新路由表:

    iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE  
    iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT  
    iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT  
    iptables-save  
    

    持久化路由表:

    mkdir -p /etc/sysconfig/  
    sh -c "iptables-save > /etc/sysconfig/iptables"  
    

    /etc/rc.local文件最后添加一行:

    vi /etc/rc.local  
    /sbin/iptables-restore < /etc/sysconfig/iptables  
    

    理论上在经过上述设置后开启zerotier则可以实现在公网通过跳板机访问局域网内设备,但在本文实践后发现只能访问跳板机的局域网内IP地址,并不能访问其余局域网内设备。不知是跳板机的路由表设置还是zerotier的路由表设置或是局域网内设备防火墙问题,需要进一步排查。

  2. 后续
    至此已经基本能够通过zerotier实现公内网下无缝访问单一设备,已经基本满足本文此前的需求,但还是没有实现公网无缝组网的功能。

三、展望

  1. 通过局域网内跳板机设置IP转发访问其他局域网内设备。
  2. 基于openwrt的软路由安装zerotier添加异地局域网实现组网。

参考

  1. 部署zerotier客户端(Linux版本)适用于CentOS、Ubuntu等系统
  2. ZeroTier 异地组网
  3. 异地旁路组网:zerotier

标签:iptables,IP,局域网,zerotier,转发,CentOS8,组网
From: https://www.cnblogs.com/zbyisgudi/p/18284430

相关文章

  • 【实战经验】基于 centos9 安装和部署SoftEther Server 搭建异地组网
    场景描述: 本人长期在远程办公,需要在公司连接家里电脑办公,但是家里有公网IP,并可进行内网穿透,但是如果直接把设备的远程端口暴露在公网上想着不安全,已经被端口扫描了好几次,现在休息在家想着在家里服务器上搭建一个softetherserver,通过暴露1194端口实现,专用网络连接,再从专......
  • 计算机网络与现代通信组网实战指南
    计算机网络与现代通信组网实战指南一、引言:信息技术的血脉——网络互联二、技术概述:网络基础与现代通信架构技术定义核心特性与优势技术示例:TCP/IP协议套件三、技术细节:深入组网技术原理物理层与数据链路层网络层与传输层难点分析四、实战应用:企业局域网部署案例应用......
  • SD-WAN跨国组网的效果怎么样?
    随着全球化进程的推进,企业在各国和地区展开业务已经成为常态。而跨国组网则能够连接企业的不同分支机构和合作伙伴,实现全球范围内的协作和信息共享。这有助于提升企业的运营效率、业务协同和决策能力。那么,如何实现跨国组网呢?当前,许多企业选择SD-WAN,这是一种成本效益高、组网......
  • .NET借助虚拟网卡实现一个简单异地组网
    由于工作需要,经常需要远程客户的服务器,但是并不是所有服务器都能开外网端口,使用向日葵等软件终究还是不太方便,于是找了很多工具,包括zerotier等,但是由于服务器在国外等有时候还不同,于是开始自己想办法研究一个属于自己的组网工具,最后找到snltty大佬的 https://github.com/snltt......
  • .NET借助虚拟网卡实现一个简单异地组网工具
    由于工作需要,经常需要远程客户的服务器,但是并不是所有服务器都能开外网端口,使用向日葵等软件终究还是不太方便,于是找了很多工具,包括zerotier等,但是由于服务器在国外等有时候还不同,于是开始自己想办法研究一个属于自己的组网工具,最后找到snltty大佬的 https://github.com/snltty......
  • AX6000 Zerotier 开机自启 & 持久化虚拟 MAC 地址
    步骤:当前先配置好Zerotier,保证可以拿到IP地址;将整个Zerotier复制到/data下;cp-a/var/lib/zerotier-one/data/zerotier删掉/data/zerotier/下的zerotier-one.pid文件在/data/auto_ssh/auto_ssh.sh末尾添加如下内容:cp-a/data/zerotier/var/lib/zeroti......
  • 高级网工都在用的组网方案,你不会还不知道吧?
    扎心说明   随着互联网的快速发展,还是有很多人都摸不清网络工程师是做什么的?   甚至在不太了解本行业的人眼里,网工都是修修电脑、网断了重启下光猫、保修下运营商、做个网线用个Hub组个小型的局域网等等,真是把网络工程师形容的参差不齐!然后了,网络工程师也分不同阶......
  • 虚拟机CentOS8无法连接外网以及Xshell无法连接虚拟机
    自己调试时出现的问题,记录一下目录1.Linux虚拟机连接不上网络1.1问题内容 1.2解决方法1.2.1VMWare配置1.2.2虚拟机设置1.2.3虚拟机系统文件配置2.Xshell连接不上虚拟机2.1问题内容2.2解决方法2.2.1防火墙设置2.2.2网络连接设置1.Linux虚拟机连接不上......
  • Centos8安装k8s1.23.9
    离线安装一、环境准备卸载podman关闭交换区禁用selinux关闭防火墙依赖包安装系统参数优化配置本地dockeryum源一:centos8默认安装podmanbuildah需要卸载sudoyumerasepodmanbuildah-y二:节点关闭swap分区swapoff-a&&sysctl-wvm.swappiness=0sudosed-i'......
  • centos8 防火墙管理命令
    在此记录开/关、启/禁用、重启、查看、开/关/查端口命令。1、开启防火墙systemctlstartfirewalld无其他提示表示开启成功2、关闭防火墙systemctlstopfirewalld无其他提示表示开启成功3、启用防火墙systemctlenablefirewalld4、禁用防火墙......