1、背景
在开发时,经常会碰到需要用到公网域名的情况,大概可以分成 2 种情况:
一种是想将自己本地开发的成果给别人看下,就需要发布到公网上;
一种是像微信开发这种,要求有公网地址才能够完成调试。
如果只是临时用一下却要买个 VPS 然后在上面布署就很不方便了。使用 frp 做内网穿透就是要解决这2个问题,它可以将本地直接映射到公网,省去了在服务器上布署的麻烦。

2、客户端配置,客户端下载地址(使用最新版本)。https://github.com/fatedier/frp/releases 。选择:frp_0.42.0_windows_amd64.zip 。如图1

图1

3、下载后,需要信任此文件,杀软会清除其中的文件,需要添加信任。解压至:C:\frp_0.42.0_windows_amd64 。如图2

图2

4、修改 frpc.ini ,上面是服务器配置,下面是你本机配置,原始配置如下

[common]
server_addr = 127.0.0.1
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

5、修改后的示例如下

[common]
server_addr = x.x.x.x
server_port = 5000
token = aaa

[chengdu-wangqiang-x-local]
type = http
local_ip = 127.0.0.1
local_port= 8001
custom_domains = chengdu-wangqiang-x-local.frp.x.top


6、启动frpc:frpc -c frpc.ini。如果是 Windows 用户,需要在 cmd 终端中执行命令。提示拒绝访问。打开 360 杀毒软件,在 360 恢复区中恢复 frp 的相关文件。再次运行,提示:登录服务器失败:授权失败。token = aaa 的值不正确,需要从服务端获取。如图3

图3

C:\Windows\system32>cd ..

C:\Windows>cd ..

C:\>cd frp_0.42.0_windows_amd64

C:\frp_0.42.0_windows_amd64>.\frpc -c .\frpc.ini
拒绝访问。

C:\frp_0.42.0_windows_amd64>.\frpc -c .\frpc.ini
2022/05/11 11:42:31 [E] [service.go:340] authorization failed
2022/05/11 11:42:31 [W] [service.go:128] login to server failed: authorization failed
authorization failed


7、修改之后,授权成功。如图4

图4


C:\frp_0.42.0_windows_amd64>.\frpc -c .\frpc.ini
2022/05/11 13:38:31 [I] [service.go:349] [9199f80513ab1df9] login to server success, get run id [9199f80513ab1df9], server udp port [0]
2022/05/11 13:38:31 [I] [proxy_manager.go:144] [9199f80513ab1df9] proxy added: [chengdu-wangqiang-object-local]
2022/05/11 13:38:31 [I] [control.go:181] [9199f80513ab1df9] [chengdu-wangqiang-object-local] start proxy success

8、编辑 Nginx 配置文件,添加 listen 8001; ,8001 为 frpc.ini 中配置的本地服务端口。重新加载配置。如图5

图5

server {
 listen 8001;
    listen 443 ssl;
    server_name x.local;
 ...
}

9、在浏览器打开网址:http://chengdu-wangqiang-x-local.frp.x.top/ ,响应 200。如图6

 

永夜