通过Docker+frp实现内网穿透

通过Docker+frp实现内网穿透

这篇文章是最近又折腾了一个局域网的小网站,在这边记录一下内网穿透的方法,还是老方法frp,只不过之前用的是.start.sh,这次使用的是Docker

配置内网穿透一定要有一个公网服务器,也就是能访问到的服务器,可以是腾讯云、阿里云等

1. 创建并修改配置文件

1.1 在公网上创建frps的配置文件

shell 复制代码
## 创建目录
export FRP_HOME=/etc/docker/frp/ && mkdir &FRP_HOME
## 创建文件
touch &FRP_HOME/frps.ini

修改文件的内容:

shell 复制代码
vim frps.ini

>>> 内容如下:<<<

[common]
bind_port = 7000
vhost_http_port = 7080
vhost_https_port = 7081
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = username
dashboard_pwd = password
token=token_information
# 👇 用来实现二级域名,如:xxx.yyyy.com,下面这一行是不包含「xxx」的剩下的「yyyy.com」那一部分👇
subdomain_host = yyyy.cc

subdomain_host = yyyy.cc并非一定要写,首先实现二级域名的方式有很多,frp还提供了一种用『custom_domains=xxx.yyyy.cc』的方式,DNS解析也可以实现二级域名,方法很多自行尝试。

1.2 在内网上创建frpc的配置文件

shell 复制代码
## 创建目录
export FRP_HOME=/etc/docker/frp/ && mkdir &FRP_HOME
## 创建文件
touch &FRP_HOME/frpc.ini

修改文件的内容:

shell 复制代码
vim frpc.ini

>>> 内容如下:<<<

[common]
# 公网IP
server_addr = xx.xx.xx.xx
# frps 配置文件中的 bind_port
server_port = 7000
# frps 配置文件中的 token
token=token_information

# 一个连接,名字随便取,但不可重复
[xxx]
# 连接类型,可以是tcp、http、https,后两者必须配置「subdomain」或「custom_domains」
type = tcp
# 本地IP:可以是本机,也可以是局域网的其他IP
local_ip=127.0.0.1
# 本地端口:想要网穿的端口
local_port = 80
# 二级域名:xxx.yyyy.com 中「xxx」的那一部分
subdomain = xxx

# 又一个连接,名字随便取,但不可重复
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
# 通过公网的 10022 就可以访问到内网这台电脑的22端口
remote_port = 10022

2. 启动 Frp

1. 公网启动 | frps

shell 复制代码
docker run -d --restart always --network host --name frps -v /etc/docker/frp/frps.ini:/etc/frp/frps.ini snowdreamtech/frps

2. 内网启动 | frpc

shell 复制代码
docker run -d --restart always --network host --name frpc -v /etc/docker/frp/frpc.ini:/etc/frp/frpc.ini snowdreamtech/frpc

访问IP:7500可以查看Dashboard控制面板。

内网穿透的方法很多,frp绝对不是最好的,还有花生壳、甚至通过路由器等,但是frp的性价比很高,只要你的服务器还能多跑一个Docker就可以启动起来。

另外,使用解压压缩包然后.start.sh也是一种启动frp的方式,可以试着自己编写systemctl文件来实现给systemctl托管以方便的控制开机自启、开启关闭等,也是一个不错的选择(之前就是用的这种方法,但是写systemctl文件有点烦)。

相关推荐
sauTCc8 小时前
Docker初探
docker
云上艺旅8 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
c无序8 小时前
【Docker-7】Docker是什么+Docker版本+Docker架构+Docker生态
docker·容器·架构
FixBug_Nick8 小时前
使用Docker安装及使用最新版本的Jenkins
docker·容器·jenkins
ghostwritten10 小时前
Run Milvus in Kubernetes with Milvus Operator
容器·kubernetes·milvus
Zero_to_zero123410 小时前
解决docker的ubuntu系统中文乱码问题
ubuntu·docker·容器
@郭小茶10 小时前
docker-compose方式部署docker项目
运维·docker·容器
duration~12 小时前
K8S自定义CRD
容器·贪心算法·kubernetes
程序员 小柴13 小时前
docker的与使用
java·docker·eureka
ghostwritten13 小时前
Docker Registry Clean
运维·docker·容器