FRP是用于内网穿透的高速反向代理,支持TCP UDP HTTP HTTPS等协议,支持点对点穿透。异地访问内网环境下的主机。
本文采用的项目地址:https://github.com/fatedier/frp/
- 安装FRP:
登录SSH,输入命令下载项目(0.35.1是版本号,可以自行替换其他版本):
wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
解压(换了版本号的记得这里也换):
tar -zxvf frp_0.35.1_linux_amd64.tar.gz
将文件夹改名为frps:
mv -zxvf frp_0.35.1_linux_amd64 frps
进入文件夹:
cd frps
删除多余的客户端文件:
rm -f frpc frpc_full.ini frpc.ini
编辑配置文件:
vim frps.ini
参考配置文件:
注意:如果服务器同时想要运行网站,把80端口改成其他的,如88,443也改成其他的,比如444
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
vhost_http_port = 80
vhost_https_port = 77
dashboard_port = 443
dashboard_user = 这里替换为账号
dashboard_pwd = 这里替换为密码
token = 这里填通讯token
allow_ports = 1-65535
max_pool_count = 100
authentication_timeout = 0
复制上面配置进去,按esc后输入:wq即可保存并退出
运行临时启动文件:
nohup ./frps -c ./frps.ini &
输入http://服务器IP:7500来查看 frps 服务状态,如果安装成功会进入FRP面板。
如果无法进入首先检查是否在服务器默认防火墙或宝塔安全设置里允许端口,如果阿里云服务器需要在阿里云开启端口。都没问题再重新检测以上步骤。
- 客户端使用
安装客户端:
进入项目https://github.com/fatedier/frp/releases
下载对应服务端的版本,然后解压
打开frpc.ini文件,复制粘贴并根据你的情况修改:
[common]
server_addr = 你服务器的IP
server_port = 7000
token = 这里填通讯token
protocol = tcp
#上面是服务器信息,下面是转发信息
[1] #[]里为配置名称,任意设置,但不能重复
type = http
local_ip = 127.0.0.1 #局域网IP,本机安装则不改动。
local_port = 5000 #需要穿透的端口
use_compression = false
use_encryption = false
custom_domains = nas.xxx.com #外网访问此端口的域名
[2] #第二个端口配置名称演示
type = http
local_ip = 127.0.0.1
local_port = 5001
use_compression = false
use_encryption = false
custom_domains = nas2.xxx.com
启动客户端:
在cmd或其他终端执行以下命令
> ./frpc -c frpc.ini
2020/02/19 11:06:04 [I] [service.go:221] login to server success, get run id [2448e089b9b1a7d5], server udp port [0]
2020/02/19 11:06:04 [I] [proxy_manager.go:137] [2448e089b9b1a7d5] proxy added: [web]
- 兼容网站
服务器端配置文件如果修改了端口,比如80改成了88,访问域名时需要带上端口,如http://nas.xxx.com:88 如果不想带88端口,可以服务器开启绑定nas.xxx.com域名的网站,然后方向代理到http://127.0.0.1:88 这样就可以直接通过http://nas.xxx.com来访问了