frp内网穿透搭建

  1. 官网下载frp: https://github.com/fatedier/frp/releases 找到对应的服务端和客户端。
  2. 解压后,外网有固定ip的服务器上,打开frps.ini修改对应参数,如:

    用浏览器打开xxx.xxx.xxx.xxx:8998就可以打开frps的dashboard, 可以看到frps服务器的一些状态。
  3. 内网要穿透出去的机器,如内网里一台树莓派上,同样下载对应frp版本,打开frpc.ini文件按下面内容相应修改,[ssh_pi]是自已取的名字,每加一个穿透加一下配置

其中[common]中login_fail_exit = false, 这样连接服务器失败的时候就不会退出,而是每隔30s尝试连接一次,以增加服务的稳定性, 之前一直开机启动不了,报错:frpc.service: Start request repeated too quickly. 加了这行后就开机启动成功了。

[web_pi]下custom_domains = xxx.my_site.com, 里设置了一个二级域名,相应的要到域名解析网上添加一个my_site.com的二级域名xxx的A记录,解析到上面的外网有固定ip的服务器的IP上。

 

4.  接着,用systemd 来设置开机启动,成为服务一直运行(有出错重启功能):

1. 把frpc文件复制到/usr/local/bin/下面

2.在/etc/文件夹下创建frp文件夹,并把frpc.ini文件复制到/etc/frp/下面

3.创建文件/usr/lib/systemd/system/frpc.service, 写入以下内容:

运行命令:

sudo systemctl daemon-reload

sudo systemctl enable frpc

sudo systemctl start frpc

查看是否运行成功:

sudo systemctl status frpc

重启服务:

sudo systemctl restart frpc

frps服务端开机启动和客户端类似,把frpc改为frps就可以了。

 

frp与nginx共存

通常我们的公网服务器已经部署了其他网站,我们需要将frp与我们的nginx共存,这一点可以通过反代本地端口实现

编辑nginx的conf文件

代码如下

重载nginx配置

nginx reload

通过上述配置之后我们可以直接通过80端口访问web,即

http://frp.xxx.com/

这里对systemd的讲的比较请楚:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html

http://www.jinbuguo.com/systemd/systemd.service.html

https://www.jianshu.com/p/527dbe66ea88

打赏