FRP配置内网穿透52版本以上适用

简述

适用frp配置内网穿透来说我们需要进行简单的区分,具有公网IP的服务器我们简称为服务端,内网的服务器我们可以简称为客户端,frp需要针对不同的服务器配置不同的文件

下载安装包

Linux下载地址

https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz

Windows下载地址

https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_windows_amd64.zip

对于frp来说只根据不同的服务器区分安装包,服务端和客户端如果都是Linux则只需要下载Linux本本就可以,frp内网穿透使用配置文件和启动文件进行区分。

配置客户端Frp

准确的说是配置frpc.toml文件

#服务端公网IP地址(IP地址)
serverAddr = ""
#服务端公网监听端口(服务端和客户端通讯端口)
serverPort = 7000
#鉴权方式(与服务端保持一致)
auth.method = "token"
#客户端连接的token(与服务端保持一致)
auth.token = "password"

#TCP类型(端口对端口需要将客户点的端口暴露在公网场景下使用)
[[proxies]]
name = "test-tcp"
type = "tcp"
#客户端IP这里填本机IP就可以或者是127.0.0.1
localIP = "127.0.0.1"
# 客户端本地的端口号(根据需要填写)
localPort = 22
# 服务端的代理端口号(根据需要填写)
remotePort = 6000

#HTTP类型(域名访问某个客户端的服务场景下配置如下)
#[[proxies]]
#name = "nginx-80"
#type = "http"
# 客户端本地的端口号(根据需要填写)
#localPort = 80
#公网访问地址(域名或子域名)
#customDomains = ["域名或子域名"]

配置服务端Frp

准确的说是配置frps.toml文件

[common]
#服务端监听端口
bindPort = 7000
#用于反向代理HTTP主机时使用
vhostHTTPPort = 80
#鉴权方式
auth.method = "token"
#客户端连接的token
auth.token = "password"

#后台管理面板配置
#后台面板端口号
webServer.port = 7500
#后台管理地址
webServer.addr = "0.0.0.0"
#后台管理员账号
webServer.user = "admin"
#后台管理员密码
webServer.password = "admin"

启动服务端

frps -c frps.toml & 

 启动服务端之后可以通过[服务器IP]:7500访问frp后台管理面板

启动客户端(服务端不启动成功,客户端启动会异常)

frpc.exe -c frpc.toml

  对于客户端是Windows时我们使用命令行启动frpc,但是窗口不能关闭,关闭后程序会关闭;因此我们可以通过创建vbs程序来解决这个问题

dim objShell 
set objShell=wscript.createObject("WScript.Shell") 
iReturnCode=objShell.Run(".\frpc.exe -c frpc.toml",0,TRUE)

常见问题一:

error unmarshaling JSON: while decoding JSON: json: cannot unmarshal array into Go value of type v1.ServerConfig

如果启动出现如下问题则是因为新版本.toml配置文件采用的是JSON格式,而你配置的.toml文件格式不正确

常见问题二:

[1;34m2024-07-28 00:25:49.632 [I] [sub/root.go:142] start frpc service for config file [./frpc.toml]
[0m[1;34m2024-07-28 00:25:49.641 [I] [client/service.go:294] try to connect to server...
[0m[1;33m2024-07-28 00:25:59.647 [W] [client/service.go:297] connect to server error: dial tcp 0.0.0.0:7000: i/o timeout
[0m[1;34m2024-07-28 00:25:59.647 [I] [sub/root.go:160] frpc service for config file [./frpc.toml] stopped
[0mlogin to the server failed: dial tcp 123.249.69.0:7000: i/o timeout. With loginFailExit enabled, no additional retries will be attempted

这是因为另一端端口不允许访问导致,只需要开启端口就可以了(华为云服务器需要在控制台修改安全策略)

 常见问题三(SSH):

开启Widows SSH
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

### 使用 Docker Compose 部署 FRP 客户端 (frpc) 为了通过 Docker Compose 来部署 FRP 客户端 (`frpc`),可以按照如下方法配置 `docker-compose.yml` 文件: #### 准备工作 确保已经安装并配置好 Docker 和 Docker Compose。 #### 创建必要的文件结构 创建一个新的目录用于保存所有的配置文件,在该目录下创建两个主要文件:一个是 `docker-compose.yml` 另外一个是 `frpc.ini` 或者其他形式的配置文件来定义 frpc 的行为[^1]。 #### 编写 docker-compose.yml 文件 下面是一个简单的例子展示如何编写 `docker-compose.yml` 文件以启动一个带有自定义设置的 frpc 实例: ```yaml version: '3' services: frpc: image: ngrok/frp:latest container_name: frpc restart: unless-stopped volumes: - ./frpc.ini:/etc/frp/frpc.ini networks: - internal_network networks: internal_network: ``` 此 YAML 片段指定了服务名称为 `frpc` 并使用官方镜像 `ngrok/frp:latest`. 同时挂载了一个卷使得主机上的 `./frpc.ini` 能够映射到容器内的 `/etc/frp/frpc.ini`, 这样就可以方便地修改外部配置而不需要重建整个容器. #### 编辑 frpc.ini 文件 根据需求编辑 `frpc.ini` 文件, 下面提供了一种基本模板作为参考: ```ini [common] server_addr = x.x.x.x ; 替换成服务器 IP 地址 server_port = 7000 ; 默认端口 [tcp_ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 ; SSH 端口号 remote_port = 6000 ; 映射后的远程端口 ``` 上述 INI 文件中的 `[tcp_ssh]` 是一个示例部分,表示要转发本地机器上运行的服务至远端指定端口。可以根据实际应用场景调整这些参数。 完成以上步骤之后,只需在命令行工具中进入包含这两个文件的目录,并执行 `docker-compose up -d` 即可让 frpc 开始工作.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值