惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
月光博客
月光博客
T
Threat Research - Cisco Blogs
小众软件
小众软件
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
T
Tailwind CSS Blog
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
博客园 - 【当耐特】
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
The Last Watchdog
The Last Watchdog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
S
Secure Thoughts
O
OpenAI News
P
Proofpoint News Feed
S
SegmentFault 最新的问题
Forbes - Security
Forbes - Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Application and Cybersecurity Blog
Application and Cybersecurity Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
T
Tenable Blog
A
Arctic Wolf
L
LINUX DO - 热门话题
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Visual Studio Blog
Hacker News: Ask HN
Hacker News: Ask HN
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
博客园 - Franky
WordPress大学
WordPress大学
Know Your Adversary
Know Your Adversary
博客园_首页
雷峰网
雷峰网
IT之家
IT之家
PCI Perspectives
PCI Perspectives
L
LINUX DO - 最新话题
H
Heimdal Security Blog

崔八由

内网设备被挖矿了 对华宸未来债券基金更名的总结 凸(艹皿艹 ) 推特被封了 第一次装机过程与记录 记录一下今年治牙的过程 预测未来 最终还是投向了obsidian pve lxc容器使用vnpy的问题 扔垃圾的感受 解决macos sierra重新安装时报错-准备安装时发生错误 记录一下使用vercel搭建umami中需要注意的地方 还是不能太依赖自建服务 Android应用在上架Google Play时封闭式测试的一些建议 JVM中的Shallow Size 和 Retained Size解释 acme.sh自动生成泛域名证书的几个坑 老了 go学习笔记之指针 pve主机使用smart_ctl监控磁盘信息 go中获取某个包下定义的所有变量
tailscale的设置与安装
崔八由 · 2024-01-18 · via 崔八由

发表于|更新于|折腾其他

|浏览量:|

先说一下整体的环境和安装方式

  • pve虚拟机专门开了一个lxc容器,用于安装tailscale,并利用此容器转发流量到局域网内的其他机器上,实现外部访问内网所有机器
  • 由于tailscale本身的中转服务器derp没有中国的节点,测试了一下最近的节点是位于东京的,所以此处选择自己搭建一个中继节点

下面描述一下安装步骤, 总共分为几大步:

  1. 使用pve的lxc安装tailscale,并设置转发
  2. 搭建自定义的tailscale中继服务器
  3. tailscale网页端配置

PVE LXC安装tailscale

lxc模板使用的是Debian 11(bullseye)

  1. 创建一个非特权的CT容器, 模板选择Debian 11(bullseye),其他配置都使用默认配置(网络那儿最好选择DHCP,让路由器自动分配一个IP)

  2. 安装完成后, 先不要启动,需要修改一些配置

  3. 在pve宿主机中,获取信息, 执行命令和返回结果如下, 记录 10, 200 这两个数字, 后面需要用到

    1
    2
    root@pve:~# ls -al /dev/net/tun
    crw-rw-rw- 1 root root 10, 200 Jun 30 23:08 /dev/net/tun
  4. 在pve宿主机中,修改 /etc/pve/lxc/CTID.conf文件, 新增如下两行:其中10和200是上一步中获取到的值

    1
    2
    lxc.cgroup2.devices.allow: c 10:200 rwm
    lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
  5. 上述配置完成后, 启动容器,在容器内安装tailscale, 安装文档:https://tailscale.com/kb/1038/install-debian-bullseye, 安装完成后先不要启动tailscale

  6. 开启lxc的转发功能,进入lxc容器, 修改/etc/sysctl.conf配置文件(一般是有的,将注释去掉就行),修改为如下两行:

    1
    2
    net.ipv4.ip_forward=1
    net.ipv6.conf.all.forwarding=1
  7. 修改完成后, 使其生效, 执行命令:sysctl -p /etc/sysctl.conf

  8. 启动tailscale, 因为此处是要使用此容器作为转发, 所以需要加上advertise-routes参数, 假设tailscale容器的IP为10.0.0.23, 要转发的网络段为 10.0.0.0/24, 则使用如下命令启动:

    1
    2
    # 此处使用的authKey来启动, 也可以不使用这个,具体方法参见tailscale文档
    tailscale up --authkey=xxxxx --accept-routes --advertise-routes=10.0.0.0/24
  9. 上一步使用的authKey是在tailscale的web管理端生成的,具体位置见下图:

    1. 当tailsale成功连接之后, 登录web端,在对应设备上点击 Edit route setting, 在弹出框中将subnet routes勾选上,并保存, 至此, 当其他设备连接上tailscale之后,就可以直接通过10.0.0.X的IP直接访问和lxc容器属于同一网段的其他设备。

    lxc设置tailscale开启自启

    这步的所有操作都是在lxc容器内进行的。

    使用systemd设置开机自启。在/etc/systemd/system下新建一个配置文件: tailscale.service, 文件内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       [Unit]
    Description=AutoStart tailscale
    After=tailscale.service
    Requires=tailscale.service
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/tailscale up --authkey=你的authKey --accept-routes --advertise-routes=你的转发范围
    ExecStop=/usr/bin/tailscale down
    RemainAfterExit=yes
    Restart=on-failure
    [Install]
    WantedBy=multi-user.target

    然后执行如下命令:

1
2
systemctl enable tailscale.service
systemctl start tailscale.service

使用自定义中继服务器Derp

前提条件:

  • 公网VPS:配置不用太高,阿里云的最低配置就行

  • VPS开通端口8082和3478:我此处指定了derp的端口为8082, 你也可以指定其他端口

  • 域名

  • 域名对应的https证书: 我此处使用的是阿里云的免费证书

    此处为了方便,使用docker部署derp。

    在和docker-compose.yml文件的相同目录下,创建certs目录, 并将证书文件放入此目录中。

    docker-compose.yml文件如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    version: "3.9"
    services:
    derper:
    image: fredliang/derper
    container_name: derper
    volumes:
    - ./config/certs:/app/certs
    ports:
    - 8082:8082
    - 3478:3478/udp
    environment:
    - DERP_DOMAIN=你的域名
    - DERP_CERT_MODE=manual
    - DERP_ADDR=:8082
    - DERP_HTTP_PORT=-1

    然后启动,docker-compose up -d

tailscale配置

登录tailscale的web控制台, 在Access Controls选项卡下,编辑配置文件, 在配置文件加上如下一段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 自定义的中继derp
"derpMap": {
"Regions": {
"900": {
"RegionID": 900,
"RegionCode": "随便填一个有标识性的即可",
"RegionName": "随便填一个有标识性的即可",
"Nodes": [
{
"Name": "随便填一个有标识性的即可",
"RegionID": 900,
"HostName": "你的域名",
"StunPort": 3478,
"DerpPort": 8082, //之前配的端口
},
],
},
},

具体加的位置如图所示:

验证是否生效:随便在一个已经连接上tailscale的机器上, 执行 tailscale netcheck,看到的中继列表里如果有你刚加的, 那就说明成功了。