我是靠谱客的博主 务实嚓茶,最近开发中收集的这篇文章主要介绍frp搭建,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

frp

准备工作

服务端:具有公网IP的实体机(服务器一台)

客户端:访问目标设备(就是你最终要访问的设备,通常是内网机器一台)

因为frp的原理是利用服务端(所准备的VPS)进行转发,因而VPS的速度直接决定了之后连接的质量,请根据自己的需要选择相应主机配置

frp下载

选择自己需要的frp版本

https://github.com/fatedier/frp/releases

通过 SSH 访问内网机器

frps安装

将下载好的frp包放到对应的服务器上

frps放在公网服务器上

[root@VM-0-10-centos frps]# ls
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  nohup.out  systemd

修改对应的frps.ini文件

[root@VM-0-10-centos frps]# cat frps.ini 
[common]
bind_port = 7000  frps默认端口号

放入后台运行

[root@VM-0-10-centos frps]# nohup ./frps -c frps.ini >/dev/null 2>&1 &

frpc安装

frpc安装在内网服务器

[root@VM-0-10-centos frpc]# ls
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  systemd

修改对应的frpc.ini

[root@VM-0-10-centos frpc]# cat frpc.ini
[common]
server_addr = x.x.x.x   公网服务端的ip
server_port = 7000  公网服务端的frps端口号

[ssh]
type = tcp  tcp连接方式
local_ip = 127.0.0.1  本机
local_port = 22  需要连接本机的服务端口号
remote_port = 6000  映射到服务端的端口号

放入后台运行

[root@VM-0-10-centos frpc]# nohup ./frpc -c frpc.ini >/dev/null 2>&1 &

通过公网连接到内网服务器
ssh -p 6000 root@x.x.x.x(公网ip)

至此frp功能实现

安全地暴露内网服务

frps安装

将下载好的frp包放到对应的服务器上

frps放在公网服务器上

[root@VM-0-10-centos frps]# ls
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE  nohup.out  systemd

修改对应的frps.ini文件

[root@VM-0-10-centos frps]# cat frps.ini 
[common]
bind_port = 7000  frps默认端口号

放入后台运行

[root@VM-0-10-centos frps]# nohup ./frps -c frps.ini >/dev/null 2>&1 &

frpc安装

在需要暴露到内网的机器上部署 frpc

[common]
server_addr = x.x.x.x  公网服务器ip
server_port = 7000

[secret_ssh]
type = stcp  通过stcp模式
# 只有 sk 一致的用户才能访问到此服务
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22


在想要访问内网服务的机器上也部署 frpc
[common]
server_addr = x.x.x.x  公网服务器ip
server_port = 7000

[secret_ssh_visitor]
type = stcp
# stcp 的访问者
role = visitor
# 要访问的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
# 绑定本地端口用于访问 SSH 服务
bind_addr = 127.0.0.1
bind_port = 6000


通过 SSH 访问内网机器
ssh -p 6000 root@127.0.0.1

至此可以通过本机的6000端口访问到内网服务器的22端口

docker安装frp

公网服务端部署frps

# 创建项目目录
mkdir frp

# 编写docker-compose.yml文件
vim docker-compose.yml
version: "3"
services:
  frps:
   image: snowdreamtech/frps
   container_name: frps
   privileged: true
   restart: always
   network_mode: host
   environment:
   - TZ=Asia/Shanghai
   volumes:
   - ./frps.ini:/etc/frp/frps.ini
   command: /bin/sh -c /usr/bin/frps -c /etc/frp/frps.ini
   
# 查看配置文件
cat frps.ini 
[common]
bind_port = 7000
authentication_method=token
token = 123456
vhost_http_port = 7000
vhost_https_port = 7000
dashboard_user  = admin  
##dashboard 密码
dashboard_pwd = admin
##dashboard 端口,启动成功后可通过浏览器访问如http://ip:7500
dashboard_port = 7500  
tls_only=true
log_file = /var/log/frps.log
log_max_days =3

# 启动
docker-compose up -d

# 查看端口是否启动
netstat -tunlp|grep 7000
tcp6       0      0 :::7000

内网服务器部署frpc

# 创建项目目录
mkdir frp

# 编写docker-compose.yml文件
vim docker-compose.yml

version: "3"
services:
  frpc:
   image: snowdreamtech/frpc
   container_name: frpc
   privileged: true
   restart: always
   network_mode: host
   environment:
   - TZ=Asia/Shanghai
   volumes:
   - ./frpc.ini:/etc/frp/frpc.ini
   command: /bin/sh -c /usr/bin/frpc -c /etc/frp/frpc.ini

# 查看配置文件
[root@gailun frp]# cat frpc.ini
[common]
server_addr = x.x.x.x  公网服务器ip
server_port = 7000

##auth token
##toke的作用:防止客户机器任意连接服务器,必须知道token的客户机才能连接服务器
token = 123456
tls_enable=true

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 722


# 启动
docker-compose up -d

# 在服务器端可以查看到722端口
[root@daxiong frp]# netstat -tunlp|grep 722
tcp6       0      0 :::722

通过公网连接到内网服务器
ssh -p 722 root@x.x.x.x(公网ip)

至此frp功能实现

最后

以上就是务实嚓茶为你收集整理的frp搭建的全部内容,希望文章能够帮你解决frp搭建所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部