使用开源免费frp设置内网穿透,访问本地服务器(window版本)

frp

frp是一款免费开源的内网穿透工具.

能够实现远程桌面,文件传输,外网访问本地服务器等功能.

家里一些闲置的电脑或者折腾树莓派和虚拟机等本地服务的时候,用内网穿透可以轻松将其变为服务器.

github地址:

https://github.com/fatedier/frp/blob/master/README_zh.md

vps服务器

内网穿透的前提是需要一个带有公网ip的服务器,来实现和本地服务的监听和转发

参考以下文章

<<vultr选择服务器>>

服务端frp

1.查询架构

x64 是指CPU64位版本。

x86 是指CPU32位版本。

“x86_64”,简称为“x64”,即AMD64

arch

2.获取frp工具

wget下载

wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz

3.解压缩

tar -zxvf frp_0.22.0_linux_amd64.tar.gz

4.重命名文件夹为frp

cp -r frp_0.22.0_linux_amd64 frp

5.进入该文件夹

cd frp

6.查看文件

s结尾代表server(服务端)

c结尾代表client(客户端)

tree

root@frp:/var/frp/frp# tree

├── frpc

├── frpc_full.ini

├── frpc.ini

├── frps

├── frps_full.ini

├── frps.ini

└── LICENSE

7.修改frps.ini文件

vim frps.ini

8.编辑内容

[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 10080
vhost_https_port = 10443
字段 说明
bind_port 7000 客户端和服务端连接的端口
dashboard_port 7500 服务端仪表板的端口
token 12345678 客户端和服务端连接的口令
dashboard_user admin 打开仪表板页面登录的用户名
dashboard_pwd admin 打开仪表板页面登录和密码
vhost_http_port 10080 http反向代理端口
vhost_https_port 10443 https反向代理端口

9.保存后运行

./frps -c frps.ini

10出现如下内容,说明运行成功

2020/09/01 16:01:49 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
2020/09/01 16:01:49 [I] [service.go:172] http service listen on 0.0.0.0:10080
2020/09/01 16:01:49 [I] [service.go:193] https service listen on 0.0.0.0:10443
2020/09/01 16:01:49 [I] [service.go:216] Dashboard listen on 0.0.0.0:7500
2020/09/01 16:01:49 [I] [root.go:210] Start frps success

访问仪表盘

1.检测并开启本文中或者配置中所有涉及到的端口

22,443,7000,7500,10443,10080等等等

参考以下文章

<<Ubuntu防火墙安装、启用、配置、端口等>>

2.访问你的公网ip(服务器地址):

http://ip:7500

看到仪表盘说明成功了

客户端设置

本文使用window,且客户端和服务端frp版本要保持一致

1.下载地址:

https://github.com/fatedier/frp/releases/tag/v0.22.0

2.下载对应版本

frp_0.22.0_windows_amd64.zip

3.解压缩

C:\Users\dsx2016\Downloads\frp

├── frpc.exe

├── frpc.ini

├── frpc_full.ini

├── frps.exe

├── frps.ini

├── frps_full.ini

└── LICENSE

4.编辑文件frpc.ini

[common]
server_addr = ip地址
server_port = 7000
token = 12345678
[web]
type = http
local_port = 8080 
custom_domains=domain.com

[common]

参数和服务器一致,保持和服务端通信的认证和端口对接

server_addr为服务器公网ip

server_port为服务器通信端口,和服务端上述文件bind_port保持一致就行

token也和服务端一致

[web]

代理本地的服务

typehttp等协议

local_port为本地服务的端口

custom_domains为要代理的域名(通过网址访问本地服务),也可以是公网ip地址

5.运行文件

.\frpc.exe -c frpc.ini

同样看到如下信息即为正常

2020/09/02 00:19:31 [I] [service.go:205] login to server success, get run id [a01a7351eb05ed01], server udp port [0]
2020/09/02 00:19:31 [I] [proxy_manager.go:136] [a01a7351eb05ed01] proxy added: [web]
2020/09/02 00:19:32 [I] [control.go:143] [web] start proxy success

6.开启本地web

确认开启并且本地访问后,再尝试ip和域名远程访问

参考以下文章

<<使用http-server开启本地静态资源服务>>

7.访问本地web

此时访问

ip:10080

domain:10080

就可以访问本地的项目了

END.