2023年7月2日星期日

前沿:aws翻墙姿势+tailscale内网穿透

 一、AWS注册开通服务

安装虚拟机,建议选择免费资源,新建设置安全密钥并下载保存便于远程登录维护,根据提示操作即可,几乎无难度。区域选择根据物理空间距离或自己的需求确定,可后台释放开启禁用区域,官网均有相关提示内容,自行阅读理解即可解决。

二、在AWS虚拟机上安装tailscale

应根据虚拟机上已安装的系统(原则上应该安装系统前了解tailscale适应哪些操作系统安装或自己对哪些系统比较熟悉和了解)选择不同的tailscale安装操作内容及步骤,譬如虚拟机安装的操作系统是Ubuntu 22.04 LTS,对应的操作参考官网说明来操作即可(地址https://tailscale.com/download/linux/ubuntu-2204):

Ubuntu 22.04 LTS (Jammy)

step1:

curl -fsSL https://tailscale.com/install.sh | sh

step2:

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

step3:

sudo apt-get update

sudo apt-get install tailscale

step4:

sudo tailscale up

#浏览器打开命令执行结果显示的链接,按提示将您的计算机加入Tailscale 网络

step5:

#运行以下命令找到您的 Tailscale IPv4 地址予以验证

tailscale ip -4

#如果您添加的设备是服务器或远程访问设备,您可能需要考虑禁用密钥过期,以防止需要定期重新进行身份验证。即:在tailscale官网自己的登录后的设备列表,每个设备最右边“...”选择“Disable key expiry”即可。


step6:

#以下操作设置子网路由器,根据需要决定,官网介绍https://tailscale.com/kb/1019/subnets/

根据我的系统要在新的 Linux 计算机上激活子网路由器按照以下步骤操作:

步骤一:安装Tailscale客户端 

#此功能需要启用 IP 转发,如果您的 Linux 系统有/etc/sysctl.d目录:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf

echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf

sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

#否则:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf

echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf

sudo sysctl -p /etc/sysctl.conf

#如果您的 Linux 节点使用firewalld,由于已知问题,您可能还需要允许伪装。作为解决方法,您可以使用以下命令允许伪装,其他发行版可能需要不同的步骤。

firewall-cmd --permanent --add-masquerade

#启用 IP 转发时,请确保您的防火墙设置为默认拒绝流量转发。ufw 这是常见防火墙的默认设置firewalld,可确保您的设备不会路由您不希望的流量。

#在您的设备上安装 Tailscale,下载 Tailscale 并将其安装到您的子网路由器计算机上。

步骤 2:作为子网路由器连接到 Tailscale 

#安装后,您可以启动(或重新启动)Tailscale 作为子网路由器:

sudo tailscale up --advertise-routes=10.0.0.0/24,10.0.1.0/24

#将上例中的子网替换为适合您的网络的子网,支持 IPv4 和 IPv6 子网。如果设备通过了发布指定路由的用户的身份验证autoApprovers,则该子网路由器的路由将自动获得批准。autoApprovers您还可以通告tailnet 策略文件中允许的任何路由子集。

#如果您想公开默认路由(0.0.0.0/0 和 ::/0),请考虑使用退出节点。

步骤 3:从管理控制台启用子网路由 

#如果使用 则不需要此步骤autoApprovers。

#在管理控制台中打开计算机页面,找到发布子网路由的设备。您可以在计算机列表中查找“子网”标记,或使用attribute:subnet过滤器 查看所有通告子网路由的设备。使用 省略号图标表末尾的菜单,选择编辑路线设置,这将打开编辑路线设置面板。

#单击路由上的全部批准,以便 Tailscale 将子网路由分发到 Tailscale 网络上的其余节点。或者,您可以通过单击路线左侧的切换开关来单独批准每条路线。

#子网设置模式

#您可能更愿意在服务器上禁用密钥过期,以避免定期重新进行身份验证。有关机器密钥以及如何禁用其过期的更多信息,请参阅密钥过期。如果您使用ACL 标记,则默认情况下禁用密钥过期。

步骤4:为发布的子网路由添加ACL规则 

#如果您已有允许访问公布的子网路由的规则,则不需要此步骤。

#打开管理控制台中的 访问控制页面以更新tailnet 策略文件,并创建允许访问所公布子网的 ACL 规则。

#该 ACL 的作用:开发团队成员group:dev可以访问子网10.0.0.0/24和10.0.1.0/24,如果禁用子网路由伪装,则子网10.0.0.0/24可以访问子网10.0.1.0/24,反之亦然 。

{

  "groups": {

    "group:dev": ["alice@example.com", "bob@example.com"]

  },

  "acls": [

    // Users in group:dev and devices in subnets 10.0.0.0/24 and

    // 10.0.1.0/24 can access devices in subnets 10.0.0.0/24 and

    // 10.0.1.0/24

    { "action": "accept",

      "src": ["group:dev","10.0.0.0/24", "10.0.1.0/24"],

      "dst": ["10.0.0.0/24:*", "10.0.1.0/24:*"]

    }

  ]

}

#单击tailnet 策略文件上的保存,以便 Tailscale 协调服务器将更新的策略分发到 tailnet 中的节点。

步骤5 :验证您的连接 

#检查您是否可以从个人 Tailscale 计算机(Windows、macOS 等)对新子网路由器的 Tailscale IP 地址执行 ping 操作。您可以在管理控制台中找到 Tailscale IP ,或者在子网路由器上运行此命令。

tailscale ip -4

步骤6 :使用来自其他计算机的子网路由 

#Windows、macOS、iOS 和 Android 上的客户端将自动选择您的新子网路由。

#对于 Linux 客户端,只有那些使用--accept-routesflag 的客户端才会发现新路由,因为默认情况下仅使用Tailscale 100.x 地址。通过运行以下命令启用此功能:

sudo tailscale up --accept-routes

#更新子网路由 

#要稍后更新子网路由,请对新路由执行步骤 2 至 5。

在管理控制台的第 3 步中,您在第 2 步中不再包含的先前启用的路由将不再显示为广告,如路由右侧的图标所示。您可以选择完全删除这些路由,或者如果您打算将来重新通告它们,则可以将它们保持启用状态。

子网设置模式

可选:将 DNS 查找路由到内部 DNS 服务器 

您可以将Tailscale IP 添加到公共 DNS 记录,因为只有经过身份验证的网络用户才能访问 Tailscale IP。但是,如果您希望在子网上使用内部 DNS 服务器,则可以通过在管理控制台中配置拆分 DNS 来实现。

可选:设置子网路由器故障转移 

在某些定价计划中,您可能有资格设置子网路由器故障转移(也称为高可用性子网路由器),以确保即使一台路由器离线,您的网络也可以连接。有关更多信息,请参阅有关子网路由器故障转移的文章。


OpenWrt 编译 LuCI ---> Applications 添加插件应用说明

(本文摘自恩山论坛 https://www.right.com.cn/forum/thread-344825-1-1.html ,感谢版主辛劳付出) make menuconfig  进入定制界面 进入编译选项配置界面,.按照需要配置.( ‘*’ 代表编入固件,‘M’ 表示编译成...