使用frp搭建内网办公环境
1. 前置准备
需要一台公网能够访问的服务器
2. frp 安装和使用
frp 软件下载地址
frp包中有两个程序分为: client客户端frpc和server服务端frps, frps需要在服务器上运行, frpc需要在本地内网机器上运行
服务器端安装frps
服务器上安装为了方便这里使用docker安装
docker封装详情
- 创建配置文件
我们先登录自己的服务器, 找一个喜欢的地方创建目录 /root/workspace/frp
并创建一个配置文件 frps.toml
# 创建目录
mkdir /root/workspace/frp
# 创建frps服务端配置
echo 'bindPort = 7000' > /root/workspace/frp/frps.toml
- 启动docker
docker run --restart=always --network host -d -v /root/workspace/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
参数解释:
–restart=always 自动重启
–network host 当 docker 容器使用 host 连接方式的时候,容器与宿主共用网络,这样就能从容器中访问宿主网络了
-v /root/workspace/frp/frps.toml:/etc/frp/frps.toml 将镜像中的配置文件挂载到我们自己创建的配置方法维护
–name 指定启动容器的名称
snowdreamtech/frps 远程docker进行名称
- 检查启动是否成功
docker ps
- 开放服务器端口
根据服务器情况自己调整, 我在边开放了 7000和7001端口
7000 就是frts服务的端口和frtc.toml配置文件中配置保持一致, 如果要修改需要保持一致
7001 是后面对外暴露服务的端口, 后续介绍
至此服务端安装告一段落, 接下来安装客户端
客户端安装frpc
我这边以windos为例, frp 软件下载地址客户端把这个下载下来解压., windos只需要frpc.exe和frpc.toml两个文件就可以
- 修改客户端配置文件 frpc.toml
# 你服务器地址或域名
serverAddr = "222.222.222.22"
# 你服务器上配置的端口
serverPort = 7000
[[proxies]]
name = "ssh"
type = "tcp"
# 本地ip
localIP = "127.0.0.1"
# 本地要暴露的端口, 3389 windos远程桌面端口
localPort = 3389
# 远程服务器(使本地3389端口和远程服务器7001端口绑定, 访问服务器7001, 会转发到本地3389)
remotePort = 7001
- 启动客户端
在frpc.exe目录下运行命令
frpc -c frpc.toml
控制台显示连接成功就说明配置成功了
-
使用远程桌面
使用服务器地址+客户端配置的远程端口7000就能够连接内网电脑了。
-
以windos服务方式运行frpc.exe
被连接的电脑必须启动frpc.exe程序, 我们把frpc 做成服务,让它开机自启.这时候我们使用WinSW。
WinSW可以将应用打包成Windows服务的方式运行。
先下载WinSW。
下载下来是一个可执行exe, 修改名称为winsw.exe, 放到frpc.exe相同目录下。
然后创建一个配置文件winsw.xml
,在winsw.exe相同吗,相同目录下。
<service>
<!-- 服务唯一标识-->
<id>frpc</id>
<!-- 服务展示名称 -->
<name>frpc service</name>
<!-- 服务描述 -->
<description>frp 内网穿透客户端</description>
<!-- 可执行文件 -->
<executable>frpc</executable>
<!-- 可执行文件参数 -->
<arguments>-c frpc.toml</arguments>
<!-- 服务启动模式 -->
<logmode>reset</logmode>
</service>
然后在使用powershell 管理员启动到winsw.exe所在目录执行
winsw install
这时候服务已经安装。再打开 服务, 找到刚刚注册的服务, 点击启动。