Tailscale子网路由使用实例
通过Tailscale我们可以将处于不同位置的主机组建一个私有网络(Tailnet),这些设备都可以通过Tailscale分配的IP进行互相访问。 但有时会存在这样的情况,局域网中部分设备没有对应的Tailscale客户端,或者只有一台设备方便安装Tailscale,但我们想通过访问局域网IP的方式来访问其他设备,这时我们就需要使用Tailscale提供的子网路由(Subnet Routers)功能来实现。 例如:办公室PC、VPS和局域网内的斐讯N1都安装了Tailscale,局域网中有斐讯N1,PC,NAS,RouterOS路由器。 我们可以在斐讯N1上配置子网路由,这样办公室PC和VPS就可以通过局域网IP来访问内部的PC,NAS,RouterOS路由器。 开启ip转发 如果你的linux系统有/etc/sysctl.d目录,执行如下操作: echo 'net.ipv4.ip_forward = 1' | tee -a /etc/sysctl.d/99-tailscale.conf echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/99-tailscale.conf sysctl -p /etc/sysctl.d/99-tailscale.conf 或者执行如下操作: echo 'net.ipv4.ip_forward = 1' | tee -a /etc/sysctl.conf echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.conf sysctl -p /etc/sysctl.conf N1有/etc/sysctl.d目录,采用第一种操作。 N1设置子网路由 N1已经加入Tailscale,通过以下命令设置子路由(192.168.1.0/24) tailscale set --advertise-routes=192.168.1.0/24 第一次加入Tailscale,可以通过以下方法直接配置子路由 tailscale up --advertise-routes=192.168.1.0/24 可以设置多个子路由,格式如:--advertise-routes=192.168.1.0/24,192.168.2.0/24 设置完后,在Tailscale网站管理页面,点击进入N1设备,选择右上角Machine settings -> Edit route settings,在Subnet routers中勾选刚设置的子路由192.168.1.0/24保存即可。 外网终端设置接受路由 在外网设备中,我们要设置接受子网路由才可以使用该功能。 在Linux设备中,通过以下命令接受路由 tailscale up --accept-routes Windows和MACOS上默认开启,移动端打开Use Tailscale subnets开关。 验证功能 在VPS上ping一下内网RouterOS的ip看下是否能通 ➜ ~ ping 192.168.1.111 PING 192.168.1.111 (192.168.1.111) 56(84) bytes of data. 64 bytes from 192.168.1.111: icmp_seq=1 ttl=63 time=745 ms 64 bytes from 192.168.1.111: icmp_seq=2 ttl=63 time=252 ms 64 bytes from 192.168.1.111: icmp_seq=3 ttl=63 time=252 ms 64 bytes from 192.168.1.111: icmp_seq=4 ttl=63 time=252 ms 64 bytes from 192.168.1.111: icmp_seq=5 ttl=63 time=252 ms 64 bytes from 192.168.1.111: icmp_seq=6 ttl=63 time=252 ms 64 bytes from 192.168.1.111: icmp_seq=7 ttl=63 time=251 ms ^C --- 192.168.1.111 ping statistics --- 8 packets transmitted, 7 received, 12.5% packet loss, time 7002ms rtt min/avg/max/mdev = 250.515/322.219/745.459/172.787 ms 看来访问已经没有问题咯。 ...