文章目录
  • abstract
  • 异地组网相关技术
  • VNP技术
  • 技术

  • 无公网ip设备间的远程桌面控制
  • 同一个局域网内的设备远程桌面
  • 不同局域网内设备间的远程桌面
  • 1. 借助公网ip和远程桌面协议 (Remote Desktop Protocol, RDP)
  • 2. 使用虚拟专用网络 (VPN)👺
  • 3. 使用第三方远程桌面软件
  • 总结
  • 虚拟局域网组网方案👺
  • TailScale
  • Zerotier
  • 两种异地组网方案对比
  • ZeroTier
  • 优点
  • 缺点
  • Tailscale
  • 优点
  • 缺点
  • 比较
  • 使用场景
  • 总结
  • 使用Tailscale 组网
  • 内网穿透和异地组网远程访问方案
  • 内网穿透(NAT Traversal)
  • 特点:
  • 技术:
  • 虚拟专用网(VPN)
  • 特点:
  • 技术:
  • 比较
  • 对比总结:
  • 安全措施👺
  • 多次尝试失败后冻结账户
  • 安全策略组设置
  • 命令行设置


abstract

  • 介绍如何对没有公网ip的两台计算机间组网,以及创建远程桌面连接控制
  • 以及方便实现虚拟组网(基于VPN)的方案,可以帮助我们将局域网的操作近乎透明地安全地应用到被组网的异地设备上,帮助我们更好地管理私人设备以及一些远程协助控制

异地组网相关技术

VNP技术

虚拟专用网络(Virtual Private Network,简称VPN)是一种网络技术,它允许在公共网络(如互联网)之上创建一个安全且私密的连接,以达到像局域网(LAN)一样的效果。通过使用隧道技术和加密手段,VPN能够保护数据的隐私性和完整性,防止中间人攻击和监听。

以下是VPN技术的一些关键特性:

  1. 隧道技术(Tunneling)
  • 隧道技术将数据封装在另一个协议的数据包内,使其在公共网络上传输。常见的隧道协议包括PPTP(Point-to-Point Tunneling Protocol)、L2TP(Layer 2 Tunneling Protocol)、IPsec(Internet Protocol Security)和SSL/TLS(Secure Sockets Layer/Transport Layer Security)。
  1. 加密和解密(Encryption & Decapsulation)
  • 数据在发送前会被加密,以确保数据在传输过程中的安全性。到达目的地后,数据会被解密或解封装,以便接收方读取原始信息。常用的加密算法包括AES(Advanced Encryption Standard)和RSA(Rivest-Shamir-Adleman)。
  1. 密钥管理(Key Management)
  • 密钥用于加密和解密数据。有效的密钥管理策略确保了密钥的安全交换和存储,防止未经授权的访问。
  1. 身份验证(Authentication)
  • 用户和设备的身份验证是VPN的重要组成部分,以确保只有授权用户才能接入网络。这通常涉及用户名/密码、数字证书或其他形式的多因素认证。
  1. 网络地址转换(NAT)
  • 当数据包穿越不同网络时,NAT可以改变数据包的目标和源IP地址,以便正确地路由数据。
  1. 动态地址分配(Dynamic Address Allocation)
  • VPN客户端可能会从VPN服务器获取一个内部网络的动态IP地址,以便在虚拟网络中与其他设备通信。
  1. 负载均衡和故障切换(Load Balancing and Failover)
  • 多个VPN服务器可以分担负载,并在某个服务器发生故障时提供冗余连接。
  1. 策略控制(Policy Control)
  • 管理员可以通过策略来控制哪些流量应通过VPN隧道,哪些可以直接通过公共网络。

VPN技术广泛应用于企业和个人场景中,企业使用它来允许远程员工访问内部网络资源,而个人则可能使用它来保护自己的隐私,绕过地理限制,或者访问受限的内容。

在中国等国家,运营VPN服务需要遵守当地的法律法规并获得相应的许可。

无公网ip设备间的远程桌面控制

这里主要讨论两台windows系统上远程桌面图形化操控(linux等主打命令行的系统一般用ssh来远程连接就够用了)

同一个局域网内的设备远程桌面

在局域网下(设备有没有公网ip不影响),我们有时候会用到远程桌面控制,比如实验室或着办公室里的电脑,在教室上课时远程连接进行演示(许多软件和环境就不用在教室电脑里再配置一次)

