准备工作,你需要一个有公网IP的服务器,和一个备案的域名(如果你的服务器在国外可以不用备案)。

第一步:下载frp

你可以去 https://github.com/fatedier/frp/releases 上面下载最新的frp。上传到你的服务器里面也可以直接使用命令行下载

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

然后解压文件

tar -zxvf frp_0.27.0_linux_amd64.tar.gz

进入解压目录

cd frp_0.27.0_linux_amd64

第二步:编辑服务端。

在这里我主要演示把内网web服务放到公网上去

外网主机作为服务端,可以删掉不必要的客户端文件,使用rm指令删除文件。

rm -f frpc
rm -f frpc.ini

编辑frps.ini文件

vim frps.ini

文件默认是这样的

[common]
bind_port = 7000

我们需要在后面加一行vhost_http_port = 80

变成

[common]
bind_port = 7000
vhost_http_port = 80

大一点的云服务如(阿里云、腾讯云、华为云)需要放行端口7000和80

80是你访问外网时的端口web服务默认是80你可以自定义不过访问的时候可能需要在域名后加上冒号和端口号如( yourdomain.com :1234)

之后运行frp服务输入代码让frp在后台运行

nohup ./frps -c frps.ini &

然后运行的日志会输出到当前目录的nohup.log文件中

现在访问外网IP会显示

第三步:编辑客户端

客户端也需要下载frp具体见第一步

内网主机作为客户端,可以删掉不必要的服务端文件,使用rm指令删除文件。

rm -f frps
rm -f frps.ini

输入

vim frpc.ini

文件默认是这样的

[common]
server_addr = 127.0.0.1
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

我们需要将server_addr改为我们自己的外网IP地址

并在下面加一段代码

[web]
type = http
local_port = 80
custom_domains = yourdomain.com

最后文件修改为

[common]
server_addr = x.x.x.x你的公网IP
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[web]
type = http
local_port = 80
custom_domains = yourdomain.com你的域名

local_port是你内网主机web服务的端口名根据实际情况修改默认是80

之后运行frp服务输入代码让frp在后台运行

nohup ./frpc -c frpc.ini &

最后解析你的域名到你的公网IP就可以了

别忘了将域名绑定到内网主机的web服务上

现在访问域名就可以愉快的访问内网服务啦。

如图