概述
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搭建所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复