通常,两台windows设备使用远程控制很简单(不过有系统版本的要求,一般要求被控端至少是专业版,不过也有家庭版补丁的方案),启用远程桌面及其连接可以参考:

不同局域网内设备间的远程桌面

如果是两个不同局域网内的两个设备(相关设备没有公网ip,就无法直接连接到互联网上),那么使用局域网方式的连接方法就会失效

如果的被控机拥有一个公网ip(可能是ipv4或ipv6,后者数量充足,但是鉴于安全性,往往不会默认放行常用服务端口)

在不讨论设置安全措施的情况下,理论上可以利用公网ip以及登录凭证直接连接;但是申请公网ip有时并不容易,我们也可以用别的方法

非局域网内使用远程桌面控制的方案通常涉及通过互联网访问位于不同地理位置的计算机。这类解决方案通常需要考虑安全性、稳定性和易用性。

以下是几种常见的方法:

1. 借助公网ip和远程桌面协议 (Remote Desktop Protocol, RDP)

Windows 提供的 RDP 是一种常用的远程桌面解决方案。

  • 步骤
  1. 在目标计算机上启用远程桌面。
  2. 在路由器上设置端口转发,将远程桌面端口(默认3389)指向目标计算机的IP地址。
  3. 通过公共IP地址和端口号从远程计算机连接。
  • 安全性建议
  • 使用强密码。
  • 修改默认端口。
  • 使用VPN(虚拟专用网络)来加密连接。
2. 使用虚拟专用网络 (VPN)👺

VPN 提供安全的连接,可以将远程计算机加入到同一个虚拟局域网内。

  • 步骤
  1. 在路由器或专用VPN服务器上配置VPN。
  2. 在远程计算机上安装并配置VPN客户端。
  3. 连接到VPN后,使用局域网IP地址进行远程桌面连接。
  • 优点
  • 高安全性:VPN加密流量。
  • 方便:无需修改远程桌面端口。
  • 缺点:
  • 组建虚拟局域网可以完成各种各样(大多数)局域网内可以做的事,不仅仅是远程桌面,远程开发相关的SSH等都可以用;当然虚拟局域网内的设备一般都要能够联网才行
  • 简单的做法是利用第三方服务组建虚拟局域网,但是组建虚拟局域网会占用服务提供商一定的资源,一般有一定的额度或者限制
3. 使用第三方远程桌面软件

很多第三方软件提供跨互联网的远程桌面控制功能,并且大多无需手动配置端口转发。

虽然支持的特性

  • 常见软件
  • TeamViewer:易用性高,支持多平台,但免费版本对商业用途有限制。
  • AnyDesk
  • QQ远程协助功能,可以两个设备分别登录一个qq号,互为好友,就可以请求远程控制
  • 向日葵
  • todesk
  • 步骤
  1. 在目标计算机和控制端计算机上安装软件。
  2. 使用软件提供的ID和密码进行连接。
  • 优点
  • 易用性:设置简单,无需网络配置。
  • 多平台支持:支持Windows、macOS、Linux等。
总结

非局域网内使用远程桌面控制的方案多种多样,选择合适的方案需要考虑具体的使用场景和安全需求。通过RDP、VPN、第三方软件或云桌面服务,都能实现高效、安全的远程桌面控制。

虚拟局域网组网方案👺

  • 将不同网络内的设备组建成虚拟局域,就可以方便很多局域网内能实现的功能在不同网络下的设备间实现
  • 那么如何组网能够满足需求?常见的方案有以下几种(他们有很丰富的功能,普通用户不需要了解全部特性,大部分局域网能用做的,用tailscale组网后也基本都能做
  • 我们可以使用tailscale提供的ip地址
  • 或者启用了网络发现等功能也可以用计算机名来访问(资源管理器中可能扫描不到,但是可以用计算机名代替ip地址用于ssh的连接等操作))
TailScale
  •  Tailscale · Best VPN Service for Secure Networks
  • 其中Tailscale at Home套餐是免费的,能够满足基本的组网需求,简单易用,UI美观
  • 组网十分简单,开箱即用,各设备登录好后直接就可以构成虚拟局域网,远程桌面立即可用,smb共享文件夹也是没什么问题(但是毕竟要经过服务器)
Zerotier

两种异地组网方案对比

