FRP v0.61.1 实现 Windows-Linux HTTP 互通的实施步骤

分享 未结
0 35
苟哥
苟哥 2025-03-28 13:40

使用frp解决内外网打通的问题以下优势:

  • 动态IP适配‌:客户端主动连接服务端,IP变化时自动重连,无需手动维护‌。

  • 安全性‌:通过Token认证和HTTPS加密保障通信安全‌。

  • 扩展性‌:支持多协议代理(TCP/UDP/HTTP)和负载均衡‌。

提前下载好软件包。

一、服务端(云服务器)配置

1.下载与解压‌

解压提前下载好的软件:frp_0.61.1_linux_amd64.tar.gz,解压后保留 frps 和 frps.toml(服务端文件)‌。

2.配置文件修改‌

  • 编辑 frps.toml,配置核心参数:

    bindPort = 7000                        # 客户端与服务端通信端口
    vhostHttpPort = 8203                  # HTTP代理映射端口,可选
    auth.token = "your token"           # 客户端需同步此Token
    
    webServer.addr = "0.0.0.0" #绑定ip
    webServer.port = 7500  #端口可选
    #webServer.user = "admin"  #可选
    #webServer.password = "admin123" #可选
  • 开放防火墙端口

sudo firewall-cmd --add-port=7000/tcp --permanent  # 通信端口
sudo firewall-cmd --add-port=8023/tcp --permanent  # HTTP服务端口
sudo firewall-cmd --reload
  • 保存后验证配置:

    ./frps verify -c ./frps.tom

3.启动服务端‌

运行命令:

./frps -c ./frps.toml

并配置开机自启动(示例Systemd服务):

sudo vim /etc/systemd/system/frps.service
[Unit]  
Description=Frp Server  
[Service]  
ExecStart=/path/to/frp_0.61.1/frps -c /path/to/frp_0.61.1/frps.toml   
[Install]  
WantedBy=multi-user.target

执行:

sudo systemctl enable frps  #开机启动
sudo systemctl start frps‌   #启动服务

二、客户端(本地主机)配置

1.解压‌

  • 解压上面步骤下载的压缩包frp_0.61.1_windows_amd64.zip,保留 frpc.exe 和 frpc.toml‌。

2.配置文件修改‌

  • 编辑 frpc.toml,配置核心参数:

serverAddr = "云服务公网IP"
serverPort = 7000   #与服务端配置保持一致
auth.token = "your toke"   #与服务端配置保持一致

[[proxies]]
name = "test-http"  #可自定义
type = "http"   #表示接口用http请求,可以切换为tcp
localIP = "127.0.0.1" 
localPort = 80  #本地Web服务端口
customDomains =["域名.com"]  #绑定域名(需解析至云服务端IP)‌
  • 若需多服务代理,可配置多个代理段。

3.启动客户端‌

  • Windows:

    ./frpc -c ./frpc.toml‌

三、网络与安全配置

1.云服务器安全组‌

开放端口:7000(FRP通信)、8023/443(HTTP/HTTPS)、7500(管理面板,可选)‌。

2.本地主机防火墙‌

允许 frpc.exe 或 frpc 进程通过防火墙,开放本地HTTP服务端口(如80)‌。

3.HTTPS增强(可选)‌

在 frpc.toml 中启用HTTPS:

[http_proxy]  
type = https  
plugin = https2http  
plugin_local_addr = 127.0.0.1:80  
plugin_crt_path = /path/to/cert.pem  
plugin_key_path = /path/to/key.pem

可以使用Let's Encrypt免费证书‌。

四、验证与调试

1.服务状态检查‌

  • 服务端:访问 http://云服务器IP:7500(管理面板),查看客户端连接状态‌。

  • 客户端:观察日志输出 Start proxy success 表示连接成功‌。

2.接口测试‌

  • 先检查本地web服务是否正常:

    本地访问:http://localhost:80  确保服务正常;

  • 服务端请求本地web服务

    通过云服务器生成的公网地址(如 http://your.domain.com:8023)访问本地HTTP接口:

curl http://your.domain.com:8023/

如果返回的响应和本地服务响应相同,即表示穿透成功‌。


收藏
回帖
  • 消灭零回复