|
本帖最后由 99010 于 2024-8-20 09:43 编辑
根据openwrt官方Wiki做的一些补充。
虽然tailscale官方平台只能激活20个设备,对于普通用户来说,已经足够使用。另外一个缺点就是中续服务器在境外,在直连失败后互访的延时会比较大,有条件还是自建吧。
以下基于openwrt官方固件。(注:每个openwrt设备必须是不同局域网IP段)
1.安装组件(22.03.x以上版本需要额外安装组件iptables-nft )
2023.3.5更新,第三方openwrt固件可以去openwrt官方下载对应架构的tailscale IPK手动安装即可。
比如7621路由器,可以在https://downloads.openwrt.org/sn ... ipsel_24kc/packages下载tailscale、tailscaled的IPK。
- opkg update
- opkg install tailscale iptables-nft
- service tailscale restart
- tailscale up --accept-routes=true --accept-dns=false --advertise-routes=192.168.12.0/24 --reset --netfilter-mode=off
- 注1:开启路由--accept-routes=true
- 注2:关闭下发dns--accept-dns=false
- 注3:指定本地局域网段路由转发--advertise-routes=192.168.12.0/24
- 注4:自动刷新路由表--reset
- 注5:关闭默认防火墙规则(22.03.x以上版本必须安装组件iptables-nft并用这个参数,21.02.x版本不需要。)--netfilter-mode=off
- 复制生成的链接用浏览器打开激活该设备(需要谷歌、微软、github、苹果账号登陆),然后在该设备的右侧菜单栏依次点击Disable key expiry、Edit route settings。
复制代码
注:为了在复杂组网环境获得稳定连接,tailscale默认MTU1280,(简单组网环境)可自行修改为1410或者1420
- 临时修改
- ip link set tailscale0 mtu 1410
- 永久添加到启动项。
- sed -i '/ procd_close_instance/i\procd_set_param env TS_DEBUG_MTU=1410' /etc/init.d/tailscale
复制代码
2.配置tailscale接口、防火墙 (22.03.x版本必须配置,21.02.x版本不需要配置。)
- uci set network.tailscale=interface
- uci set network.tailscale.proto=none
- uci set network.tailscale.device=tailscale0
- uci commit network
- uci add firewall zone
- uci set firewall.@zone[-1].name=tailscale
- uci set firewall.@zone[-1].input=ACCEPT
- uci set firewall.@zone[-1].output=ACCEPT
- uci set firewall.@zone[-1].forward=ACCEPT
- uci set firewall.@zone[-1].masq=1
- uci set firewall.@zone[-1].mtu_fix=1
- uci set firewall.@zone[-1].network=tailscale
- uci commit firewall
- uci add firewall forwarding
- uci set firewall.@forwarding[-1].src=tailscale
- uci set firewall.@forwarding[-1].dest=wan
- uci commit firewall
- uci add firewall forwarding
- uci set firewall.@forwarding[-1].src=lan
- uci set firewall.@forwarding[-1].dest=tailscale
- uci commit firewall
- uci add firewall forwarding
- uci set firewall.@forwarding[-1].src=tailscale
- uci set firewall.@forwarding[-1].dest=lan
- uci commit firewall
复制代码
网络--->接口,添加新接口,
名称:tailscale
协议:不配置协议
设备:tailscale0
保存并应用
网络--->防火墙,常规设置,添加,配置如图
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
自建tailscale的derper中续服务器
前提:
a,有公网IP、域名
b,需要域名证书(注:可在域名注册商免费获取或者用acme、caddy自动申请)
1.编译mt7621上使用的二进制derper程序
- wget https://go.dev/dl/go1.20.4.linux-amd64.tar.gz
- rm -rf /usr/local/go && tar -C /usr/local -xzf go1.20.4.linux-amd64.tar.gz
- export PATH=$PATH:/usr/local/go/bin
- go version
- (单文件)
- CGO_ENABLED=0 GOOS=linux GOARCH=mipsle GOMIPS=softfloat go install tailscale.com/cmd/derper@main
- (cgo文件,openwrt需安装openssl-util)
- GOOS=linux GOARCH=mipsle GOMIPS=softfloat go install tailscale.com/cmd/derper@main
复制代码
注:二者在使用上无区别,只有初始文件体积大小不一样,用upx压缩后体积一样。
2.将derper上传到/usr/bin目录,添加权限755
3.创建/etc/init.d/derper启动文件,权限755
- #!/bin/sh /etc/rc.common
- START=99
- SERVICE_USE_PID=1
- SERVICE_WRITE_PID=1
- SERVICE_DAEMONIZE=1
- start() {
- service_start /usr/bin/derper --certmode=manual --certdir=/etc/acme/域名 --hostname=域名 -a :7006 -stun-port 7007 -http-port 7008 --verify-clients
- }
- stop() {
- service_stop /usr/bin/derper
- }
复制代码
4.到https://login.tailscale.com/admin/acls添加配置
- {
- //....其他配置
- "derpMap": {
- "OmitDefaultRegions": false, //禁止使用官方的DERP服务器,可选
- "Regions": {
- "901": { //自定义的DERP服务器
- "RegionID": 901, //900以上
- "RegionCode": "anything",
- "Nodes": [
- {
- "Name": "1",
- "RegionID": 901, //就是上面的RegionID
- "HostName": "yourdomain.com", //域名
- "DERPPort": 7006, //服务器配置的DERP端口
- "STUNPort": 7007, //服务器配置的STUN端口
- },
- ],
- },
- },
- },
- //....其他配置
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|