因为家里部署了群晖,还有pc和路由之类的内网应用,在公司或者外面想远程访问,考虑过购买蒲公英之类的硬件设备和会员来实现内网访问,但是经过一番探索,发现内网穿透的方案其实非常多,设置也不复杂,与其要花钱购买硬件每年续费会员,不如利用闲置服务器自己搭建个内网穿透服务。
一、原理
FRP 由两部分组成:FRP 客户端(frpc)和 FRP 服务器(frps),服务端部署在有公网ip的服务器上,而客户端则部署在内网里,通过预先的服务配置,服务端和客户端保持的多个连接。当外网请求预先映射好的外网ip端口地址时,请求会通过之前建立的连接走到内网的frp客户端,客户端再将请求指向对应的内网服务,最后服务的响应再通过客户端回传给外网frp服务端,给到访问用户。
二、前置准备
- 拥有公网ip的服务器,如果可以是国内云主机,也可以是国外的云主机,但是如果你的内网环境在国内的话,最好也使用国内的云主机搭建frp服务端,这样访问会更加顺畅。
- 内网搭建frp客户端的介质,frp客户端作为插件可以安装在很多环境里,你可以是内网的服务器,也可以是路由器等硬件上。
三、服务端搭建
首先默认你已经有了docker环境,然后执行以下语句:
cd opt
mkdir docker
cd docker
新建docker-compose.yaml文件
version: '3.3'
services:
frps:
restart: always
network_mode: host
volumes:
- './frps.ini:/etc/frp/frps.ini'
container_name: frps
image: snowdreamtech/frps:0.51.3
然后在同级目录新建frps.ini文件,注意这是服务端的配置文件,内容如下:
[common]
# frp服务端口
bind_port = 6005
# 启用面板,面板登录名和密码
dashboard_port = 6006
dashboard_user = root
dashboard_pwd = 123
# 使用http代理并使用6111端口进行穿透,使用https代理并使用6222端口进行穿透
vhost_http_port = 6111
vhost_https_port = 6222
# 代理的服务外网访问域名
subdomain_host = www.xxxxx.com
# 服务token(根据实际情况修改),相当于连接密码,建议设置
token = 123456
然后启动服务端
docker-compose up -d
然后就可以登录网页ip:6006访问连接看板了,用户是root,密码是123
四、客户端搭建
客户端搭建不做描述,可以使用现成的客户端插件,配置好就能够访问了
版权属于:Jolly
本文链接:https://totoro.site/index.php/archives/134/
关于转载:原创文章,禁止转载
以前貌似花生壳用户比较多