米拉一频道 - 异地组网
type: channel
link: https://www.milaone.com/category/%E5%BC%82%E5%9C%B0%E7%BB%84%E7%BD%91/
items: 零信任网络之-Zerotier使用涉及的常用命令及子网路由脚本 ｜095
items: 零信任网络之-Tailscale使用涉及的常用命令 ｜094

零信任网络之-Zerotier使用涉及的常用命令及子网路由脚本 ｜095
type: item
date: 2025-05-18T10:20:00+08:00
description: 视频地址：https://youtu.be/PNaF6fs2FlM节点加入网络命令、然后面板中勾选验证 zerotier-cli join Network_ID 子网路由 #通过ip add sh或ip a命令查看zerotier接口以及本地物理接口 #把相应的接口名称赋值给变量 PHYSICAL_IFACE=<物理网卡接口名字> ZEROTIER_IFACE=<zerotier接口名字> #开启内核转发 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p #添加防火墙转发规则 iptables -t nat -A POSTROUTING -o $PHYSICAL_IFACE -j MASQUERADE iptables -A FORWARD -i $PHYSICAL_IFACE -o $ZEROTIER_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i $ZEROTIER_IFACE -o $PHYSICAL_IFACE -j ACCEPT iptables-save #保存规则，持久化，重启后仍有效 sudo apt install iptables-persistent -y sudo iptables-save > /etc/iptables/rules.v4子网路由落地机一键脚本 #!/bin/bash # 脚本功能：自动获取物理网卡和 ZeroTier 网卡接口名称，并设置 iptables 规则以支持 NAT 和转发 # 检查是否以 root 权限运行 if [ "$EUID" -ne 0 ]; then echo "此脚本需要以 root 权限运行，请使用 sudo 执行" exit 1 fi # 自动获取物理网卡接口名称 # 假设物理网卡是系统中主要的以太网接口（非 lo 和虚拟接口） PHYSICAL_IFACE=$(ip link show | grep -E '^[0-9]+: (en|eth|wlan)[0-9a-z]*:' | awk '{print $2}' | sed 's/://' | head -n 1) if [ -z "$PHYSICAL_IFACE" ]; then echo "错误：未找到物理网卡接口，请检查系统网络配置" exit 1 fi echo "检测到的物理网卡接口: $PHYSICAL_IFACE" # 自动获取 ZeroTier 网卡接口名称 # ZeroTier 接口通常以 zt 开头 ZEROTIER_IFACE=$(ip link show | grep -E '^[0-9]+: zt[a-z0-9]+:' | awk '{print $2}' | sed 's/://' | head -n 1) if [ -z "$ZEROTIER_IFACE" ]; then echo "错误：未找到 ZeroTier 网卡接口，请确保 ZeroTier 已安装并加入网络" exit 1 fi echo "检测到的 ZeroTier 网卡接口: $ZEROTIER_IFACE" # 启用内核转发 echo "启用内核转发..." sysctl -w net.ipv4.ip_forward=1 # 确保内核转发在重启后依然生效 if ! grep -q "net.ipv4.ip_forward=1" /etc/sysctl.conf; then echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf fi echo "内核转发已启用并设置为开机生效" # 设置 iptables 规则 echo "设置 iptables 规则..." iptables -t nat -A POSTROUTING -o "$PHYSICAL_IFACE" -j MASQUERADE iptables -A FORWARD -i "$PHYSICAL_IFACE" -o "$ZEROTIER_IFACE" -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i "$ZEROTIER_IFACE" -o "$PHYSICAL_IFACE" -j ACCEPT # 保存 iptables 规则 echo "保存 iptables 规则..." iptables-save > /etc/iptables/rules.v4 # 安装 iptables-persistent 以确保规则在重…

零信任网络之-Tailscale使用涉及的常用命令 ｜094
type: item
date: 2025-05-14T10:45:00+08:00
description: 视频地址：https://youtu.be/N6Fcwyz9TKs加入节点 节点加入 tailscale up --auth-key=tskey-auth-ky1Lj4iNWo11CNTRL-Ls4d6dQCZrN6djhfnFEsNqXNpu1XcHrc 子网路由 #子网落地节点，进行子网声明 tailscale up --advertise-routes=192.168.0.0/24,192.168.1.0/24 #发起访问节点 tailscale up --accept-routes #开启内核数据转发 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p 流量出口 #出口节点进行出口节点声明 sudo tailscale up --advertise-exit-node #发起出口访问节点运行出口指定，并且排除局域网 sudo tailscale set --exit-node=<exit-node-ip> --exit-node-allow-lan-access=true #在出口节点上开启内核的数据转发 echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p ACL相关语法 #ACL部分在使用前要把目前允许所有的规则注释掉，使用“//”注释掉 例如 // {"action": "accept","src":["*"],"dst":["*:*"],}, 根据需要进行 {"action": "accept","src":["*"],"dst":["*:*"],}, #这里的src、dst可以是 groups、tag、hosts、IP #如果使用groups、tag 和 hosts则需要在Access controls中提前声明 例如 #tag在使用前要进行所属用户声明 "tagOwners": {"tag:ubuntu-srv": ["dino.milaone@gmail.com"],}, #groups在使用前也要进行所属用户声明 "groups": { "group:example": ["alice@example.com", "bob@example.com"],},