iTech / Linux · 2023年3月28日

[转载]手把手教你用frp做内网穿透

frp 是一个专注于内网穿透的反向代理应用程序,使用时需要花钱申请公网IP和云服务器,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

一、认识frp

  • frp的作用

​ 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

  • 配置说明

​ 1、实现功能 – 外网通过ssh访问内网机器 – 自定义绑定域名访问内网web服务

​ 2、配置前准备 – 公网服务器1台 – 内网服务器1台 – 公网服务器绑定域名1个 – 公网和内网的服务器需要用到docker

二、安装docker

2.1 docker安装

​ 直接复制以下命令开始安装。

curl -sSL https://get.daocloud.io/docker | sh

2.2 docker调试

[root@localhost ~]# echo "          # 设置docke加速
> {
>     "graph":"/data/docker"
> }
> " >> /etc/docker/daemon.json
[root@localhost ~]# systemctl enable docker
# 设置docker开机自启
[root@localhost ~]# systmectl start docker
# 启动docker服务

三、安装frp内网穿透

3.1 配置frps服务端

​ 创建frp文件夹,并且配置frps.ini服务端文件:

[root@localhost ~]# mkdir -p /etc/frp/ && cat >>  /etc/frp/frps.ini << EOF
> [common]
> bind_port = 7000                                  # 默认端口是700
> # 启用面板
> dashboard_port = 7500
> # 面板登录名和密码
> dashboard_user = user                             # 用户和密码自行修改
> dashboard_pwd = password
> # 使用http代理并使用8888端口进行穿透
> vhost_http_port = 8888
> # 使用https代理并使用9999端口进行穿透
> vhost_https_port = 9999
> # 日志路径
> log_file = ./frps.log
> # 日志级别
> log_level = info
> # 日志最大保存天数
> log_max_days = 2
> # 认证超时时间
> authentication_timeout = 900
> # 认证token,客户端需要和此对应
> token = xxx                                       # 自定义的token可修改
> EOF
[root@localhost ~]#

​ frps服务端启动:

[root@localhost ~]#docker pull snowdreamtech/frps       # 拉取snowdreamtech/frps容器
[root@localhost ~]# docker run  -d \
> --restart=always \
> --network host \
> -v /etc/frp/frps.ini:/etc/frp/frps.ini \
> --name frps snowdreamtech/frps                        # 运行snowdreamtech/frps容器

3.2配置frpc服务端

​ 创建frp文件夹,并且配置frpc.ini客户端文件:

[root@localhost ~]# mkdir -p /etc/frp/ && cat >>  /etc/frp/frps.ini << EOF
[common]
server_addr = frps服务器的IP地址
server_port = frps服务器的端口
token = frps服务器的token
[ssh]
type = 协议
local_ip = 127.0.0.1                ## 可配置本机ip或者配置其他主机上的ip
local_port = 22                     ## 可配置本机端口或者配置其他主机上的端口
remote_port = 8000                  ## 从本地端口映射到frps服务器上的端口
EOF

注意:在客户端可配置tcp、udp、http、https、stcp、sudp协议。需要详细了解可访问frp官方文档

​ 启动frpc客户端

[root@localhost ~]#docker pull snowdreamtech/frps       ## 拉取snowdreamtech/frpc容器
[root@localhost ~]# docker run  -d \
> --restart=always \
> --network host \
> -v /etc/frp/frpc.ini:/etc/frp/frpc.ini \
> --name frps snowdreamtech/frpc                        ## 运行snowdreamtech/frpc容器

四、frps服务器面板

​ 在浏览器直接输入http://IP地址:7500即可访问

在这里插入图片描述

转载来源

https://zhuanlan.zhihu.com/p/579430608