本文示例的内网服务器即:本地MAMP;公网服务器即:阿里云。
一、MAMP 创建 New host
- 创建一个新主机,假设你的主机名称为
myfrp.bluesdream.com
-
创建
HTML/PHP
测试页,确保本地能够访问myfrp.bluesdream.com
Tips:尽量不要使用默认的 localhost 主机,如果非要用,首先确保 127.0.01 可以访问。
二、下载
下载 frp:https://github.com/fatedier/frp/releases
- Linux 对应:
frp_0.33.0_linux_amd64.tar.gz
- MAC 对应:
frp_0.33.0_darwin_amd64.tar.gz
Tips:由于
MAC
和阿里云
系统架构不同,因此需要下载两份。
三、公网服务器配置
- 将
frp_0.33.0_linux_amd64
解压后的内容放到阿里云上,例如/web/frps
目录。 - 修改
frps.ini
文件:
[common] # 与客户端绑定的进行通信的端口 bind_port = 7000 # kcp 绑定的是 udp 端口 kcp_bind_port = 7000 # 自定义客户端认证密钥,这是一个明文的 Token token = myToken # 通过自定义域名访问部署于内网的 web 服务 # 有时想要让其他人通过域名访问或者测试我们在本地搭建的 web 服务 # 但是由于本地机器没有公网 IP 无法将域名解析到本地的机器 # 通过 frp 就可以实现这一功能 vhost_http_port = 8000
- 启动 frps:
./frps -c frps.ini
四、内网服务器配置
- 将
frp_0.33.0_darwin_amd64
解压后的内容放到本机指定位置,例如/web/frpc
目录。 - 修改
frpc.ini
文件:
[common] # 公网服务器ip server_addr = 公网服务器IP # 服务端绑定的通信端口 server_port = 7000 # 与服务端密钥填写一致 token = myToken # 公网访问内部web服务器以http方式 [web] # 连接协议 type = http # 内网web服务的端口号 local_port = 80 # 所绑定的公网服务器域名 custom_domains = myfrp.bluesdream.com
- 启动 frpc:
./frpc -c frpc.ini
五、开放公网服务器端口
- 登录阿里云
- 进入安全组中
- 开放 frps 和 frpc 所用到的
7000
和8000
端口
Tips:以上端口均为示例,可根据自身需求调整。
六、设置公网服务器 Nginx 代理
- 修改
Nginx
配置文件,添加以下内容:
upstream dev.bluesdream.com { server 127.0.0.1:8000; } server { listen 80; server_name myfrp.bluesdream.com; location / { proxy_pass http://127.0.0.1:8000; } }
- 重启 Nginx:
systemctl restart nginx
Tips:至此配置完毕,拿出抓机访问 myfrp.bluesdream.com 便可以访问到内网测试页。
七、设置 frps 随系统启动
Tips:访问正常后再配置此项。
/lib/systemd/system/frps.service
,并添加以下命令
[Unit] Descript=frps service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/home/frps -c /home/frps/frps.ini [Install] WantedBy=multi-user.target
- 启动命令
# 启动 frps systemctl start frps # 随系统启动 systemctl enable frps
- 退出 frps
# 查找出对应进程ID ps -aux|grep frp| grep -v grep # 关闭进程 kill -9 进程ID
六、参考资料:
感谢您的阅读,本文由 蓝色梦想 版权所有。如若转载,请注明出处:蓝色梦想 - FRP 内网穿透
上海网站建设 说:
感谢分享
June 23, 2023 11:03 am
容添下 说:
麻雀虽小五脏俱全
June 5, 2021 5:53 pm