tailscale-异地组网

Tailscale异地组网使用与Nginx整合

阅读目录


回到顶部

一、概要

VPN 是什么?

  看到 VPN 第一反应应该是FQ,但 VPN 最初应该也是最普遍的用途应该是用来做内网打通, 这也是其名字虚拟私有网络的用意,VPN 让你可以在公开的网络线路上建立一个私有的子网, 然后将所有接入的机器都分配一个私有的内网地址,让他们可以通过 VPN 的私有网络互联。

TailScale 是什么

  云上VPN服务商,提供VPN的一种:mesh VPN;一种能让节点间直接互联,每一个节点都会存储其他所有节点的信息,并且和其他所有的节点都建立 TLS加密连接。

对个人用户免费,支持100设备;

TailScale 能做到什么

  只要你的机器可以连到公网,tailscale 可以让所有的机器连接到同一个私有子网内。 你可以像在同一个局域网里那样,随时随地的连接你的任意设备,场景:文件传输、远程开发、代理

回到顶部

二、使用

官网:Tailscale · Best VPN Service for Secure Networks

tailscale管理端:Tailscale

以下演示我是通过微软账户进行登录的;

1、注册

 登陆后进入添加设备页面,左边是提供添加设备方法,右边是你添加成功后会出现你的设备清单

 2、下载安装

下载地址:Download | Tailscale

官网给出了包含五种设备的安装以及连接方法,下面我就演示常用的三种:本机Windows、逍遥模拟器(Android)、Linux(阿里云)

3、 Windows

下载安装包进行安装即可。

在电脑任务管理器会有tailscale的图标,点击登录即可,然后就可以看到你的这个主机了。

进入管理界面:然后设置主机名,以及禁止秘钥过期:

禁用DNS

4、Linux

国内的网络下载好大约十分钟,因为国内的网络无法访问:https://pkgs.tailscale.com,所以这里就使用第二种方式进行下载安装。

1

curl -fsSL https://tailscale.com/install.sh | sh


 

设置DNS(*):这步已经通过前面的设置DNS进行处理了,此处不再设置

先说问题:

  在Linux下启动tailscale,不能ping通外网,将默认将系统dns文件:/etc/resolv.conf进行替换了。然后关闭tailscale,dns配置又恢复之前的样子了;

如果是这样的话,我开启了tailscale后,我不能够访问外网,这软件是有点耦合性太高了~

参考博客:分享发现-nuomiphp

官网给出的解决办法:Configuring Linux DNS · Tailscale Docs

1

2

3

4

$ sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

$ sudo systemctl restart systemd-resolved

$ sudo systemctl restart NetworkManager

$ sudo systemctl restart tailscaled

然后重新设置下dns:/etc/resolv.conf

1

2

3

; generated by /usr/sbin/dhclient-script

search openstacklocal novalocal

nameserver 114.114.114.114

1

source /etc/resolv.conf

tailscale帮助命令

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

[root@zhixi ~]# sudo tailscale --help

使用说明

    tailscale [标志] <子命令> [命令标志]

子命令:

    up 连接到Tailscale,如有需要则进行登录

    down 从Tailscale断开连接

    set 更改指定偏好设置

    login 登录到Tailscale账户

    logout 从Tailscale断开,并使当前节点密钥过期

    switch 切换到另一个Tailscale账户

    configure [ALPHA] 配置主机以启用更多的Tailscale功能

    netcheck 打印关于本地网络情况的分析

    ip 显示Tailscale IP地址

    status 显示tailscaled及其连接的状态

    ping 在Tailscale层对主机进行ping,查看其路由情况

    nc 连接到主机的一个端口,连接到stdin/stdout

    ssh SSH到一个Tailscale机器

    funnel 开启/关闭 Funnel服务

    serve 提供内容和本地服务器服务

    version 打印Tailscale版本

    web 运行一个用于控制Tailscale的web服务器

    file 发送或接收文件

    bugreport 打印一个可共享的标识符,以帮助诊断问题

    cert 获取TLS证书

    lock 管理tailnet锁

    licenses 获取开源许可证信息

通过systemctl进行操作

1

2

3

4

5

systemctl status tailscaled # 查看状态

systemctl start tailscaled # 启动

systemctl stop tailscaled # 停止

systemctl enable tailscaled # 开机自启

systemctl disable tailscaled # 禁用开机自启

5、 Android

安装应用,因为国内的原因,在应用商店下载不到tailscale的apk安装包,这里我已经下载好了:

蓝奏云:

  文件

  密码:dipu


软件安装完后,打开,也是通过微软账户进行登录,即可加入到网络:

6、测试

我在本地Windows启动一个程序,然后测试在Linux、Android上面是否能够访问到应用程序。

这里需要的局域网IP地址也就是控制台的ADDRESSES,注意区分

本地程序访问地址:http://localhost:8080/user/selectAll/1/4

异地组网访问地址:http://100.103.222.102:8080/user/selectAll/1/4

回到顶部

三、Nginx整合Tailscale做端口转发

使用场景:使本地应用能被通过公网IP地址进行访问

  看以下图示,通过云服务器的公网IP,用户访问这个IP,通过Nginx转发,使用户访问到本地内网的应用,前提是需要有云服务器和公网IP

操作步骤

Nginx配置:

1

2

3

4

5

6

7

8

9

10

11

12

# 设置NGINX代理转发,访问8023端口,转发到其他地址

server {

    listen       8023;

    server_name  localhost;

    location /{

        root   html;

        index  index.html index.htm;

        # 你的应用访问地址,使用Tailscale异地组网的IP

        proxy_pass http://100.99.171.50:8080;

    }

}

分类: 工具

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值