目录

Fragrans 的个人博客

记录精彩的程序人生

学习使用frp实现内网穿透如远程访问内网虚拟机

基本原理:

frp 分为服务端与客户端,前者运行在有公网 IP 的服务器上,后者运行在局域网内的设备上,服务端默认会先开放 7000 端口,然后客户端与其相连。

clipboard.png

同时客户端可以开启用于 ssh 的端口,与服务端的某个端口做映射,这样我们在终端访问服务端的端口时,会自动转发到客户端去。

clipboard0e2dd3a8.jpg

除了 RDP 端口之外,frp 还支持ssh、 web 端口来接收 http 访问。

1.需要的工具

  • 1)云服务器一台(vps)
  • 2)内网服务器一台(windows7,需要可以访问外网,我使用的是net模式 )
  • 3)Frp,可以到这里下载。
  • 4)域名一个(可选)

2.内网穿透实现RDP连接

首先需要到GitHub上去下载Frp的相关脚本。GitHub首页。下载时需要注意的是,服务器端和内网机器端下载的版本要相同,否则不能完成内网穿透。还有就是对应的系统也要正确,由于我的服务器是安装的CentOS7,处于内网的机器是windows7,所以服务器就需要下载Linux对应的,内网机器上下载widows7_x32系统的。

下载完成后就要对Frps和Frpc进行配置,服务器端用到的是Frps和Frps.ini这两个文件,客户端用到的是Frpc和Frpc.ini这两个文件。

3.配置服务器端

Frps.ini文件最初的配置是

[common]

bind_port = 7000

这行代码就指定了当服务器端启动Frp后监听的端口是7000端口,也就是内网和服务器进行交互的端口,可以修改为其他的端口。监听端口指定好以后就可以通过指令./frps -c frps.ini来启动Frp服务。

clipboard.png

则说明服务器端已经启动Frp服务,监听的端口是7000。阿里云服务器开启对应端口7000。

4.配置内网机器上的Frp服务

Frpc.ini的初始配置是

[common]

server_addr = 121.199.55.114

server_port = 7000

[rdp]

type = tcp

local_ip = 127.0.0.1

local_port = 3389

remote_port = 6000

server_addr是你公网服务器的公网IP,server_port为服务器端Frp监听的端口,必须与Frps.ini中的配置端口一致,否则无法连接到服务器,[rdp]部分是开启SSH的相关配置,其中type说明该配置的类型为tcp协议,local_ip为你内网机器的IP,可以填IP和可以填127.0.0.1,local_port是内网需要监听的端口,RDP服务需要指定的端口为3389端口,remote_port是你指定的需要映射到公网服务器上的端口,以后进行ssh连接就需要用到该端口。(如果内网机器为linux,使用ssh服务时,开启22端口,同时需在阿里云安全组开启6000端口访问)

执行

./frpc -c frpc.ini

这样我以后就可以通过服务器公网IP和6000端口来连接我的内网机器了(ssh)。

clipboard.png

内网穿透实现web服务(待续。。。)


标题:学习使用frp实现内网穿透如远程访问内网虚拟机
作者:Fragrans
地址:http://gsolo.xhtk.top/articles/2021/06/29/1624956265903.html