前言
适用条件:无公网IPV4、IPV6的网络环境;域名后想隐藏端口的强迫症
个人建议:采用境外VPS(带宽较大,HK优先,延迟低)
搭建步骤
一、VPS搭建frps、Nginx Proxy Manager
二、家庭服务搭建frpc
三、域名托管A类型指向VPS IPV4地址
四、Nginx Proxy Manager配置反代
第一步:搭建frps、Nginx Proxy Manager
Frps
VPS:路径:/home新建一个
/frps和/npm


在frps中添加docker-compose.yml、frps.toml两个文件,并填写下方代码
docker-compose.yml
version: "3.5" services: frp: image: stilleshan/frps ports: - "7000:7000" networks: - nginx volumes: - /home/frps/frps.toml:/frp/frps.toml restart: always container_name: frp networks: nginx: external: true
frps.toml
bindAddr = "0.0.0.0" bindPort = 7000 #kcpBindPort = 7000 quicBindPort = 7000 vhostHTTPPort = 80 vhostHTTPSPort = 443 transport.maxPoolCount = 2000 transport.tcpMux = true transport.tcpMuxKeepaliveInterval = 60 transport.tcpKeepalive = 7200 transport.tls.force = false webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "admin" #需替换,可自定内容 webServer.password = "admin" #需替换,可自定内容 webServer.pprofEnable = false log.to = "./frps.log" log.level = "info" log.maxDays = 3 log.disablePrintColor = false auth.method = "token" auth.token = "12345678" #需替换,可自定内容 allowPorts = [ { start = 10001, end = 50000 } #frps放行端口段10001-50000 ] maxPortsPerClient = 8 #允许放行frpc端口数量,可修改 udpPacketSize = 1500 natholeAnalysisDataReserveHours = 168
cd /home/frps
docker compose up -d
然后就启动容器啦
Nginx Proxy Manager
version: "3.5" services: nginx: image: chishin/nginx-proxy-manager-zh:latest container_name: nginx ports: - "443:443" - "80:80" - "81:81" - "10222:10222" restart: always volumes: - /home/nginx/data:/data - /home/nginx/letsencrypt:/etc/letsencrypt environment: - TZ=Asia/Shanghai networks: - nginx networks: nginx: name: nginx
cd /home/nmp
docker compose up -d
部署后访问VPSIP:81即可
第二步:搭建frpc
搭建方式很多,本文使用Docker Compose搭建
同frps,为避免因 frpc.toml 文件的挂载,格式或者配置的错误导致容器无法正常运行并循环重启.请确保先配置好 frps.toml 后在执行启动


frpc.toml
serverAddr = "xx.xx.xx.xx" #你的VPS地址 serverPort = 7000 auth.method = "token" auth.token = "freefrp.net" #同frpc.toml中auth.token [[proxies]] name = "tcp_xxxxx" #自定义服务名称,可复制多个,但后续name、localPort必须不同 type = "tcp" #协议类型,常见为tcp,但也可为http等,详见项目地址 localIP = "192.168.1.2" #你的本地IP,若搭建在nas,则为nas的IP localPort = 5000 #你的本地服务web端口 remotePort = 12306 #你想反代出去的端口,可自定义,Nginx Proxy Manager中填写此端口 #数值范围为frps.toml中allowPorts放行端口段(本文10001-50000) [[proxies]] name = "web2_xxxxx" type = "https" localIP = "192.168.1.2" localPort = 5001 remotePort = 12306 [[proxies]] name = "tcp1_xxxxx" type = "tcp" localIP = "192.168.1.3" localPort = 22 remotePort = 22222
Docker Compose
services: # 服务定义 frpc: # 服务名称 image: stilleshan/frpc # 镜像来源 container_name: frpc # 容器名称 restart: always # 容器重启策略 privileged: true # 允许容器获得特权 network_mode: host # 宿主机网络模式 volumes: # 挂载卷 - /volume1/docker/AppData/frp/frpc.toml:/frp/frpc.toml # 映射配置文件存储路径
第三步:将二级域名DNS A类型解析至VPS的IP
域名解析
解析一个*给我们vps的这个IP

第四步:配置Nginx Proxy Manager
输入vps ipv4地址:81
打开后注册账号密码 进入web服务
默认账号:[email protected]
默认密码:changeme

申请证书

然后就可以访问了

评论