前言:
此教程来的原因你们可能都想不到,居然是因为运营商,本人坐标山东,因为之前一些因素吧,我使用了frp穿透的方式来进行与家里的服务器进行通讯,frps与frpc链接的方式使用的tcp加上自定义的端口,无意间发现运营商搞事,居然非标准的80 443端口tcp协议都被限速了,非白名单的域名也限速。
基于上述的问题,所以我尝试了一些方法,找到了一些方案,具体内容我另开一个教程,这里只写wss的配置教程。
教程:
这里服务端和客户端,我都使用的是docker。
FRPS:
创建一个frps的服务端配置文件
bindAddr = "0.0.0.0"
bindPort = 38400
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "rsg"
webServer.password = "adminadmin"
auth.method = "token"
auth.token = "www.lxg2016.com"
这里的配置方式使用的是toml格式,所以服务端的配置文件名字是frps.toml
frps面板的用户名
webServer.user = ""
frps面板的密码
webServer.password = ""
客户端验证的token,可以理解为是个密码吧。
auth.token = ""
其他的端口信息,如果知道是什么含义可以自行修改,如果不知道可以无视了。
反向代理:
因为服务端是ws,是明文的,这里我们需要通过反代工具进行加密变成wss,反打的方式有很多比如nginx,caddy,traefik,因为我个人习惯使用traefik,所以这里使用traefik。
traefik的部署教程因为我写过这里就不在额外写内容了,直接贴链接
服务端compose:
服务端有traefik和frps,这里我贴出来两个容器的compose 提供给大家参考。
services:
frps:
image: snowdreamtech/frps
container_name: "frps"
restart: always
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- "/appdata/frp:/etc/frp"
environment:
- "TZ=Asia/Shanghai"
labels:
- "traefik.enable=true"
- "traefik.http.routers.frps.rule=Host(`speedtest.xxxx.com`)"
- "traefik.http.routers.frps.service=frps-service"
- "traefik.http.services.frps-service.loadbalancer.server.port=38400"
- "traefik.http.routers.frp_web.rule=Host(`frpsweb.xxxx.com`)"
- "traefik.http.routers.frp_web.service=frp_web-service"
- "traefik.http.services.frp_web-service.loadbalancer.server.port=7500"
traefik:
image: traefik:latest
container_name: "traefik"
restart: always
ports:
- "880:80"
- "8443:443"
volumes:
- "/appdata/traefik/acme.json:/acme.json"
- "/etc/localtime:/etc/localtime"
- "/appdata/traefik/traefik.yml:/traefik.yml"
- "/appdata/traefik/configurations:/configurations"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "DNSPOD_API_KEY="
- "TZ=Asia/Shanghai"
labels:
- "traefik.docker.network=bridge"
- "traefik.http.routers.traefik-secure.rule=Host(`tr.xxxxx.com`)"
- "traefik.enable=true"
- "traefik.http.routers.traefik-secure.entrypoints=websecure"
- "traefik.http.routers.traefik-secure.middlewares=user-auth@file"
- "traefik.http.routers.traefik-secure.service=api@internal"
这里需要注意frps部分,80 443是我需要的端口,所以我这里写的是80 443 ,如果你的FRPS是国内的服务器,你还没备案,你需要使用非标准的80 443 才可以
XXXX.com是一个示例,是要修改为你自己的域名的,注意speedtest.xxxx.com,要保留开头的speedtest,这是为了迷惑运营商的,当然你当地如果没限速可以随意。
注意映射配置文件的路径,不要照抄示例的,要修改为你自己的存放路径。
使用docker compose up -d启动即可,到这里服务端我们就配置完了 我们配置客户端。
frpc:
客户端相对来说要简单不少,这里我也是使用的docker。
serverAddr = "speedtest.xxxx.com"
serverPort = 8443
auth.method = "token"
auth.token = ""
transport.protocol = "wss"
transport.tls.enable = true
[[proxies]]
name = "traefik_http"
type = "tcp"
localIP = "192.168.1.3"
localPort = 80
remotePort = 80
transport.proxyProtocolVersion = "v2"
transport.useEncryption = true
transport.useCompression = true
[[proxies]]
name = "traefik_https"
type = "tcp"
localIP = "192.168.1.3"
localPort = 443
remotePort = 443
transport.proxyProtocolVersion = "v2"
transport.useEncryption = true
transport.useCompression = true
[[proxies]]
name = "traefik_quic"
type = "udp"
localIP = "192.168.1.3"
localPort = 443
remotePort = 443
transport.proxyProtocolVersion = "v2"
transport.useEncryption = true
transport.useCompression = true
我们先创建frpc的配置文件,也是toml格式,名字为frpc.toml,然后我进行修改配置内容。serverAddr = "speedtest.xxxx.com"
服务器的地址,这里必须写域名,不可以用ipserverPort = 8443
服务器的端口号,如果用标准的默认是443 如果是自定义的,写自定义的端口就可以auth.method = "token"
验证的方式默认token无特殊需求默认就可以了auth.token = ""
验证的token
请登录后查看评论内容