575 字
3 分钟
frp
安装
直接去官网下载二进制文件,systemctl部署就行, 或者用docker部署最合适。公网服务器用frps,内网服务器用frpc。除了网络可能要注意一下,别的都比较常规。 镜像就去dockerhub上找的最多下载的就行frpc,frps。
services: frpc: image: snowdreamtech/frpc:latest container_name: frpc restart: always volumes: - ./frpc.toml:/etc/frp/frpc.toml environment: TZ: "Asia/Shanghai" networks: - internal_proxy
networks: internal_proxy: name: internal_proxy driver: bridge ipam: config: - subnet: 172.20.0.0/16 gateway: 172.20.0.1配置
最主要用的其实还是tcp,udp。官方文档已经讲的很详细了。他的功能也不只有tcp,udp的穿透功能,
serverAddr = "47.98.238.251"serverPort = 7001
auth.method = "token"auth.token = "xxx"
[[proxies]]name = "minecraft"type = "tcp"localIP = "bzl_mc" #docker自带的dns功能,写内网地址就行localPort = 25565remotePort = 38291
[[proxies]]name = "bzl-mc-voice"type = "udp"localIP = "bzl_mc"localPort = 24454remotePort = 24454
[[proxies]]name = "flask_backend"type = "tcp"localIP = "flask_backend"localPort = 5000remotePort = 5000wireguard
没啥好说的,主要还是看官网,他有个很灵性的视频,主机和客户端的比较,非常清楚。
配置
有公网的主机
作为vpn的网段的网关,[interface]配置一下暴露的端口,网段和私钥. [peer]里要配置所有要连到这个vpn里的设备。拿着客户端的公钥可以验证,客户端的安全。
[Interface]# VPN网关地址(服务器在VPN中的IP)Address = 10.0.0.1/24
# 监听端口ListenPort = 51820
PrivateKey = <私钥>
[Peer]PublicKey = <公钥>
AllowedIPs = 10.0.0.2/32
PersistentKeepalive = 25
[Peer]PublicKey = <公钥>
AllowedIPs = 10.0.0.3/32
PersistentKeepalive = 25没公网的客户机
设置mtu是因为windows默认发的太大了,加上wireguard的头就超过1500B了,超过了协议规范。
[Interface]PrivateKey = <私钥>Address = 10.0.0.2/24MTU = 1280
[Peer]PublicKey = <公钥>AllowedIPs = 10.0.0.0/24Endpoint = <公网服务器的IP>PersistentKeepalive = 25是不是很简单,对照起来。wireguard是用UDP,没走TCP,那些脚本小子扫wireguard服务器,他如果私钥错误了,连返回报错都没有,除非同时撞到了服务器的公钥和客户机的私钥,不然不可能进的来。千万不要把内网的项目包括(Openclaw)发布到公网,即使F2a,ssl,密码都弄得看起来很安全,但是可能项目本身有漏洞,万一呢,直接暴露端口,攻击面太大了。