接上文:《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
- 接下来只需要在你需要组网的其他设备同时安装Tailscale,并登录同一个账户,即可连接
- 各个平台的客户端下载地址:https://tailscale.com/download
- 官方文档:https://tailscale.com/kb
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访问到远程设备
结束
- OpenFi 拥有强大的性能,除了Tailscale以外还支持许多组网插件,并且轻便、轻巧,在有限空间内也可以部署:
本篇到此结束,下篇讲解国产远程组网工具–星空组网