frp内网穿透

客户端配置如下:

serverAddr = "公网ip地址"
serverPort = 7000 #公网链接端口
auth.token = "123456" #保持跟服务端一样

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

[[proxies]]
name = "web"
type = "http"    
localIP = "127.0.0.1"
localPort = 80                        
customDomains = ["域名或ip地址"]

[[proxies]]
name = "kinit-mysql-30"
type = "tcp"
localIP = "127.0.0.1"
localPort = 23306
remotePort = 33062

服务端配置如下frps:

bindPort = 7000
auth.token = "123456"
# 服务端仪表盘的端口, 可以用浏览器访问查看
webServer.addr = "0.0.0.0"
webServer.port = 7500
# 服务端仪表盘的用户密码
webServer.user = "admin"
webServer.password = "admin"
# 虚拟主机端口
vhostHTTPPort = 8081

设置完成之后打开公网服务器配置nginx选项

 
server {
    listen 80;
    server_name 域名;
    
    location / {
        proxy_pass http://127.0.0.1:8081;  # 转发到 frps 的 HTTP 代理端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

公网设置完成正常设置内网nginx

 
server {
    listen 80;
    server_name 域名;
    # 前端存放路径
    root /www/wwwroot/submit;
    index index.html;

    # 安全头
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    
    # 压缩
    gzip_static on;
    #brotli_static on;
    
    # 路由处理
    location / {
        try_files $uri $uri/ /index.html;
        # 禁止缓存HTML
        add_header Cache-Control "no-cache, no-store, must-revalidate";
    }
    # 后端代理路径
    location /prod-api {
        proxy_pass http://127.0.0.1:8080;  # 后端服务地址
        
        # 关键代理头设置
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    # 静态资源
    location ~* \.(?:js|css|png|jpg|jpeg|gif|ico|svg|woff2)$ {
        expires 1y;
        access_log off;
    }
}

配置完成需要设置启动(客户端跟服务端相同变更服务名):

 
#创建 FRP 服务文件
sudo vi /etc/systemd/system/frpc.service
服务端配置示例(frps.service)
[Service]
Type=simple
# 这里配置你的frp的安装目录
ExecStart=/mnt/frp/frp_0.61.2_linux_amd64/frpc -c /mnt/frp/frp_0.61.2_linux_amd64/frpc.toml
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit

[Install]
WantedBy=multi-user.target

#赋值权限
sudo chmod 644 /etc/systemd/system/frps.service
#重载 systemd 配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start frpc

# 设置开机自启
sudo systemctl enable frpc

# 检查状态
sudo systemctl status frpc

版权声明:
作者:lhylwl
链接:http://ye-w.cn/2025/04/15/51.html
来源:小凡笔记-我的技术记录
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>