安装Tailscale实现远程组网详细教程 | OpenFi 5Pro远程组网教程(二)

接上文:《Tailscale组网教程 | OpenFi 5Pro远程组网教程(一)》说明了Tailscale的简介和基本组网安装教程,这篇文章会以更详细的方式讲解安装过程和配置过程,让小白也能看的懂。实战过程使用OpenFi 5Pro演示,并展示几个经典的应用场景和配置。


一、准备工作

  • 将路由器连接到互联网,保证网络畅通
  • 开放ssh权限(默认已开启)
    在这里插入图片描述
    在这里插入图片描述

二、安装步骤

1、连接终端

  • 通过网线或WiFi将电脑连接到OpenFi 5Pro
  • 打开windows终端,执行下面的命令通过ssh连接到路由器:
ssh root@192.168.21.1
#IP地址为OpenFI默认地址,如果你修改了LANIP则改为你的实际IP

执行后输入密码(密码不可见,直接输入回车即可),登录进入后的效果:

PS C:\Users\Brukamen> ssh root@192.168.21.1
root@192.168.21.1's password:


BusyBox v1.36.0 (2024-08-17 05:42:22 UTC) built-in shell (ash)                                        

     _________
    /        /\      _    ___ ___  ___
   /  LE    /  \    | |  | __|   \| __|
  /    DE  /    \   | |__| _|| |) | _|
 /________/  LE  \  |____|___|___/|___|
 \        \   DE /
  \    LE  \    /  -------------------------------------------
   \  DE    \  /    OpenWrt SNAPSHOT, r6854-2ffed5362
    \________\/    -------------------------------------------

root@OpenFi:~#

如果提示下面的提示,直接输入yes然后回车即可正常进入:

PS C:\Users\Brukamen> ssh root@192.168.21.1
The authenticity of host '192.168.21.1 (192.168.21.1)' can't be established.              
ED25519 key fingerprint is SHA256:Np3uWpFk/adbmhMXRc1uMn9SK7rIJgM4DwQ/JWfPsVI.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

2、使用脚本一键部署

  • 创建脚本文件,依次执行下列命令:
cd /tmp
touch myscript.sh
chmod +x myscript.sh
vi myscript.sh
  • 然后会进入vi编辑器:
~
~
~
~
~
~
~
~
~
~
- myscript.sh 1/1 100%
  • 此时按下键盘上的i键,进入编辑模式,然后复制以下代码粘贴到编辑器里:
#!/bin/sh

API_URL="https://api.github.com/repos/adyanth/openwrt-tailscale-enabler/releases/latest"                          

DOWNLOAD_URL=$(curl -s $API_URL | \
  grep '"browser_download_url"' | \
  head -n 1 | \
  sed 's/.*"\(https[^"]*\)".*/\1/')

if [ -z "$DOWNLOAD_URL" ]; then
  echo "下载链接未找到?请检查$API_URL是否访问正常!EN:Download link not found? Please check if $API_URL is accessible!"
  exit 1
fi

echo "下载链接:$DOWNLOAD_URL EN:Download URL: $DOWNLOAD_URL"

FILENAME="openwrt-tailscale-enabler-latest.tgz"

echo "正在下载文件... EN:Downloading file..."
cd /tmp
curl -L -o $FILENAME $DOWNLOAD_URL

if [ ! -f "$FILENAME" ]; then
  echo "下载失败! EN:Download failed!"
  exit 1
else
  tar x -zvC / -f $FILENAME
  if  [ $? -eq 0 ]; then
    echo "安装成功! EN:Install successful!"
    rm -f $FILENAME
    echo "安装包已清理! EN:Package has been cleaned up!"
  else
    echo "安装失败! EN:Install failed!"
    exit 1
  fi
fi

if ! opkg list-installed | grep -q "libustream-openssl" || \
   ! opkg list-installed | grep -q "ca-bundle" || \
   ! opkg list-installed | grep -q "kmod-tun"; then
  echo "缺少依赖! EN:Missing dependencies!"
  echo "尝试安装依赖... EN:Installing dependencies..."
  opkg update
  opkg install --force-overwrite libustream-openssl ca-bundle kmod-tun