ZeroTier和Tailscale是两种流行的虚拟专用网络(VPN)解决方案,专门设计用于简化跨互联网的网络连接。它们都提供了易用的VPN配置和管理,但在功能、实现方式和使用场景上有所不同。以下是对这两者的详细比较:

ZeroTier
优点
  1. 去中心化架构:ZeroTier采用去中心化架构,使得网络更具弹性和冗余。
  2. 高性能:ZeroTier通常具有较低的延迟和高带宽,适合需要高性能的应用场景。
  3. 广泛的设备支持:支持Windows、macOS、Linux、iOS、Android以及一些路由器和嵌入式设备。
  4. 强大的网络功能:支持自定义路由、IP分配、广播等高级网络功能。
  5. 开源:核心协议和部分客户端是开源的,允许社区贡献和审核代码。
缺点
  1. 复杂性:对于非技术用户来说,配置和管理可能有一定的复杂性。
  2. 管理界面:尽管功能强大,但管理界面可能不如一些商业解决方案直观。
Tailscale
优点
  1. 易用性:非常注重用户体验,安装和配置非常简单,特别适合个人用户和小型团队。
  2. 自动配置:通过OAuth与身份提供商(如Google、Microsoft)集成,实现自动节点发现和配置。
  3. 点对点连接:默认情况下,Tailscale建立直接的点对点连接,减少中转延迟。
  4. 安全性:所有流量端到端加密,并且采用现代加密技术。
缺点
  1. 中心化依赖:依赖于Tailscale的控制服务器进行节点管理和连接建立,如果服务器不可用,可能会影响连接。
  2. 免费限制:免费版本对节点数量和功能有一定限制,需要订阅高级版本以获得更多功能。
比较

特性

ZeroTier

Tailscale

架构

去中心化

中心化

协议

自有协议


易用性

复杂度较高

易用,适合非技术用户

设备支持

广泛,支持多种操作系统和设备

支持常见操作系统

性能

高性能,适合需要低延迟的应用

,性能优异

安全性

强,支持自定义网络规则

强,使用现代加密技术

开源

核心协议和部分客户端开源

非开源

管理

强大的网络管理功能

简单直观的管理界面

免费限制

免费版本功能较全面

免费版本有节点数量限制

使用场景
  • ZeroTier:适合需要构建复杂网络拓扑、进行高级网络配置、以及对网络性能有较高要求的企业和技术团队。
  • Tailscale:适合个人用户、小型团队以及需要快速部署、安全性高且易于管理的场景。
总结

ZeroTier和Tailscale各有优缺点,选择哪一个主要取决于具体的需求和使用场景。如果需要高度可定制的网络功能和去中心化架构,ZeroTier可能更合适;而如果追求易用性、高安全性和基于现代协议的连接,Tailscale则是不错的选择。

使用Tailscale 组网

  • TailScale 非常易用使用  Docs · Tailscale Docs
  • 支持几乎所有平台的设备组成虚拟局域网
  • 一般在电脑端之间使用
  • 加入移动设备组网比如手机也可以,而Android端您默认是要从google play下载安装,也可以通过F-droid市场来安装(下载F-Droid应用(官网或者github),更新国内源,下载TailScale android app,详情参考其他资料)

内网穿透和异地组网远程访问方案

内网穿透(NAT Traversal)和异地虚拟局域网(异地组网,通常通过VPN实现)是两种不同的网络技术,它们分别针对不同的网络需求和场景。下面将对比这两种技术的主要特点和适用场景:

内网穿透(NAT Traversal)
特点:
  • 主要功能:内网穿透技术主要用于让处于私有网络(内网)中的设备或服务能够被互联网上的其他设备访问。它通过在防火墙或NAT设备上进行端口映射或使用类似UPnP的技术来实现。
  • 适用场景:适合于需要从互联网访问位于内网的服务器、游戏主机、摄像头等设备的情况,比如远程桌面、在线游戏、视频监控等。
  • 安全性:一般而言,内网穿透的安全性较弱,因为开放端口可能增加被攻击的风险。因此,通常需要结合其他安全措施,如防火墙规则、访问控制列表(ACLs)和加密。
  • 灵活性:内网穿透提供了一定程度的灵活性,允许从任何地方访问内网资源,但是其可用性受到互联网环境和NAT设备配置的影响。
