准备条件
1.有公网IP的服务器一台,笔者为centos7 64位
2. 本地能联网的电脑一台,笔者位win10 64位
frp下载:https://github.com/fatedier/frp/releases
服务端配置
Linux版下载:https://github.com/fatedier/frp/releases/download/v0.18.0/frp_0.18.0_linux_amd64.tar.gz
cd /usr/local/
mkdir frp
cd frp
wget https://github.com/fatedier/frp/releases/download/v0.18.0/frp_0.18.0_linux_amd64.tar.gz
tar -zxvf frp_0.18.0_linux_amd64.tar.gz
cd frp_0.18.0_linux_amd64
其中frps开头的是给服务器用的,frpc是给客户端用的
下面是一个简单的http映射的例子
编辑frps.ini
nano frps.ini
内容如下
# frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 8090
#面板配置
dashboard_port = 7500
#特权配置
privilege_mode = true
privilege_token = 123456789099
[http]
type = http
custom_domains = frp.vvvtimes.com
./frps -c frps.ini
客户端配置
再看windows客户端的配置
windows版下载:https://github.com/fatedier/frp/releases/download/v0.18.0/frp_0.18.0_windows_amd64.zip
下载之后配置frpc.ini内容如下
# frpc.ini
[common]
server_addr = 114.215.87.93
server_port = 7000
privilege_token = 123456789099
[web]
privilege_mode = true
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = frp.vvvtimes.com
pool_count = 10
启动
frpc -c frpc.ini
这里面本地最简单的是搞个nginx运行即可,不用开IIS/Apache/tomcat
一些访问地址
控制面板:http://114.215.87.93:7500/
代理的web访问地址:http://frp.vvvtimes.com:8090/
代理的web访问地址可以看到nginx首页即表明配置成功(若本地未连接上也会显示类似nginx首页,实际上是frp的错误页)
frp与nginx共存
通常我们的公网服务器已经部署了其他网站,我们需要将frp与我们的nginx共存,这一点可以通过反代本地端口实现
编辑nginx的conf文件
cd /usr/local/nginx/conf/vhost/
nano frp.vvvtimes.com.conf
代码如下
server
{
listen 80;
#listen [::]:80;
server_name frp.vvvtimes.com ;
location /
{
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_hide_header X-Powered-By;
}
access_log off;
}
lnmp nginx reload
通过上述配置之后我们可以直接通过80端口访问web,即
服务端开机自启
这里只讲centos7的nohup /usr/local/frp/frp_0.18.0_linux_amd64/frps -c /usr/local/frp/frp_0.18.0_linux_amd64/frps.ini >/usr/local/frp/frp_0.18.0_linux_amd64/frps/log.txt 2>&1 &
编辑frp.service文件
nano /lib/systemd/system/frp.service
内容如下
[Unit]
Description=frp Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/nohup /usr/local/frp/frp_0.18.0_linux_amd64/frps -c /usr/local/frp/frp_0.18.0_linux_amd64/frps.ini >/usr/local/frp/frp_0.18.0_linux_amd64/frps/log.txt 2>&1 &
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl start frp
systemctl status frp
systemctl enable frp
windows客户端开机自启
使用Instsrv.exe+Srvany.exe即可
网上有现成的脚本:https://www.long33.cn/f.php?k=e9727
虽然是针对0.16写的,也可以直接用最新版覆盖后使用。