自建frp服务器,搭建内网穿透,linux安装及docker安装
  Qn0V923SdTA7 2023年11月13日 26 0

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网址

frp下载:releases

自建frp服务器,搭建内网穿透,linux安装及docker安装_linux

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

1.服务端部署

1.1.linux部署

1.1.1 创建frp目录
mkdir frp
1.1.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软件
1.1.3解压文件并进入解压文件夹
tar -zxvf frp_0.49.0_linux_amd64.tar.gz  //解压文件
cd  frp_0.49.0_linux_amd64               //进入解压文件夹
1.1.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

保存退出

1.1.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.1.6启动服务几种方式
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号       //杀死进程
3.frp服务配置服务,并设置开机自启
3.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 添加 可执行权限

chmod +x frp.sh
3.2配置frp.service文件
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         //关闭服务

1.2.docker部署

1.2.1.debian、ubuntu、Centos系统一键安装docker
curl -fsSL get.docker.com -o get-docker.sh
curl -sSL https://get.daocloud.io/docker | sh
sudo sh get-docker.sh --mirror Aliyun
1.2.2.创建frp.ini文件并创建目录
mkdir /frp
vim /frp/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 = 2
# 认证超时时间
authentication_timeout = 900
# 认证token,客户端需要和此对应
token=123123123
# 最大连接数
max_pool_count = 5
max_ports_per_client = 0
1.2.3.拉取镜像
docker pull snowdreamtech/frps:latest
1.2.4. 启动docker容器
docker run --restart=always --network host -d -v /frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
1.2.5 docker相关命令
docker ps -a             //查看运行中的容器
docker restart dockerID  //重启镜像
docker stop dockerID     //停止镜像
docker start dockerID    //启动镜像
docker rm dockerID       //删除镜像
1.2.6 配置docker自启,并镜像自动启动
systemctl enable docker                    //配置docker自启
 docker ps -a                               //查看docker ID
 docker update --restart=always dockerID    //配置镜像自启

关于frp客户端搭建

参考:https://blog.51cto.com/u_14487231/6694019

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
Qn0V923SdTA7