1、背景
在开发时,经常会碰到需要用到公网域名的情况,大概可以分成 2 种情况:
一种是想将自己本地开发的成果给别人看下,就需要发布到公网上;
一种是像微信开发这种,要求有公网地址才能够完成调试。
如果只是临时用一下却要买个 VPS 然后在上面布署就很不方便了。使用 frp 做内网穿透就是要解决这2个问题,它可以将本地直接映射到公网,省去了在服务器上布署的麻烦。2、客户端配置,客户端下载地址(使用最新版本)。https://github.com/fatedier/frp/releases 。选择:frp_0.42.0_windows_amd64.zip 。如图1
3、下载后,需要信任此文件,杀软会清除其中的文件,需要添加信任。解压至:C:\frp_0.42.0_windows_amd64 。如图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
- 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
- C:\frp_0.42.0_windows_amd64>.\frpc -c .\frpc.ini
- 2022/05/11 13:38:31 [service.go:349] [9199f80513ab1df9] login to server success, get run id [9199f80513ab1df9], server udp port [0]
- 2022/05/11 13:38:31 [proxy_manager.go:144] [9199f80513ab1df9] proxy added: [chengdu-wangqiang-object-local]
- 2022/05/11 13:38:31 [control.go:181] [9199f80513ab1df9] [chengdu-wangqiang-object-local] start proxy success
8、编辑 Nginx 配置文件,添加 listen 8001; ,8001 为 frpc.ini 中配置的本地服务端口。重新加载配置。如图5
- server {
- listen 8001;
- listen 443 ssl;
- server_name x.local;
- ...
- }