1. 前言
回到北京后,我想访问老家的局域网服务器,所有在路由器上安装了这个软件。
前提需要配置俩个地方:老家的局域网服务器发布子网路由,并接收路由,北京的路由器发布子网路由,并接收路由。这样配置后,所有路由器下面的子设备都可以进行访问服务器。
2. tailscale 安装
这里我没使用padvan 固件中默认的tailscale界面配置,感觉其有bug, 而且很难用。所有我使用命令行进行安装
使用opkg 安装:
bash
opkg install tailscale
默认安装的 1.96.1-1 版本,有点问题(登录账号后就会启动失败),使用命令行进行升级:
bash
tailscale update
升级到1.96.4 就没有这个问题了
3. 子网路由发布与接收
查看当前配置:
bash
tailscale status --json | jq
发布路由与接收其他路由:
bash
sudo tailscale set --accept-routes
sudo tailscale set --advertise-routes=192.168.123.0/24,192.168.0.0/24,192.168.2.0/24
4. 路由器中tailscale的启动方式
bash
[MI-R3G /opt]# which tailscale
/opt/bin/tailscale
[MI-R3G /opt]# which tailscaled
/opt/bin/tailscaled
[MI-R3G /opt]#
opt分区为挂载的U盘,其安装会自动安装到外部的U盘上
tailscaled 为服务,即长时间运行的一个进程
tailscale 为客户端,可以对其服务进行各种各样的配置
开机自启动文件在:/opt/etc/init.d/S06tailscaled
bash
#!/bin/sh
ENABLED=yes
PROCS=tailscaled
ARGS="--state=/opt/var/tailscaled.state --statedir=/opt/var/lib/tailscale"
PREARGS="nohup"
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. /opt/etc/init.d/rc.func
可以看到,其使用的state文件也存储在opt分区下面,其会保存登录信息,每次启动相当于自动进行登录,这样就可以连接到设置的 网络了。
5.其他问题
在运行一段时间,发现tailscaled进程挂掉,怀疑和u盘连接不稳定相关,这里利用路由器自带的crontab定时任务,做一个检查 tailscaled进程挂掉自动拉起的功能
crontab -e
bash
* * * * * /opt/script/restartTailscale.sh
cat /opt/script/restartTailscale.sh
bash
#!/bin/bash
echo restartTailscale
ps -w|grep -v grep|grep tailscaled > /dev/null || tailscaled --state=/opt/var/tailscaled.state --statedir=/opt/var/lib/tailscale &
sed -i '/restartTailscale.sh/d' /tmp/syslog.log
指的说明的是最后一行sed, 因为每分钟一执行就会产生一条 syslog日志,很烦,并且 syslogd进程无法从启动进行过滤,所以在脚本最后将 这一行日志进行删除,tailscale再也没断连过了。