Tailscale与代理软件协作分流配置
Tailscale 代理配置
💡:可以直奔 Xray 模块,实现更简单
前言
作者经常在代理软件和 Tailscale 之间切换,很不方便。所以在看到相关的文章后,参考记录 Tailscale 和代理软件配合使用的流程。可以直接在代理软件中,配置 Tailscale 的分流,这样在部分不支持多个 VPN 设备的终端上,也可以快乐使用。
⚠️:暴露 Tailscale 服务到外部是非常危险的行为,如非必要请勿使用
参考
Tailscale 配置部分
配置命令
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

验证
curl --socks5 127.0.0.1:1055 http://100.92.57.122:16666/ # Tailscale内网地址
成功

Gost 配置
介绍
GO 语言实现的安全隧道
意义
用于转发 Tailscale 本地暴露的无鉴权1055 端口,为其配置基础的鉴权
⚠️:暴露 Tailscale 服务到外部是非常危险的行为,如非必要请勿使用
(或使用其他方式加固安全)
# 安装最新版本 [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 转发
gost -L socks5://tailscale:tailscale_passwd@:61140 -F socks5://127.0.0.1:1055
验证
curl -x socks5://tailscale:tailscale.passwd@server_name:port http://100.92.57.122:16666/
如果能正常返回目标内容网页,则说明没问题
可能存在的问题和解决方案
(进程冲突)

查看进程
查看进程 ps aux | grep tailscaled
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 代理规则
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
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 为你所创建的节点
配置
对应的面板显示如下


对应的 config.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
- 🤔