From f97a9ed1586dc549b5e0def7aad06e9b71f88efb Mon Sep 17 00:00:00 2001 From: asvow Date: Wed, 29 May 2024 21:16:15 +0800 Subject: [PATCH] new feature: site-to-site fix #5 --- .../resources/view/tailscale/setting.js | 6 ++++ po/templates/tailscale.pot | 30 ++++++++++++------- po/zh_Hans/tailscale.po | 30 ++++++++++++------- po/zh_Hant/tailscale.po | 30 ++++++++++++------- root/etc/init.d/tailscale | 4 ++- 5 files changed, 66 insertions(+), 34 deletions(-) diff --git a/htdocs/luci-static/resources/view/tailscale/setting.js b/htdocs/luci-static/resources/view/tailscale/setting.js index 04faff0..7c1bfca 100644 --- a/htdocs/luci-static/resources/view/tailscale/setting.js +++ b/htdocs/luci-static/resources/view/tailscale/setting.js @@ -164,8 +164,14 @@ return view.extend({ o.default = o.disabled; o.rmempty = false; + o = s.option(form.Flag, 's2s', _('Site To Site'), _('Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other.')); + o.default = o.disabled; + o.depends('acceptRoutes', '1'); + o.rmempty = false; + o = s.option(form.Value, 'advertiseRoutes', _('Expose Subnets'), _('Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24')); o.default = ''; + o.depends('acceptRoutes', '1'); o.rmempty = true; o = s.option(form.MultiValue, 'access', _('Access Control')); diff --git a/po/templates/tailscale.pot b/po/templates/tailscale.pot index 552a34d..e82c054 100644 --- a/po/templates/tailscale.pot +++ b/po/templates/tailscale.pot @@ -1,6 +1,10 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +msgid "Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other." +msgstr "" + #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 msgid "Accept DNS" msgstr "" @@ -13,7 +17,7 @@ msgstr "" msgid "Accept subnet routes that other nodes advertise." msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177 msgid "Access Control" msgstr "" @@ -25,7 +29,7 @@ msgstr "" msgid "Are you sure you want to logout and unbind the current device?" msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:194 msgid "Auth Key" msgstr "" @@ -42,7 +46,7 @@ msgstr "" msgid "Collecting data ..." msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:187 msgid "Custom Server Settings" msgstr "" @@ -62,11 +66,11 @@ msgstr "" msgid "Exit Node" msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 msgid "Expose Subnets" msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 msgid "Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24" msgstr "" @@ -98,7 +102,7 @@ msgstr "" msgid "Interface Name" msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:174 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180 msgid "LAN access Tailscale" msgstr "" @@ -159,7 +163,7 @@ msgstr "" msgid "RUNNING" msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:184 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190 msgid "Server Address" msgstr "" @@ -167,6 +171,10 @@ msgstr "" msgid "Set the Tailscale port number." msgstr "" +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +msgid "Site To Site" +msgstr "" + #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:53 @@ -175,11 +183,11 @@ msgstr "" msgid "Tailscale" msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178 msgid "Tailscale access LAN" msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:173 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179 msgid "Tailscale access WAN" msgstr "" @@ -208,11 +216,11 @@ msgstr "" msgid "Unable to get interface info: %s." msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:182 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 msgid "Use %s to deploy a private server." msgstr "" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:175 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 msgid "WAN access Tailscale" msgstr "" diff --git a/po/zh_Hans/tailscale.po b/po/zh_Hans/tailscale.po index 299eec3..905aa7c 100644 --- a/po/zh_Hans/tailscale.po +++ b/po/zh_Hans/tailscale.po @@ -7,6 +7,10 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +msgid "Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other." +msgstr "使用站点到站点的三层网络连接 Tailscale 中的两个子网。" + #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 msgid "Accept DNS" msgstr "允许DNS" @@ -19,7 +23,7 @@ msgstr "使用 Tailscale 管理控制台的 DNS 配置。" msgid "Accept subnet routes that other nodes advertise." msgstr "接受其他节点广播的子网路由。" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177 msgid "Access Control" msgstr "访问控制" @@ -31,7 +35,7 @@ msgstr "高级设置" msgid "Are you sure you want to logout and unbind the current device?" msgstr "是否注销当前登录并且解绑当前设备?" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:194 msgid "Auth Key" msgstr "认证密钥" @@ -48,7 +52,7 @@ msgstr "基础设置" msgid "Collecting data ..." msgstr "正在收集数据..." -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:187 msgid "Custom Server Settings" msgstr "自定义服务器" @@ -68,11 +72,11 @@ msgstr "错误日志" msgid "Exit Node" msgstr "出口节点" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 msgid "Expose Subnets" msgstr "公开网段" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 msgid "Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24" msgstr "广播子网路由至 Tailscale。例如:10.0.0.0/24" @@ -104,7 +108,7 @@ msgstr "接口信息" msgid "Interface Name" msgstr "接口名称" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:174 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180 msgid "LAN access Tailscale" msgstr "本地局域网访问虚拟局域网" @@ -165,7 +169,7 @@ msgstr "端口" msgid "RUNNING" msgstr "运行中" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:184 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190 msgid "Server Address" msgstr "服务器地址" @@ -173,6 +177,10 @@ msgstr "服务器地址" msgid "Set the Tailscale port number." msgstr "设置 Tailscale 端口号。" +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +msgid "Site To Site" +msgstr "子网互通" + #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:53 @@ -181,11 +189,11 @@ msgstr "设置 Tailscale 端口号。" msgid "Tailscale" msgstr "Tailscale" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178 msgid "Tailscale access LAN" msgstr "虚拟局域网访问本地局域网" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:173 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179 msgid "Tailscale access WAN" msgstr "虚拟局域网访问本地广域网" @@ -214,11 +222,11 @@ msgstr "无法获取接口 %s 的信息:%s。" msgid "Unable to get interface info: %s." msgstr "无法获取接口信息:%s。" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:182 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 msgid "Use %s to deploy a private server." msgstr "使用 %s 部署私有服务器" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:175 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 msgid "WAN access Tailscale" msgstr "本地广域网访问虚拟局域网" diff --git a/po/zh_Hant/tailscale.po b/po/zh_Hant/tailscale.po index b5ce34f..c0d6dc1 100644 --- a/po/zh_Hant/tailscale.po +++ b/po/zh_Hant/tailscale.po @@ -7,6 +7,10 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +msgid "Use site-to-site layer 3 networking to connect two subnets on your Tailscale network with each other." +msgstr "使用站點到站點的三層網路連線 Tailscale 中的兩個子網。" + #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:159 msgid "Accept DNS" msgstr "允許DNS" @@ -19,7 +23,7 @@ msgstr "使用 Tailscale 管理控制台的DNS配置。" msgid "Accept subnet routes that other nodes advertise." msgstr "接受其他節點廣播的子網路由。" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:171 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:177 msgid "Access Control" msgstr "訪問控制" @@ -31,7 +35,7 @@ msgstr "高級設置" msgid "Are you sure you want to logout and unbind the current device?" msgstr "是否註銷當前登錄並且解綁當前設備?" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:194 msgid "Auth Key" msgstr "認證密鑰" @@ -48,7 +52,7 @@ msgstr "基礎設置" msgid "Collecting data ..." msgstr "正在收集數據..." -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:187 msgid "Custom Server Settings" msgstr "自定義服務器" @@ -68,11 +72,11 @@ msgstr "錯誤日誌" msgid "Exit Node" msgstr "出口節點" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 msgid "Expose Subnets" msgstr "公開網段" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 msgid "Expose physical network routes onto Tailscale. e.g. 10.0.0.0/24" msgstr "廣播子網路由至 Tailscale。例如:10.0.0.0/24" @@ -104,7 +108,7 @@ msgstr "接口信息" msgid "Interface Name" msgstr "接口名稱" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:174 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:180 msgid "LAN access Tailscale" msgstr "本地局域網訪問虛擬局域網" @@ -165,7 +169,7 @@ msgstr "端口" msgid "RUNNING" msgstr "運行中" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:184 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:190 msgid "Server Address" msgstr "服務器地址" @@ -173,6 +177,10 @@ msgstr "服務器地址" msgid "Set the Tailscale port number." msgstr "設置 Tailscale 端口號。" +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:167 +msgid "Site To Site" +msgstr "子網互聯" + #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/interface.js:72 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:51 #: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:53 @@ -181,11 +189,11 @@ msgstr "設置 Tailscale 端口號。" msgid "Tailscale" msgstr "Tailscale" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:172 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:178 msgid "Tailscale access LAN" msgstr "虛擬局域網訪問本地局域網" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:173 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:179 msgid "Tailscale access WAN" msgstr "虛擬局域網訪問本地廣域網" @@ -214,11 +222,11 @@ msgstr "無法獲取接口 %s 的信息:%s。" msgid "Unable to get interface info: %s." msgstr "無法獲取接口信息:%s。" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:182 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:188 msgid "Use %s to deploy a private server." msgstr "使用 %s 部署私有服務器" -#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:175 +#: luci-app-tailscale/htdocs/luci-static/resources/view/tailscale/setting.js:181 msgid "WAN access Tailscale" msgstr "本地廣域網訪問虛擬局域網" diff --git a/root/etc/init.d/tailscale b/root/etc/init.d/tailscale index 66ec943..c215035 100755 --- a/root/etc/init.d/tailscale +++ b/root/etc/init.d/tailscale @@ -20,7 +20,7 @@ section_enabled() { custom_instance() { local cfg="$1" - local acceptRoutes hostname acceptDNS advertiseExitNode advertiseRoutes loginServer authkey std_out std_err + local acceptRoutes hostname acceptDNS advertiseExitNode s2s advertiseRoutes loginServer authkey std_out std_err local ARGS=" up --reset" if ! section_enabled "$cfg"; then @@ -32,6 +32,7 @@ custom_instance() { config_get hostname $cfg 'hostname' config_get_bool acceptDNS $cfg 'acceptDNS' config_get_bool advertiseExitNode $cfg 'advertiseExitNode' + config_get_bool s2s $cfg 's2s' config_get advertiseRoutes $cfg 'advertiseRoutes' config_get loginServer $cfg 'loginServer' config_get authkey $cfg 'authkey' @@ -42,6 +43,7 @@ custom_instance() { [ -n "$hostname" ] && ARGS="$ARGS --hostname=$hostname" [ "$acceptDNS" = "0" ] && ARGS="$ARGS --accept-dns=false" [ "$advertiseExitNode" = "1" ] && ARGS="$ARGS --advertise-exit-node" + [ "$s2s" = "1" ] && ARGS="$ARGS --snat-subnet-routes=false --stateful-filtering=false" [ -n "$advertiseRoutes" ] && ARGS="$ARGS --advertise-routes=$advertiseRoutes" [ -n "$loginServer" ] && ARGS="$ARGS --login-server=$loginServer" [ -n "$authkey" ] && ARGS="$ARGS --authkey=$authkey"