内网穿透、远程桌面、VPN的理解

        最近在研究内网穿透的相关技术,然后回想起一些相关的技术,比如说要远程桌面公司的电脑,VPN连入内网等。然后想着在此处记录一下,各个的区别,这个纯粹是从技术层面的理解,此处不详细解释怎么去实现或者用什么工具去实现,此处只是从技术实现层面去记录我对这些功能的理解,希望通过简答白话文的方式记录,让没有多少技术知识的同学也能看明白这个技术到底是个什么东西,然后再去找相关的具体实现的资料,这样你具体动手起来做起来之前心里就会有一个整体宏观大致概念,这样就不会让你知其然不知其所以然。

1、内网穿透

        首选是内网穿透,内网穿透是什么意思呢,用技术性的语言说叫做反向代理技术,它允许你从任何位置访问一台复杂的网路环境中的机器。最简单的场景就是你在外面通过手机或者电脑可以连接到你家里的一台电脑上,这个就可以使用内网穿透技术来实现。目前内网穿透技术的原理是利用一个固定的公网IP的主机作为跳板机,让两个客户端建立起P2P连接,如果成功,就通过跳板机中转,将所有流量代理到内网中的主机上。大概意思就是你要实现内网穿透,需要要在你手中的设备和你要访问的设备上都要装一个东西,然后通过这个东西连接到外面一个固定的公网IP的服务器上去,然后你访问内网的那个设备的时候,就是通过外网的服务器转发到内网去。有点绕,我下面手工画个图,便于理解。

        从图中可以看出手机设备想要连接到家庭设备,交互逻辑是手机设备先连接到公网服务器,家庭设备也要连接到公网服务器,然后公网服务器会给这个两个设备在分配一个虚拟IP,然后手机设备想要访问家庭设备的话,他们通过各自的虚拟IP进行P2P连接,因为他们分配的虚拟IP已经处于一个局域网里面了。

        目前内网穿透的的解决方案有很多,目前比较多的的就是frp、Cloudflare Tunnel和ZeroTier。frp允许你将内网中的主机的端口号映射到公网的主机上,使用起来比较直接,但是其缺点就是主机和端口都需要单独配置,如果许多台设备组网会比较繁琐;此外这些端口都会暴露在公网上,安全性较差;另一个Cloudflare Tunnel,可以使用Cloudflare的节点进行中转,但是缺点和frp类似,在多台设备的时候比较麻烦;最后就是ZeroTier,这个是上面的逻辑图介绍的,目前用的比较多,而且是免费的,将所有的设备加入到同一个局域网里面即可。

2、远程桌面

        其实应该称之为跨网络的远程桌面,因为如果在同一局域网的话,通过对方的IP使用用户名和密码就可以进行远程桌面,但是大家都明白,一般的远程桌面有这么几个缺点

  • 需要对方电脑的账户名和密码
  • 需要对方电脑开启远程桌面连接设置和一些安全设置
  • 需要通过这个电脑的IP地址进行连接,跨网路就没办法了

目前市面上为了解决上面的这几个缺点,有一些产品可以直接解决这些问题,比如向日葵和teamview这种远程桌面工具,这种工具是不受用户电脑账户密码限制,也不需要去开启远程桌面设置,也不需要对方电脑的ip,只需要装个软件,用设备ID和验证码就可以轻松连接。这种方式的技术实现和内网穿透有点点类似,我没有详细的研究过这两款远程桌面的技术实现,但是大致核心还是需要一个公网的IP服务来进行访问的中转,被访问的设备方向代理到那个公网的IP服务上去。

3、VPN

        VPN已经出来了很多年了,其作用也是为了让两个不在同一局域网的网路能够联通,VPN不像上面两种,VPN是需要在目的设备网路的入网处建立一个VPN的服务器,然后我们在远程连接到这个目的网路的VPN服务器上,连接后,你的设备就在这个目的网路的局域网里面了,仿佛你本身已经在这个目的设备的地方操作了,平时在这个网路里面能连接的设备都可以连了。简单的流程图如下,方便理解:

