简述
适用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