基本原理:
frp 分为服务端与客户端,前者运行在有公网 IP 的服务器上,后者运行在局域网内的设备上,服务端默认会先开放 7000 端口,然后客户端与其相连。
同时客户端可以开启用于 ssh 的端口,与服务端的某个端口做映射,这样我们在终端访问服务端的端口时,会自动转发到客户端去。
除了 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 服务。
则说明服务器端已经启动 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)。
内网穿透实现 web 服务(待续。。。)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于