Docker搭建配置frp内网穿透服务

支持协议

TCP & UDP

常见的TCP和UDP协议转发,也是用的比较多的一种!

HTTP & HTTPS

仅需要将网站转发到外网访问,可以使用这个。这样不会浪费端口。

STCP & SUDP

TCP 和 UDP 类型的服务提供一种安全访问的访问能力。避免让端口直接暴露在公网上导致任何人都能访问到。

XTCP

采用 P2P 的方式进行打洞穿透,如果能成功,后续的流量将不会经过 frps,而是直接通信,不再受到 frps 所在服务器的带宽限制。

TCPMUX

支持将单个端口收到的连接路由到不同的代理。有点和HTTP(S)相似。

服务端

拉取镜像:

1
docker pull snowdreamtech/frps

建立容器:

1
2
3
4
5
6
docker run \
--restart=always \
--network host -d \
-v /docker/frp/frps.ini:/etc/frp/frps.ini \
--name frps \
snowdreamtech/frps

由于挂载了文件到宿主主机,可以直接在宿主主机上编辑/docker/frp/frps.ini进行配置:

1
2
3
4
5
6
7
8
9
10
11
[common]
bind_port = 7000
# 启用面板
dashboard_port = 7500
# 面板登录名和密码
dashboard_user = admin
dashboard_pwd = 12345678
# 使用http代理并使用8888端口进行穿透
vhost_http_port = 8888
# 使用https代理并使用9999端口进行穿透
vhost_https_port = 9999

服务器上的frp安装配置完成,然后在你内网的客户机上安装frp。

客户端

下载客户端https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_windows_amd64.zip

Github下载:Releases · fatedier/frp (github.com)

1
2
3
4
5
6
7
8
9
10
# 公网ip
server_addr = 255.255.255.255
server_port = 10000

[portal]
type = http
# 本地服务端口
local_port = 8081
# 公网ip或者域名
custom_domains = 255.255.255.255

解压后,修改配置文件

img

控制台直接输入:frpc.exe -c frpc.ini 即可启动!

后台运行

1
2
3
4
5
6
7
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin
REM
frpc.exe -c frpc.ini

在frpc.exe目录新建一个文本文件,复制上面的内容保存。修改后缀名为 start-frpc.bat

双击即可运行!

参考链接: