本文示例的内网服务器即:本地MAMP;公网服务器即:阿里云。

一、MAMP 创建 New host

  1. 创建一个新主机,假设你的主机名称为 myfrp.bluesdream.com

  2. 创建 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阿里云 系统架构不同,因此需要下载两份。

三、公网服务器配置

  1. frp_0.33.0_linux_amd64 解压后的内容放到阿里云上,例如 /web/frps 目录。
  2. 修改 frps.ini 文件:
[common]
# 与客户端绑定的进行通信的端口
bind_port = 7000
# kcp 绑定的是 udp 端口
kcp_bind_port = 7000
# 自定义客户端认证密钥,这是一个明文的 Token
token = myToken
# 通过自定义域名访问部署于内网的 web 服务
# 有时想要让其他人通过域名访问或者测试我们在本地搭建的 web 服务
# 但是由于本地机器没有公网 IP 无法将域名解析到本地的机器
# 通过 frp 就可以实现这一功能
vhost_http_port = 8000
  1. 启动 frps:
./frps -c frps.ini

四、内网服务器配置

  1. frp_0.33.0_darwin_amd64 解压后的内容放到本机指定位置,例如 /web/frpc 目录。
  2. 修改 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
  1. 启动 frpc:
./frpc -c frpc.ini

五、开放公网服务器端口

  1. 登录阿里云
  2. 进入安全组中
  3. 开放 frps 和 frpc 所用到的 70008000 端口

Tips:以上端口均为示例,可根据自身需求调整。

六、设置公网服务器 Nginx 代理

  1. 修改 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;
    }
}
  1. 重启 Nginx:
systemctl restart nginx

Tips:至此配置完毕,拿出抓机访问 myfrp.bluesdream.com 便可以访问到内网测试页。

七、设置 frps 随系统启动

Tips:访问正常后再配置此项。

  1. /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
  1. 启动命令
# 启动 frps
systemctl start frps

# 随系统启动
systemctl enable frps
  1. 退出 frps
# 查找出对应进程ID
ps -aux|grep frp| grep -v grep

# 关闭进程
kill -9 进程ID

六、参考资料:

frp 说明文档

感谢您的阅读,本文由 蓝色梦想 版权所有。如若转载,请注明出处:蓝色梦想 - FRP 内网穿透