else
  echo "依赖已安装! EN:Dependencies already installed!"
fi

cat << EOF
接下来,你可以执行:
  1. /etc/init.d/tailscale start 来启动 Tailscale 并连接到 Tailscale 网络。
  2.tailscale up --accept-dns=false --advertise-routes=10.0.0.0(您的局域网网段)/24 设置你的路由。
  然后,你会看到命令行返回一个链接类似于https://login.tailscale.com/a/XXXXXXXXXX,复制这个链接并在浏览器中打开,登录 Tailscale 并连接到你的设备。
  当你完成登录和设备添加后,你就可以使用 Tailscale 进行远程组网了。可以使用ping命令来测试是否成功连接 。
=================================

EOF

read -n1 -r -p "按任意键退出..." key
  • 按下esc键结束编辑,然后输入:wq!并回车退出vi编辑器,回到终端后执行脚本:
sh ./myscript.sh

成功执行后会看到以下输出:

root@OpenFi:/tmp# sh ./myscript.sh
下载链接:https://github.com/adyanth/openwrt-tailscale-enabler/releases/download/v1.60.0-e428948-autoupdate/openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz EN:Download URL: https://github.com/adyanth/openwrt-tailscale-enabler/releases/download/v1.60.0-e428948-autoupdate/openwrt-tailscale-enabler-v1.60.0-e428948-autoupdate.tgz                                          
正在下载文件... EN:Downloading file...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0
100  1154  100  1154    0     0    383      0  0:00:03  0:00:03 --:--:--  6375
usr/
usr/bin/
usr/bin/tailscale
usr/bin/tailscaled
etc/
etc/init.d/
etc/init.d/tailscale
安装成功! EN:Install successful!
安装包已清理! EN:Package has been cleaned up!
依赖已安装! EN:Dependencies already installed!
接下来,你可以执行:
  1. /etc/init.d/tailscale start 来启动 Tailscale 并连接到 Tailscale 网络。
  2.tailscale up --accept-dns=false --advertise-routes=10.0.0.0(您的局域网网段)/24 设置你的路由。
  然后,你会看到命令行返回一个链接类似于https://login.tailscale.com/a/XXXXXXXXXX,复制这个链接并在浏览器中打开,登录 Tailscale 并连接到你的设备。
  当你完成登录和设备添加后,你就可以使用 Tailscale 进行远程组网了。可以使用ping命令来测试是否成功连接 。
=================================

3、配置Tailscale

  • 继续在终端执行已下命令:
/etc/init.d/tailscale start                                                         
tailscale up  --accept-dns=false --advertise-routes=192.168.21.0/24
  • 这时会开始下载程序文件并输出登录网址:
root@OpenFi:/tmp# tailscale up  --accept-dns=false --advertise-routes=192.168.21.0/24                                                
--2024-12-14 02:03:52--  https://pkgs.tailscale.com/stable/
Resolving pkgs.tailscale.com... 198.18.0.204
Connecting to pkgs.tailscale.com|198.18.0.204|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: 'STDOUT'

-                                 [  <=>                                             ]  42.46K   110KB/s    in 0.4s

2024-12-14 02:03:55 (110 KB/s) - written to stdout [43479]

Downloading Tailscale 1.78.1_mipsle ..
--2024-12-14 02:03:55--  https://pkgs.tailscale.com/stable/tailscale_1.78.1_mipsle.tgz
Resolving pkgs.tailscale.com... 198.18.0.204
Connecting to pkgs.tailscale.com|198.18.0.204|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://dl.tailscale.com/stable/tailscale_1.78.1_mipsle.tgz [following]
--2024-12-14 02:03:58--  https://dl.tailscale.com/stable/tailscale_1.78.1_mipsle.tgz
Resolving dl.tailscale.com... 198.18.2.16
Connecting to dl.tailscale.com|198.18.2.16|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 25932242 (25M) [application/x-compressed-tar]
Saving to: 'STDOUT'

