使用 FRP 反向代理实现 Windows 远程连接

简介:

互联网普及率的日渐攀升与 IPv4 资源的持续减少,现在大部分家庭宽带都不会分配公网 IP ,这使一些网络应用的实现多了些困难,像个人的 NAS 和一些智能家居设备。对于分配公网 IP ,各地运营商的态度也不同,有的去找客服反应可以要一个公网 IP ,还有些则直接告诉你每年多少钱。这些情况在 IPv6 普及之前都不会改善。

前几天看到了人民网的一条新闻:阿里云联合三大运营商全面提供IPv6服务。虽然现在网上有部分人对中国大力发展 IPv6 的目的持怀疑态度,认为是出于监管的目的,但我对此还是很支持的。首先我是很爱国的,按现在的话说叫“小粉红”,这是精神层面的原因。其次是网络安全问题,这是本届政府的战略思想, IPv4 的发展我们没赶上,资源都在美国佬手中,我们是受制于人的,虽说没像中兴一样。还有就是互联网发展的势头太猛,中国是互联网大国,互联网+的国策一直推进,各种物联网设备激增,像工业数据采集和智能家居设备,这都需要大量的 IP 地址。

人民网北京6月21日电(记者孟哲)IPv6作为下一代互联网的技术基础,对物联网、车联网、人工智能等新兴产业的发展有着重大影响。昨日,阿里云宣布联合三大运营商全面对外提供IPv6服务,希望能在2025年前帮助中国互联网真正实现“IPv6 Only”。

阿里云联合三大运营商全面提供IPv6服务

什么是 FRP

FRP (Fast Reverse Proxy) 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP , UDP , HTTP , HTTPS 协议。下载https://github.com/fatedier/frp/releases

(说到这里,我的“互联网传输助手”也是一款反向代理应用,用于在互联网内安装此应用的设备间传输数据。配合“互联网传输助手-服务”程序,未分配公网 IP 的设备也可收发数据。“互联网传输助手-服务”程序我暂时没有发布,因为有时会出现传输数据丢失的情况,不知道是网络的原因还是其他,待我解决了再说。)

准备工作

1. 一台拥有公网 IP 的设备(云服务器、VPS ……)

这就是一台反向代理服务器,作为外网设备访问内网设备的一座桥梁。

2. 域名(可选)

如果你不想输入一大串 IP 地址的话,买个好记的域名吧。

安装 FRP

这里反向代理服务器使用的是阿里云的云服务器,安装 Windows Server 2016 Datacenter 。内网要远程连接的设备安装的是 Windows 10 1803 。如果使用的是 Linux 系统的服务器,只是 FRP 的安装过程不同,可以百度一下其他 FRP 的文章进行参考。考虑到如果只是用服务器进行反向代理的话,没有必要购买 Windows 服务器,因为相比于 Linux ,运行 Windows 的配置要高一些,价格也更贵一些。

下载链接在文章的开头已经给出,根据服务器的系统和处理器类型选择,这里选择 frp_0.20.0_windows_amd64.zip ,下载完成后解压。

1

服务器(frps)

  1. 首先要配置一下入方向的安全组规则,需要穿透的端口得放行,我这里直接开放了一个端口范围,一劳永逸,各位按需开放即可。2
  2. 接下来配置一下设置,解压后有两个配置文件,一个是 frps.ini 另一个是 frps_full.ini 。 frps_full.ini 是全配置,里面所有的配置都有,玩法很多,各位自行研究,这里只挑几个有用的。将下面配置代码复制到 frps.ini 后保存。控制台可以输入“服务器IP:端口号”进行访问,如“1.2.3.4:7500”。

    [common]
    bind_port = 7000 ;要绑定的端口
    
    dashboard_user = admin ;控制台的用户名
    dashboard_pwd = password ;控制台的密码
    dashboard_port = 7500 ;控制台的端口
  3. 然后把配置文件 frps.ini 与程序 frps.exe 复制到服务器。
  4. 最后使用 cmd 或 power shell 切换到相应目录运行即可

    frps -c frps.ini

    power shell 要使用

    .\frps.exe -c frps.ini

