|
<p data-track="1">
frp 是一个高性能的反向代理应用, 可以帮助您轻松地进行内网穿透, 对外网提供服务, 支持 tcp, http, https 等协议类型, 并且 web 服务支持根据域名进行路由转发。
</p><p data-track="2">
frp 的作用
</p><p data-track="3">
利用处于内网或防火墙后的机器, 对外网环境提供 http 或 https 服务。
</p><p data-track="4">
对于 http 服务支持基于域名的虚拟主机, 支持自定义域名绑定, 使多个域名可以共用一个80端口。
</p><p data-track="5">
利用处于内网或防火墙后的机器, 对外网环境提供 tcp 服务, 例如在家里通过 ssh 访问处于公司内网环境内的主机。
</p><p data-track="6">
可查看通过代理的所有 http 请求和响应的详细信息。(待开发)
</p><p data-track="7">
github地址:
</p><p data-track="8">
https://github.com/fatedier/frp
</p><p class="pgc-p" data-track="68">
<br/>
</p><p data-track="69">
下载:
</p><p data-track="9">
> # wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
</p><p data-track="74">
> # tar -zxvf frp_0.35.1_linux_amd64.tar.gz
</p><p class="pgc-p" data-track="75">
<br/>
</p><p data-track="70">
实例1: 通过ip访问部署于内网的服务器
</p><p data-track="11">
根据对应的操作系统及架构,从 Release 页面下载最新版本的程序。
</p><p data-track="12">
将 frps 及 frps.ini 放到有公网 IP 的机器上。
</p><p data-track="13">
将 frpc 及 frpc.ini 放到处于内网环境的机器上。
</p><p data-track="14">
通过 ssh 访问公司内网机器
</p><p data-track="15">
公网服务器操作:
</p><p data-track="16">
1 修改 frps.ini 文件, 配置一个名为 ssh 的反向代理:
</p><p data-track="17">
# frps.ini
</p><p data-track="18">
[common]
</p><p data-track="19">
bind_port = 7000
</p><p data-track="20">
[ssh]
</p><p data-track="21">
listen_port = 6000
</p><p data-track="22">
auth_token = 123
</p><p class="pgc-p" data-track="23">
<br/>
</p><p data-track="71">
2 启动 frps:
</p><p data-track="24">
./frps -c ./frps.ini
</p><p data-track="25">
内网服务器操作:
</p><p class="pgc-p" data-track="26">
<br/>
</p><p data-track="72">
3 修改 frpc.ini 文件, 设置 frps 所在服务器的 IP 为 x.x.x.x:
</p><p data-track="27">
# frpc.ini
</p><p data-track="28">
[common]
</p><p data-track="29">
server_addr = x.x.x.x
</p><p data-track="30">
server_port = 7000
</p><p data-track="31">
auth_token = 123
</p><p data-track="32">
[ssh]
</p><p data-track="33">
local_port = 22
</p><p data-track="34">
4 启动 frpc:
</p><p data-track="35">
./frpc -c ./frpc.ini
</p><p data-track="36">
通过 ssh 访问内网机器,假设用户名为 test:
</p><p data-track="37">
> # ssh -oPort=6000 test@x.x.x.x
</p><p class="pgc-p" data-track="38">
<br/>
</p><p data-track="77">
实例2: 通过指定域名访问部署于内网的 web 服务
</p><p data-track="39">
有时想要让其他人通过域名访问或者测试我们在本地搭建的 web 服务, 但是由于本地机器没有公网 IP, 无法将域名解析到本地的机器, 通过 frp 就可以实现这一功能,
</p><p data-track="40">
以下示例为 http 服务, https 服务配置方法相同, vhost_http_port 替换为 vhost_https_port, type 设置为 https 即可。
</p><p data-track="41">
1 修改 frps.ini 文件, 配置一个名为 web 的 http 反向代理, 设置 http 访问端口为 8080, 绑定自定义域名 www.yourdomain.com:
</p><p data-track="42">
# frps.ini
</p><p data-track="43">
[common] bind_port = 7000
</p><p data-track="44">
vhost_http_port = 8080
</p><p data-track="45">
[web]
</p><p data-track="46">
type = http
</p><p data-track="47">
custom_domains = www.yourdomain.com
</p><p data-track="48">
auth_token = 123
</p><p data-track="49">
2 启动 frps;
</p><p data-track="50">
./frps -c ./frps.ini
</p><p data-track="51">
3 修改 frpc.ini 文件, 设置 frps 所在的服务器的 IP 为 x.x.x.x, local_port 为本地机器上 web 服务对应的端口:
</p><p data-track="52">
# frpc.ini
</p><p data-track="53">
[common]
</p><p data-track="54">
server_addr = x.x.x.x
</p><p data-track="55">
server_port = 7000
</p><p data-track="56">
auth_token = 123
</p><p data-track="57">
[web]
</p><p data-track="58">
type = http
</p><p data-track="59">
local_port = 80
</p><p data-track="60">
4 启动 frpc:
</p><p data-track="61">
./frpc -c ./frpc.ini
</p><p data-track="62">
5 将 www.yourdomain.com 的域名 A 记录解析到 x.x.x.x, 如果服务器已经有对应的域名, 也可以将 CNAME 记录解析到服务器原先的域名。
</p><p data-track="63">
通过浏览器访问 http://www.你的域名.com:8080 即可访问到处于内网机器上的 web 服务。
</p> |
|