-                              62%[==============================>                   ]  15.42M  3.35MB/s    eta 4s     tailscale_1.78.1_mipsle/tailscale
-                             100%[=================================================>]  24.73M  2.89MB/s    in 8.8s

2024-12-14 02:04:08 (2.82 MB/s) - written to stdout [25932242/25932242]

Done!

To authenticate, visit:

        https://login.tailscale.com/a/XXXXXXXXXX #这里

|
  • https://login.tailscale.com/a/XXXXXXXXXX复制下来在浏览器打开并注册/登录:
    在这里插入图片描述
  • 登陆完成后点击连接设备:
    在这里插入图片描述
  • 接下来等待进入后台设置密钥不过期,并开放子网IP:

在这里插入图片描述

  • 选择并保存设置:
    在这里插入图片描述
    如果打开编辑路由没有显示这个选项,重新执行再进入管理界面刷新即可:
tailscale up  --accept-dns=false --advertise-routes=192.168.21.0/24    

4、设置开机自启

  • 执行
/etc/init.d/tailscale enable                      
  • 验证
ls /etc/rc.d/S*tailscale*
成功示例:
root@OpenFi:/tmp# ls /etc/rc.d/S*tailscale*  
/etc/rc.d/S99tailscale #成功添加开机自启

5、组网成功验证

  • 配置完成后,我们通过电脑直接使用ping命令访问远程设备OpenFi以及连接到OpenFi的其他设备:

  • 首先确保OpenFi和电脑的客户端都在线:
    电脑端在线示意图
    进入管理后台:https://login.tailscale.com/admin/machines
    在这里插入图片描述

  • 接下来通过tracert 8.8.8.8命令结果可以看到我们和OpenFi不在一个网段,数据包也没有经过OpenFi路由:
    在这里插入图片描述
    接下来我们直接通过ping访问OpenFi 5Pro:
    在这里插入图片描述

  • 可以看到第一次ping的时候tailscale正在寻找最近的节点,延迟稍高。接下来访问OpenFi下的设备(以安卓手机为例):

root@OpenFi:~# cat /tmp/dhcp.leases                            
1734397378 ba:c1:3e:e9:db:e1 192.168.21.168 NX769J 01:ba:c1:3e:e9:db:e1
#获取到手机的IP为:192.168.21.168

通过ping命令和tracert验证了从电脑到openfi下的安卓设备的通讯是正常的:
在这里插入图片描述
完成验证!

  • 通过web访问OpenFi的后台试试:

在这里插入图片描述
成功进入!接下来就可以爽歪歪的进行你想要的操作咯。

提示:如果需要长时间访问同一个设备,可以设置静态IP,这样就可以使用固定的IP访问设备了!


6、其他功能说明

具体请先查看官方的文档再进行操作,不然可能会导致未知问题!!!

启动 Tailscale(连接到网络)
tailscale up  
  • 该命令将启动 Tailscale 并连接到你的 Tailnet。如果尚未登录,将会提示你登录。
停止 Tailscale(断开连接)
tailscale down
  • 停止 Tailscale 服务并断开与 Tailnet 的连接,不要在远程设备登录ssh的情况下使用这个命令,否则会失去连接。
登录账户
tailscale login
  • 登录到 Tailscale 账户。如果之前未登录,这也是 up 命令的隐式步骤。
退出登录
tailscale logout
  • 从当前账户退出,并使当前节点密钥失效。
切换账户
tailscale switch
  • 在多个 Tailscale 账户之间切换。
查看当前连接状态
tailscale status
  • 显示当前 tailscaled 的状态及其连接信息。
检查本地网络状况
tailscale netcheck        
  • 分析本地网络条件,例如防火墙、NAT 类型等。
显示 Tailscale IP 地址
tailscale ip
  • 查看当前设备的 Tailscale 分配 IP 地址。
