远程开发利器,如何利用frp连上公司服务器

2 阅读3分钟

前言

最近领导画了张大饼,为了能吃上,也为了做事不留遗憾,一直在加班,每天加到晚上十一二点,真是身心疲惫。

思来想去不能这么搞,加班又没有工资,连调休都没有,天天这么玩命,拿这仨瓜两枣够干啥呀。

于是做了一个重大决定——在家加班……

可是公司服务器都在内网,没有公网IP,在家里连不上服务器和各种中间件怎么办?

那就得请出今天的主角了:github.com/fatedier/fr…

有了这款神器还不够,得再搭配一台云服务器,正好公司里有闲置的最低配的云服务器,那不得赶紧安排上。

配合docker,安装真的太简单了。

耐心看完,你一定会有所收获。

giphy (4).gif

正文

⚠️ 本文需要一点点的docker基础,不多,真的只要一点点。

云服务器 frps(服务端)

云服务器需要提前安装好Docker~

配置

通过SSH工具连上服务器,找个位置创建frps目录,再创建frps.toml文件:

cd /home
mkdir frps && cd frps
vi frps.toml

将如下配置拷贝到 frps.toml 中:

bindAddr = "0.0.0.0"
bindPort = 7000

auth.method = "token"
auth.token = "token123456"

webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin_xYJyEs"

注意这里的 auth.token 在下文内网服务器的配置中会用到。

启动

配置文件创建完成后,通过Docker一行命令即可完成安装:

docker run -d --restart=always --name=frps \
    -v /home/frps/frps.toml:/etc/frp/frps.toml \
    snowdreamtech/frps:0.56.0

注意这里用的镜像名称是 frps,即frp-server,可不能搞错。

启动成功后,切记要给云服务器的安全组开通70007500端口。

内网服务器 frpc(客户端)

内网服务器同样需要事先安装Docker,都2024年了,不会还有不用Docker的公司服务器吧 😁

配置

与云服务器相同的操作,找个位置创建 frpc.toml 配置文件,务必注意,这里是 frpc,不是 frps 了。

cd /home
mkdir frpc && cd frpc
vi frpc.toml

拷贝忍者出动:

serverAddr = "xxx.xxx.xxx.xxx"
serverPort = 7000

auth.method = "token"
auth.token = "token123456"

webServer.addr = "0.0.0.0"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin_TkdhtY"
webServer.pprofEnable = false


[[proxies]]
name = "oracle:1521"
type = "tcp"
localIP = "192.168.1.200"
localPort = 1521
remotePort = 1521

[[proxies]]
name = "redis:6379"
type = "tcp"
localIP = "192.168.1.11"
localPort = 6379
remotePort = 6051

[[proxies]]
name = "minio:9200"
type = "tcp"
localIP = "192.168.1.11"
localPort = 9200
remotePort = 6052

[[proxies]]
name = "minio:9201"
type = "tcp"
localIP = "192.168.1.11"
localPort = 9201
remotePort = 6053

[[proxies]]
name = "nacos:8848"
type = "tcp"
localIP = "192.168.1.11"
localPort = 8848
remotePort = 6054

这里有几项需要修改:

  • serverAddr = "xxx.xxx.xxx.xxx": 请修改为云服务器的 ip
  • auth.token = "token123456": 修修改为服务端配置的 token

关于proxies的简单解释:

  • name: 请保持唯一,不能重复
  • type: tcp/http/udp等多种类型都是支持的
  • localIP: 局域网ip,只要内网服务器能连上的ip都可以做穿透
  • localPort: 当然就是内网服务的端口
  • remotePort: 对应到云服务器的端口
    • 最终访问时便是通过 ${serverAddr}:${remotePort}进行访问
    • 云服务要在安全组中开放端口

启动

还是只要一句Docker命令:

docker run -d --restart=always --name=frpc \
    -v /home/frpc/frpc.toml:/etc/frp/frpc.toml \
    snowdreamtech/frpc:0.56.0

启动成功后,一定再检查下云服务器中对应的端口是否开放,每个新的端口映射,都要去开放端口。

如果在云服务器上开通了7500端口,那访问云服务器ip:7500,也可以看到frp服务端的可视化面板,如下图: image.png

结尾

内网穿透配置完成后,在项目中新建配置文件,把所有的服务都换成云服务器地址。

如此这般那般,终于可以愉快的在家加班了。

天选打工人。