通过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文件有点烦)。

相关推荐
一水鉴天9 小时前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑
飞快的蜗牛11 小时前
利用linux系统自带的cron 定时备份数据库,不需要写代码了
java·docker
火星MARK11 小时前
k8s面试题
容器·面试·kubernetes
香吧香12 小时前
Docker Registry 使用总结
docker
赵渝强老师12 小时前
【赵渝强老师】Docker容器的资源管理机制
linux·docker·容器·kubernetes
haicome13 小时前
deepseek部署
docker·ragflow·deepseek 部署
乄bluefox14 小时前
保姆级docker部署nacos集群
java·docker·容器
每天进步一点_JL14 小时前
Docker 是什么?
后端·docker·容器
一叶飘零_sweeeet15 小时前
从 0 到 1 掌控云原生部署:Java 项目的 Docker 容器化与 K8s 集群实战指南
docker·云原生·kubernetes·项目部署
森林猿15 小时前
docker-compose-kafka 4.1.0
docker·容器·kafka