桦
发布于 2025-10-04 / 94 阅读
0
0

无公网v4/v6, FRP+NPM的公网反代(以emby为例)

#PT

前言

此方案需一台自有服务器支撑核心 FRP 穿透服务,若您不打算使用服务器,后续内容可暂不参考。

可搭配最近流行的emby+cms等网盘直链的emby使用。

亮点

  • 安全: 与传统的 FRP 端口穿透相比,在不暴露frp端口的情况下,安全反代服务,自动续签SSL证书

  • 快捷: 与 Tailscale 等服务相比,无需注册、无需下载客户端,全过程自建可控

  • 小巧: 在配置差的线路鸡能轻松搭载服务

整体框架

方案部署

采用docker-compose方式,安装 FRP 服务端 + Nginx Proxy Manager

version: "3.5"
services:
  frp:
    image: snowdreamtech/frps
    ports:
      - "7000:7000"
    volumes:
      - ./frp/frps.toml:/etc/frp/frps.toml
    restart: always
    container_name: frp
    networks: 
      - nginx
  nginx:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
      - "8888:8888"  # emby应用端口
    restart: always
    volumes:
      - ./nginx/data:/data
    environment:
      - TZ=Asia/Shanghai
    networks:
      - nginx
networks:
  nginx:
    name: nginx

Frp 服务端配置(frps.toml)

auth.token中的xxxxxxxxxx替换为自己的密钥token

bindPort = 7000
kcpBindPort = 7000
auth.method = "token"
auth.token = "xxxxxxxxxx"

NPM 配置

http://ip:81登陆

默认登录名和密码

Email:    [email protected]
Password: changeme

在域名DNS解析中添加自己的域名(以emby.mfmao.de为例)到服务器IP,然后配置NPM服务

FRP客户端配置

安装 FRP 客户端(这里我选择群晖套件版),具体frpc.toml参考配置如下

serverAddr = "xx.xx.xx.xx" # FRP服务端的服务器IP
serverPort = 7000
auth.method = "token"
auth.token = "xxxxxxxxxx"  # 自己的密钥token,与FRP服务端一致

[[proxies]]
name = "emby"
type = "tcp"
localIP = "192.168.1.2" # emby的本地IP
localPort = 8096  # 本地emby端口
remotePort = 8888 # 远程emby端口

测试

简单测试一下

访问http://ip:8888显示为拒绝连接

访问自己反代的域名(例如,https://emby.mfmao.de)就可以打开家庭局域网的emby客户端

相关阅读

C佬教程:Cane


评论