frp是使用较多的免费开源的内网穿透软件,源代码托管在GitHub。
1. 下载安装
安装步骤可参考官方文档 https://gofrp.org/docs/setup/
点击项目的release地址进入下载页面:https://github.com/fatedier/frp/releases,
首先要根据自己需要安装的机器系统架构下载相应的二进制安装包。
frp的服务端和客户端程序都在同一个安装包中,服务端软件必须安装在有公网IP的机器,客户端软件安装在需要穿透的机器。我的公网服务器是阿里云ECS,其系统架构为 Linux x86_64,frp最新版本为0.44.0,则可下载 frp_0.44.0_linux_amd64.tar.gz;客户端软件准备安装在本地Windows 64位电脑上,则需要下载 frp_0.44.0_windows_amd64.zip。
1.1 服务端安装
Linux服务器上下载时可通过wget程序下载:
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
下载过程可能较慢,喝杯茶耐心等待。下载完成后将其放到你的安装目录,比如我准备安装在/usr/local目录,然后解压并重命名为frp目录,则其安装目录为/usr/local/frp。
1.2 客户端安装
Windows电脑上直接点击相应链接下载后解压到安装文件夹即可,比如我的是D:\Program Files (x86)\frp_0.44.0_windows_amd64:
2. 配置启动
frp支持 TCP、UDP、HTTP、HTTPS 等多种协议的穿透,这里只介绍HTTP协议。
我在本地Windows电脑上启动了一个简单的web服务,其HTTP端口为8080,本地可通过localhost:8080访问:
现假设需要提供给外网访问,则可借助frp的HTTP协议穿透实现。
2.1 HTTP协议服务端配置
服务端配置文件为frps.ini,初始配置为bind_port = 7000,HTTP协议穿透只需要再增加一个vhost_http_port配置,这个端口号可随意配置服务器的闲置端口,这里使用8000:
[common] bind_port = 7000 vhost_http_port = 8000
配置完成后在frp安装目录运行frps程序并通过-c指定配置文件frps.ini启动服务端:
./frps -c frps.ini &
运行后如果成功出现如下提示:
建议:为了让程序在后台运行并将日志输出到指定文件比如frps.log,可以用nohup启动:
nohup ./frps -c frps.ini >> frps.log 2>&1 &
2.2 HTTP协议客户端配置
客户端即本地window端配置,配置文件为frpc.ini。
客户端首先需要在[common]中配置服务端的地址server_addr (这里隐藏了我的真实IP)和 端口号server_port(与服务端 bind_port 配置相同)。
其次,在[web]中配置本地需要穿透的web服务的端口号,这里是8080,即local_port = 8080;此外,还需配置外网访问的域名custom_domains,这里一般是解析到服务端服务器公网IP的域名,但由于没有域名,这里直接配置成服务端公网IP,访问时直接通过IP访问。
[common] server_addr = 101.200.XX.XX server_port = 7000 [web] type = http local_port = 8080 custom_domains = www.test.com
在本地Windows找到安装目录,在上面的输入框中输入cmd,进入安装目录的命令行
运行客户端程序frpc.exe并通过-c指定配置文件frpc.ini启动客户端:
frpc.exe -c frpc.ini
如果启动成功,则出现如下提示:
3. 公网访问测试
现在可以在公网通过公网IP和server_port访问该web服务了(www.test.com:8000):
和本地访问结果一样,说明内网穿透成功,实现外网访问内网服务的目的。
温馨提示:如果你的服务器端也用的是云服务器ECS,可能需要在网络安全组中放开你配置的端口才可以,否则客户端访问不了服务端,则穿透不成功。
标签:web,frps,安装,配置,frp,内网,port,服务端 From: https://www.cnblogs.com/codebuglife/p/17475338.html