技术:
  • 常用的技术包括端口转发、UPnP、PMP(Port Mapping Protocol)、STUN(Session Traversal Utilities for NAT)、TURN(Traversal Using Relays around NAT)和ICE(Interactive Connectivity Establishment)。
虚拟专用网(VPN)
特点:
  • 主要功能:异地组网通常指的是通过VPN技术将多个物理上分离的局域网(LANs)连接成一个逻辑上的单一网络,使得这些网络中的设备能够像在同一局域网中一样互相通信。
  • 适用场景:适合于企业或组织在不同地点之间建立安全的网络连接,如总部与分支办公室之间的数据同步、远程办公、云资源访问等。
  • 安全性:异地组网通常具有较高的安全性,因为它依靠加密的隧道技术来保护数据在互联网上的传输,同时采用严格的身份验证和访问控制机制。
  • 稳定性:由于采用了专业的网络设备和协议,异地组网的连接通常更加稳定和可靠,尤其是在使用专有线路或MPLS(Multiprotocol Label Switching)等技术时。
技术:
  • 包括各种类型的VPN,如IPsec VPN、SSL/TLS VPN、OpenVPN、L2TP/IPsec、PPTP等。
比较

特性

IPSec VPN

SSL VPN

MPLS VPN

ZeroTier

Tailscale

安全性






易用性

复杂

简单

复杂

简单

非常简单

性能

较高

中等




成本






管理

需专业知识

易于管理

需专业知识

易于管理

非常易于管理

部署灵活性

中等





对比总结:
  • 安全性:异地组网通常比内网穿透更安全,因为它提供了端到端的加密和更严格的访问控制。
  • 灵活性与稳定性:内网穿透可能提供更多的灵活性,但稳定性较低,而异地组网虽然可能需要更多配置和管理,但提供更稳定的连接。
  • 成本:内网穿透可能成本更低,因为它通常不需要额外的硬件投资,而异地组网可能需要购买和维护专业网络设备。
  • 复杂度:内网穿透的配置相对简单,而异地组网可能需要更复杂的网络规划和管理。

在选择使用哪种技术时,应考虑实际需求、安全性要求、成本预算和技术能力等因素。

安全措施👺

  • 规范的vpn服务商组建的虚拟局域网通常是安全的
  • 禁用Administrator账户(重要,win10后默认情况下是禁用的)
  • 如果您启用了,可以使用管理员权限powershell执行disable-LocalUser administrator可以关闭
  • 为账户设置强密码
  • 更改映射远程桌面的端口
多次尝试失败后冻结账户
安全策略组设置
  • 可以在本地安全策略(secpol.msc)中修改
命令行设置
  • 使用命令行net accounts修改更方便:
PS C:\Users\cxxu\Desktop> net accounts
Force user logoff how long after time expires?:       Never
Minimum password age (days):                          0
Maximum password age (days):                          42
Minimum password length:                              0
Length of password history maintained:                None
Lockout threshold:                                    3
Lockout duration (minutes):                           10
Lockout observation window (minutes):                 10
Computer role:                                        WORKSTATION
The command completed successfully.
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

要通过命令行设置账户锁定阈值(account lockout threshold),可以使用net accounts命令。账户锁定阈值是指在达到一定次数的失败登录尝试后,账户将被锁定的次数。

以下是设置账户锁定阈值的步骤:

  1. 打开命令提示符:以管理员身份运行命令提示符。
  2. 使用net accounts命令:输入以下命令来设置账户锁定阈值:
net accounts /lockoutthreshold:<number>
  • 1.

其中,<number>是指允许的最大失败登录尝试次数。例如,若要设置阈值为3次,则输入以下命令:

net accounts /lockoutthreshold:3
  • 1.
  1. 查看当前设置:您还可以使用以下命令查看当前的账户锁定策略:
net accounts
  • 1.

该命令将显示包括账户锁定阈值在内的各种账户策略。

  1. 其他相关命令
  • 设置锁定持续时间(账户被锁定后多久自动解锁):
net accounts /lockoutduration:<minutes>
  • 1.

例如,设置为30分钟:

net accounts /lockoutduration:30
  • 1.
  • 设置复位时间(锁定计数器重置时间):
net accounts /lockoutwindow:<minutes>
  • 1.

例如,设置为30分钟:

net accounts /lockoutwindow:30
  • 1.

这样,您就可以通过命令行来设置和管理账户锁定策略了。请确保这些设置符合您的安全策略和需求。