Tailscale与代理软件协作分流配置

字号
字体
版心
外观
天空

Tailscale与代理软件协作分流配置

I

Incohua

••6 分钟阅读

Tailscale 代理配置#

💡:可以直奔 Xray 模块,实现更简单

前言#

作者经常在代理软件和 Tailscale 之间切换,很不方便。所以在看到相关的文章后,参考记录 Tailscale 和代理软件配合使用的流程。可以直接在代理软件中,配置 Tailscale 的分流,这样在部分不支持多个 VPN 设备的终端上,也可以快乐使用。

⚠️:暴露 Tailscale 服务到外部是非常危险的行为,如非必要请勿使用

参考#

Tailscale 配置部分#

配置命令

bash
tailscaled --tun=userspace-networking --socks5-server=localhost:1055 --outbound-http-proxy-listen=localhost:1055 & tailscale up --auth-key=<your-auth-key>

Auth Key#

位置:Setting -> Personal Settings -> Keys

新建 Key 替换文中的 auth-key

验证#

bash
curl --socks5 127.0.0.1:1055 http://100.92.57.122:16666/ # Tailscale内网地址

成功

Gost 配置#

介绍#

GO 语言实现的安全隧道

意义#

用于转发 Tailscale 本地暴露的无鉴权1055 端口,为其配置基础的鉴权

⚠️:暴露 Tailscale 服务到外部是非常危险的行为,如非必要请勿使用

(或使用其他方式加固安全)

bash
# 安装最新版本 [https://github.com/go-gost/gost/releases](https://github.com/go-gost/gost/releases)
bash <(curl -fsSL https://github.com/go-gost/gost/raw/master/install.sh) --install

Socks5 转发#

bash
gost -L socks5://tailscale:tailscale_passwd@:61140 -F socks5://127.0.0.1:1055

验证#

bash
curl -x socks5://tailscale:tailscale.passwd@server_name:port http://100.92.57.122:16666/

如果能正常返回目标内容网页,则说明没问题

可能存在的问题和解决方案#

(进程冲突)

查看进程#

查看进程 ps aux | grep tailscaled

bash
root@jp-claw:~# ps aux | grep tailscaled
root      292687  0.1  7.8 1318972 73932 ?       Ssl  07:22   0:00 /usr/sbin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port=41641
root      292863  0.0  0.1   3880  1804 pts/0    S+   07:27   0:00 grep tailscaled
root@jp-claw:~#

关闭进程 kill 292687

重新输入上述命令解决

代理软件配置(以 Surge 为例)#

都用 Surge 了,为什么不用 Surge Ponte 呢🤔

首先设置好 Socks5 代理规则

conf
DOMAIN-SUFFIX,ts.net,"Tailscale-Proxy"
IP-CIDR6,fd7a:115c:a1e0:ab12::/64,"Tailscale-Proxy",no-resolve
IP-CIDR,100.64.0.0/10,"Tailscale-Proxy",no-resolve

进阶提示#

你可以使用 Xray 把他改成 SS2022,Vless 等等

(那是不是可以配置 Xray 不屏蔽本地地址呢)

Xray 分流配置#

前言#

上边儿提到的

那是不是可以配置 Xray 不屏蔽本地地址呢

突发奇想去测试了一下,发现真的可以

(那我前面都在搞什么😭

Xray 节点配置#

新建一个节点,任意类型都可以,作者使用的是 SS2022

(运行的客户端要有 Tailscale 这个不用说了吧)

3X-UI BUG 补充#

如果使用 3x-ui 这一项目,创建 SS2022 节点的话

请注意节点和用户的 Password 部分

由于当前的面板 BUG,修改加密方式并不会更新 Password

这会导致部分软件的导入问题,例如 Surge

所以请手动使用 openssl rand -base64 16 生成 Password

  • Aes128 使用 16 位
  • Aes256 使用 32 位

Xray 路由配置#

正常来说,Xray 的路由部分如下,关键在于 geoip:private 部分

根据 geoip:private 中的描述,这一部分处理了所有的内网保留地址

包括 Tailscale 使用的内网地址 100.64.0.0

go
const (
	entryNamePrivate = "private"
	TypePrivate      = "private"
	DescPrivate      = "Convert LAN and private network CIDR to other formats"
)

var privateCIDRs = []string{
	"0.0.0.0/8",
	"10.0.0.0/8",
	"100.64.0.0/10",
	"127.0.0.0/8",
	"169.254.0.0/16",
	"172.16.0.0/12",
	"192.0.0.0/24",
	"192.0.2.0/24",
	"192.88.99.0/24",
	"192.168.0.0/16",
	"198.18.0.0/15",
	"198.51.100.0/24",
	"203.0.113.0/24",
	"224.0.0.0/4",
	"240.0.0.0/4",
	"255.255.255.255/32",
	"::/128",
	"::1/128",
	"fc00::/7",
	"ff00::/8",
	"fe80::/10",
}

所以只要在原先的路由上,添加一个更高的优先级,将 100.64.0.0 这一地址提前出站即可

==保证 Tailscale 的路由优先级高于 geoip:private 即可==

Inbound-61139 为你所创建的节点

配置#

对应的面板显示如下

Q:为什么要分成三条啊,好麻烦
A:请去 Xray 项目点一个 🌟Star,然后翻到 Wiki 的路由部分

对应的 config.json 部分如下

json
[
  {
    "type": "field",
    "inboundTag": [
      "api"
    ],
    "outboundTag": "api"
  },
  {
    "type": "field",
    "ip": [
      "100.64.0.0/10"
    ],
    "inboundTag": [
      "inbound-61139"
    ],
    "outboundTag": "direct"
  },
  {
    "type": "field",
    "ip": [
      "fd7a:115c:a1e0:ab12::/64"
    ],
    "inboundTag": [
      "inbound-61139"
    ],
    "outboundTag": "direct"
  },
  {
    "type": "field",
    "domain": [
      "ts.net"
    ],
    "inboundTag": [
      "inbound-61139"
    ],
    "outboundTag": "direct"
  },
  {
    "type": "field",
    "outboundTag": "blocked",
    "ip": [
      "geoip:private"
    ]
  },
  {
    "type": "field",
    "outboundTag": "blocked",
    "protocol": [
      "bittorrent"
    ]
  }
]

实际使用#

拓展#

  • 你甚至可以用专线优化你的体验(
  • 只要合理的配置好 ACL,你可以快乐分享 xxx
  • 🤔

评论 0

按时间排序
评论还没开通
  1. 还没有评论。