基于frp的内网穿透服务端搭建


这是一个支持内网穿透的高性能反向代理应用~~~

本up猪采用的是服务端linux和客户端win搭建运行,故仅提供该系统下的搭建方法~~~

有关客户端frp的搭建方法详见另一篇文章:基于frp的内网穿透客户的端搭建

frp服务搭建

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
1.客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。 2.采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。 3.代理组间的负载均衡。 4.端口复用,多个服务通过同一个服务端端口暴露。 5.多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。 6.高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。 7.服务端和客户端 UI 页面。

网址:FRP github下载:releases


linux版本选择linux版本,windows端可以下载windows版本,服务器和客户端尽量保持版本一致,当前最新版本为0.57.0

注意:在更新到最新的frp服务后,所使用的文件从ini转换成toml,直接导致之前的教程大部分失效,本猪其实也不是很会www

服务端/lunix部署

linux端正常部署

1、创建frp目录

mkdir frp

2、创建一个frp目录后,进入该目录,使用如下命令

cd frp
    //进入创建的frp目录
    
    wget https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gz
    //下载frp0.49版本服务端软件包

若无wget命令,CentOS运行

yum install -y wget          //安装wget软件

ubuntu或debian

apt install -y wget           //安装wget软件

3、解压文件并进入解压文件夹

tar -zxvf frp_0.49.0_linux_amd64.tar.gz  //解压文件
cd  frp_0.49.0_linux_amd64               //进入解压文件夹

4、编辑frps.ini文件

vim frps.ini                             //编辑frps.ini文件

编辑以下内容

[common]
bind_port = 7000
# 启用面板
dashboard_port = 7500
# 面板登录名和密码
dashboard_user = admin
dashboard_pwd = xxxxxx
# 使用http代理并使用80端口进行穿透
vhost_http_port = 80
# 使用https代理并使用443端口进行穿透
vhost_https_port = 443
# 日志路径
log_file = ./frps.log
# 日志级别
log_level = info
# 日志最大保存天数
log_max_days = 7
# 认证超时时间
authentication_timeout = 900
# 认证token,客户端需要和此对应
token=123123123
# 最大连接数
max_pool_count = 5
max_ports_per_client = 0

保存退出
5、开放防火墙相关端口
CentOS系统开放端口命令(云服务器也需要在安全组加入对应端口):

firewall-cmd --zone=public --add-port=7000/tcp --permanent   //开放7000端口
firewall-cmd --zone=public --add-port=7500/tcp --permanent   //开放7500端口
firewall-cmd --zone=public --add-port=80/tcp --permanent     //开放80端口
firewall-cmd --zone=public --add-port=443/tcp --permanent    //开放443端口
firewall-cmd --reload                                        //使能防火墙生效

ubuntu或debian系统:

ufw allow 80                 //开启80端口
ufw allow 443                //开启443端口
ufw allow 7000               //开启7000端口
ufw allow 7500               //开启7500端口
ufw enable                   //启动防火墙           
ufw disable                  //关闭防火墙

启动服务几种方式

正常启动

1、正常启动

./frps -c ./frps.ini

2、使用nohup后台挂起服务并记录日志

nohup ./frps -c frps.ini > ./frps.log 2>&1 &

关闭frp

ps -ef | grep frp   //查看进程pid号
kill -9 pid号       //杀死进程

frp服务配置服务,并设置开机自启

1、建立启动脚本编写sh文件

#!/bin/bash
cd /frp/frp_0.49.0_linux_amd64/
echo 'pwd'|nohup ./frps -c frps.ini > ./frps.log 2>&1 &

将sh文件与frp服务放一起,命名为frp.sh

    root@vultr:/frp/frp_0.49.0_linux_amd64# pwd
    /frp/frp_0.49.0_linux_amd64
    root@vultr:/frp/frp_0.49.0_linux_amd64# ls
    frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frp.sh  frps.ini  frps.log  LICENSE

给frp.sh 添加 可执行权限

    vim /usr/lib/systemd/system/frp.service

注意ExecStart路径为自己本地的

[Unit]
Description=npc
After=network.target

[Service]
Type=forking
ExecStart=/frp/frp_0.49.0_linux_amd64/frp.sh
Restart=always
RestartSec=5
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动并测试

systemctl daemon-reload    //使能服务生效
systemctl enable frp       //配置开机自启
systemctl start frp        //启动服务
systemctl status frp       //查看服务状态
systemctl stop frp         //关闭服务

docker部署

若还没安装Docker,请看我的另一篇文章Docker的安装与测试

1、创建frp.ini文件并创建目录

mkdir /frp
vim /frp/frps.ini

2、编辑frps.ini配置文件

[common]
bind_port = 7000
# 启用面板
dashboard_port = 7500
# 面板登录名和密码
dashboard_user = admin
dashboard_pwd = xxxxxx
# 使用http代理并使用80端口进行穿透
vhost_http_port = 80
# 使用https代理并使用443端口进行穿透
vhost_https_port = 443
# 日志路径
log_file = ./frps.log
# 日志级别
log_level = info
# 日志最大保存天数
log_max_days = 2
# 认证超时时间
authentication_timeout = 900
# 认证token,客户端需要和此对应
token=123123123
# 最大连接数
max_pool_count = 5
max_ports_per_client = 0

3、拉取镜像

docker pull snowdreamtech/frps:latest

4、启动docker容器

docker run --restart=always --network host -d -v /frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps

5、docker相关命令

docker ps -a             //查看运行中的容器
docker restart dockerID  //重启镜像
docker stop dockerID     //停止镜像
docker start dockerID    //启动镜像
docker rm dockerID       //删除镜像

6、配置docker自启,并镜像自动启动

systemctl enable docker                    //配置docker自启
 docker ps -a                               //查看docker ID
 docker update --restart=always dockerID    //配置镜像自启

本文贴出up猪自己的配置文件以供参考:

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = '账号'
dashboard_pwd = '密码'
vhost_http_port = '端口号'
vhost_https_port = '端口号'
log_file = ./frps.log
log_level = info
log_max_days = 7
authentication_timeout = 900
token='你的token'

声明:Hello World|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 基于frp的内网穿透服务端搭建


这是我们的