测试连接到 Tailnet 内的其他设备
tailscale ping <hostname|ip>
  • 测试在 Tailscale 层的连通性,并查看数据的路由方式。
测试 DNS 转发器
tailscale dns  
  • 检查内部 DNS 转发器的配置和工作状态。
查看日志和诊断数据
tailscale bugreport
  • 生成一个可分享的标识符,用于向 Tailscale 支持团队报告问题。
管理出口节点

查看 Tailnet 中可用的出口节点:

tailscale exit-node
文件传输

发送文件到 Tailnet 内的其他设备:

tailscale file send <destination>

接收文件:

tailscale file receive  
获取 TLS 证书

为指定的域名获取 TLS 证书:

tailscale cert <domain>
共享目录

共享本地目录给 Tailnet:

tailscale drive <directory>  

升级 Tailscale

升级到最新版本或指定版本:

tailscale update
检查系统策略(MDM 相关)
tailscale syspolicy
启用更多功能

配置主机以启用更多功能(Alpha 阶段):

tailscale configure
启动 Web 界面

在本地运行一个控制 Tailscale 的 Web 服务器:

tailscale web

可以针对某个子命令使用 --help 查看详细帮助:

tailscale status --help                         
tailscale up --help 

7、分享应用场景

  • 1、利用OpenFi 5Pro远程组网实现办公区对现场设备的无缝连接调试。

  • 实现效果:办公电脑1、2都可以通过192.168.21.xx访问到远程设备

tailscale网络
openwrt:192.168.1.0/24
相机:192.168.21.103
OpenFi:192.168.21.0/24
Tailscale IP:100.79.167.113
PLC:192.168.21.104
办公电脑1:192.168.1.5
Tailscale IP:100.95.46.117
办公电脑2:192.168.1.6
Tailscale IP:100.86.55.91
Tailscale:100.x.x.x

结束

  • OpenFi 拥有强大的性能,除了Tailscale以外还支持许多组网插件,并且轻便、轻巧,在有限空间内也可以部署:

在这里插入图片描述

在这里插入图片描述

本篇到此结束,下篇讲解国产远程组网工具–星空组网

### 使用 Tailscale 配置 Docker 容器网络 为了使 Docker 和 Tailscale 协同工作,可以按照如下方法设置容器连接到 Tailscale 网络。这允许容器通过 Tailscale 的虚拟私有网络与其他节点通信。 #### 启动带有 Tailscale 支持的 Docker 容器 创建并启动一个安装Tailscale 的新容器实例: ```dockerfile FROM ubuntu:latest RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y curl iptables && \ sh -c "$(curl -fsSL https://tailscale.com/install.sh)" && \ tailscaled --state=/var/lib/tailscale/tailscaled.state & ``` 上述脚本会准备环境,在基础镜像上安装必要的软件包以及 Tailscale 自身[^1]。 对于已经运行中的容器,可以通过命令行工具 `docker exec` 来安装和配置 Tailscale。 #### 运行 Tailscale 并加入现有网络 一旦容器内有了 Tailscale,就可以利用下面这条指令来激活它并将该设备注册至指定管理员账户下管理的 Tailscale 网络里: ```bash tailscale up --authkey=tskey-xxxxxxxxxxxxxxxxxxxxxx ``` 这里需要替换掉示例中的 auth key (`tskey-xxxxxxxxxxxxxxxxxxxxxx`) 成有效的认证密钥字符串[^2]。 另外一种方式是在宿主机级别集成两者功能——即让整个物理机器成为 Tailscale 节点的一部分;之后任何来自此系统的 Docker 容器都将自动继承其父级接口所提供的 IP 地址和其他属性而无需单独处理每个个体案例。 #### 查看当前状态 要查看有关已建立连接的信息,可执行以下命令获取更多细节: ```bash tailscale status ``` 以上操作能够展示出所有在线成员及其对应的公共/私人 IPv4 或者 IPv6 地址列表[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Brukamen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值