内网设备(frpc)

  1. 首先配置一下 frpc.ini

    [common]
    server_addr = 1.2.3.4 ;服务器的 IP
    server_port = 7000 ;服务器上设置的服务绑定端口
    
    [RDP] ;这个是反向代理的名称,可以随意设置
    type = tcp ;RDP 是 TCP 协议的
    local_ip = 127.0.0.1 ;本机 IP
    local_port = 3389 ;远程桌面的默认端口
    remote_port = 7001 ;外网访问的端口
  2. 然后把配置文件 frpc.ini 与程序 frpc.exe 复制到内网设备。
  3. 最后使用 cmd 或 power shell 切换到相应目录运行即可

    frpc -c frpc.ini

    power shell 要使用

    .\frpc.exe -c frpc.ini

内网设备开启远程桌面

右击“此电脑”,选择“系统”——“远程设置”——“允许远程连接至此电脑”

3

运行远程桌面

在小娜或运行中输入“mstsc”或“远程桌面连接”,“计算机”中输入“服务器 IP:外网访问端口”,如“1.2.3.4:7001”。不出意外的话,是可以从外网访问到内网设备的。

4

绑定域名

  1. 这里域名的服务商是阿里云(万网),在域名控制台中对相应的域名选择“解析”。跳转到云解析界面后点击“添加记录”。我们需要添加一条类型为 A 的记录。记录值为服务器 IP。5
  2. 配置 frpc.ini 。加一行 custom_domains = xxx.yourdomain.xxx 。如

    [RDP] ;这个是反向代理的名称,可以随意设置
    type = tcp ;RDP 是 TCP 协议的
    local_ip = 127.0.0.1 ;本机 IP
    local_port = 3389 ;远程桌面的默认端口
    remote_port = 7001 ;外网访问的端口
    custom_domains = xxx.yourdomain.xxx

这样就能使用 “你的域名:端口” 进行远程桌面连接了。

总结

FRP 的玩法很多,如果你的路由器是智能路由器的话,可以将 FRP 部署到你的路由器上,也可以搭建 NAS ,甚至将内网部署的 WEB 应用映射到外网(当然,在国内这是违法的,有条件的话还是要备案一下)等等。 但体验指数上完完全全取决于你的云服务器宽带。 内网穿透,反向代理,都只是弥补没有公网 IP 的遗憾罢了。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
5月前
|
网络协议 Linux 网络安全
Windows远程连接centos7图形化界面,安装xrdp
Windows远程连接centos7图形化界面,安装xrdp
147 0
|
8月前
|
JSON Linux 网络安全
【全面解析】Windows 如何使用 SSH 密钥远程连接 Linux 服务器
【全面解析】Windows 如何使用 SSH 密钥远程连接 Linux 服务器
404 2
|
安全 网络安全 C++
基于Windows下VSCode安装及安装相关插件通过SSH协议远程连接服务器详细方法(一)
基于Windows下VSCode安装及安装相关插件通过SSH协议远程连接服务器详细方法
348 0
基于Windows下VSCode安装及安装相关插件通过SSH协议远程连接服务器详细方法(一)
|
3天前
|
安全 Unix Linux
Windows如何远程连接服务器?服务器远程连接图文教程
服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调,任何计算机的运行离不开操作系统,服务器也一样,服务器操作系统主要分为四大流派:Windows Server、Netware、Unix和Linux。今天驰网飞飞将和你分享Windows server远程连接图文教程,希望可以帮助到你
16 4
Windows如何远程连接服务器?服务器远程连接图文教程
|
1月前
|
NoSQL 网络协议 MongoDB
Windows公网远程连接MongoDB数据库【无公网IP】
Windows公网远程连接MongoDB数据库【无公网IP】
|
3月前
|
Ubuntu Unix Linux
什么是Linux,如何在Windows操作系统下搭建Linux环境,远程连接Linux系统
什么是Linux,如何在Windows操作系统下搭建Linux环境,远程连接Linux系统
|
4月前
|
负载均衡 应用服务中间件 Linux
Nginx安装Windows、Linux | 正向代理、反向代理、负载均衡
Nginx安装Windows、Linux | 正向代理、反向代理、负载均衡
94 0
|
4月前
|
网络协议 安全 Linux
无公网IP环境Windows系统使用VNC远程连接Deepin桌面
无公网IP环境Windows系统使用VNC远程连接Deepin桌面
|
4月前
|
网络协议 NoSQL MongoDB
通过内网穿透实现在无公网IP下,Windows远程连接MongoDB数据库
通过内网穿透实现在无公网IP下,Windows远程连接MongoDB数据库
|
8月前
|
网络协议 NoSQL MongoDB
在外Windows远程连接MongoDB数据库【无公网IP】
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 简单几步实现MongoDB远程访问。
289 0