上面的图可以看到,手机或者电脑,在公司外面通过VPN服务连接到公司内部网路,这个需要公司网路对外的公网IP,还需要暴露VPN对应的端口号。

4、三者对比

下面主要是针对通过外部网路直接访问目的网络里面的设备的功能的对比。

是否需要固定外网IP是否需要额外中转服务器是否需要安装客户端是否需要账户和密码
内网穿透不需要需要需要不需要
跨网远程桌面不需要需要需要不需要
局域网远程桌面需要不需要不需要需要
VPN需要不需要不需要需要

5、总结

        针对不同的场景可能咱们可以选择不同的方法,局域网远程桌面这种其实也不是很常用,为什么呢,因为如果就在局域网的话,那么你本人直接过去操作就可以了,不需要远程桌面,而且远程桌面还需要给你的登录账户和密码,这些都是隐私的东西,一般最好不对外泄露。VPN其实是比较适合在家远程办公的场景的,电脑带回家,然后连接VPN,就可以实现办公了,但是也有一些问题,就是公司必须要一个固定的IP,还必须要配一个VPN服务器,固定IP这个是越来越少了,很多宽带都不是固定外网IP了。特别是现在家庭网路一般都是变动的IP,不是固定的IP。如果是家里有装有智能设备或者有数据备份的设备,如NAS、FTP等,在外面就没办操作和访问,所以内网穿透这个是比较适合家庭场景下面的使用的,就像ZeroTier,可以使用免费的中转服务器实现内网穿透,如果你不放心你的数据会经过中转服务器。那你就自己买个云服务,自己搭建一个ZeroTier的中转服务器,这样就不怕的数据被中转服务器窃取了。

  • 28
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
1. 在华为防火墙上配置IPSec VPN 首先,在华为防火墙上配置IPSec VPN,以便与Ubuntu 20.04公网服务器建立安全连接。 1.1 创建IKE策略 IKE是IPSec的关键协议之一,用于建立安全的VPN隧道。在华为防火墙上,我们需要创建IKE策略来定义IKE协议的参数。 在命令行界面下,输入以下命令: [Huawei] ipsec ike proposal ike-proposal1 [Huawei-ike-proposal-ike-proposal1] encryption-algorithm aes-cbc-256 [Huawei-ike-proposal-ike-proposal1] integrity-algorithm sha1 [Huawei-ike-proposal-ike-proposal1] dh group14 该命令创建了一个IKE策略,指定了加密算法、完整性算法和Diffie-Hellman密钥交换组。这些参数应该与Ubuntu 20.04公网服务器上的设置相匹配。 1.2 创建IPSec策略 IPSec是用于加密数据的另一个重要协议。我们需要在华为防火墙上创建IPSec策略,以定义加密参数。 在命令行界面下,输入以下命令: [Huawei] ipsec proposal ipsec-proposal1 [Huawei-ipsec-proposal-ipsec-proposal1] esp encryption-algorithm aes-cbc-256 [Huawei-ipsec-proposal-ipsec-proposal1] esp integrity-algorithm sha1 该命令创建了一个IPSec策略,指定了加密和完整性算法。这些参数应该与Ubuntu 20.04公网服务器上的设置相匹配。 1.3 创建IPSec VPN 现在,我们可以使用上述IKE和IPSec策略创建IPSec VPN。 在命令行界面下,输入以下命令: [Huawei] ipsec vpn vpn1 [Huawei-ipsec-vpn-vpn1] ike proposal ike-proposal1 [Huawei-ipsec-vpn-vpn1] ipsec proposal ipsec-proposal1 [Huawei-ipsec-vpn-vpn1] remote-address 1.2.3.4 [Huawei-ipsec-vpn-vpn1] quit 该命令创建了一个名为vpn1的IPSec VPN,指定了IKE和IPSec策略,并将其绑定到Ubuntu 20.04公网服务器的公共IP地址。 2. 在Ubuntu 20.04公网服务器上配置IPSec VPN 接下来,在Ubuntu 20.04公网服务器上配置IPSec VPN,以便与华为防火墙建立安全连接。 2.1 安装StrongSwan StrongSwan是一个流行的开源IPSec VPN实现,我们将使用它来配置Ubuntu 20.04公网服务器。 在终端中,输入以下命令: $ sudo apt-get update $ sudo apt-get install strongswan 这将安装StrongSwan。 2.2 配置IPSec VPN 现在,我们需要配置StrongSwan以与华为防火墙建立IPSec VPN。 在终端中,打开/etc/ipsec.conf文件: $ sudo nano /etc/ipsec.conf 将以下内容添加到文件末尾: conn vpn1 keyexchange=ikev1 authby=secret ike=3des-sha1-modp1024 esp=aes256-sha1 left=2.3.4.5 # Ubuntu 20.04公网服务器的公共IP地址 leftsubnet=192.168.1.0/24 # Ubuntu 20.04公网服务器的本地子网 right=1.2.3.4 # 华为防火墙的公共IP地址 rightsubnet=192.168.2.0/24 # 华为防火墙的本地子网 auto=start 这将创建一个名为vpn1的IPSec连接,指定了IKE和IPSec参数,并将其绑定到Ubuntu 20.04公网服务器和华为防火墙的本地子网。 2.3 配置PSK 我们还需要为IPSec VPN配置预共享密钥(PSK)。 在终端中,打开/etc/ipsec.secrets文件: $ sudo nano /etc/ipsec.secrets 将以下内容添加到文件末尾: 2.3.4.5 1.2.3.4 : PSK "mysecretpassword" 这将为Ubuntu 20.04公网服务器和华为防火墙之间的IPSec连接配置PSK。 3. 测试IPSec VPN 现在,我们可以测试IPSec VPN是否正常工作。 在Ubuntu 20.04公网服务器上,输入以下命令以启动IPSec连接: $ sudo ipsec up vpn1 如果一切正常,您将看到以下输出: initiating Main Mode IKE_SA vpn1[1] to 1.2.3.4 generating ID_PROT request 0 [ SA V V V V V ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (184 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (184 bytes) parsed ID_PROT response 0 [ SA V V V V V ] received NAT-T (RFC 3947) vendor ID received XAuth vendor ID received DPD vendor ID received FRAGMENTATION vendor ID received unknown vendor ID: 1f:07:17:00:00:00:00:00:00:00:00:00:00:00:00:00 generating ID_PROT request 0 [ KE No NAT-D NAT-D ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (244 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (244 bytes) parsed ID_PROT response 0 [ KE No NAT-D NAT-D ] local host is behind NAT, sending keep alives generating ID_PROT request 0 [ ID HASH ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (100 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (68 bytes) parsed ID_PROT response 0 [ ID HASH ] IKE_SA vpn1[1] established between 2.3.4.5[2.3.4.5]...1.2.3.4[1.2.3.4] scheduling reauthentication in 10046s maximum IKE_SA lifetime 10586s generating QUICK_MODE request 2499452192 [ HASH SA No ID ID ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (188 bytes) received packet: from 1.2.3.4[500] to 2.3.4.5[500] (188 bytes) parsed INFORMATIONAL_V1 request 4026938035 [ HASH D ] received packet: from 1.2.3.4[500] to 2.3.4.5[500] (76 bytes) generating INFORMATIONAL_V1 response 4026938035 [ HASH D ] sending packet: from 2.3.4.5[500] to 1.2.3.4[500] (76 bytes) 这表示IPSec连接已成功建立。 现在,您可以从Ubuntu 20.04公网服务器上访问华为防火墙的本地子网,并从华为防火墙上访问Ubuntu 20.04公网服务器的本地子网。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值