【运维】从家里远程登录公司电脑-内网穿透FRP

有些操作需要在公司电脑才能完成,如果不在公司的时候,需要连接到公司电脑,这个时候就需要工具来进行内网穿透。frp就是这样一款工具。

开局一张图,其余看不看都无所谓:

如图所示,svr1和svr2是公司局域网的两台机器,在家班工的用户,希望可以远程访问它们:

  • svr1上运行有一个web应用,可能是公司内部的OA系统,用户希望通过浏览器可以直接访问;
  • svr2上开启了远程桌面3389端口,用户希望可以通过远程桌面直接连到这台机器进行操作;

正常情况下这些需求无法实现,因为svr1和svr2处于局域网,远程用户是访问不到的,此时就需要用到内网穿透技术。

一、下载安装

官网:https://gofrp.org/zh-cn/

下载地址:https://github.com/fatedier/frp/releases 

当前版本最新事0.57.0,可以看到有多个平台的安装版本:

  • macos平台:frp_0.57.0_darwin_amd64.tar.gz
  • linux平台:frp_0.57.0_linux_amd64.tar.gz
  • windows平台:frp_0.57.0_windows_amd64.zip

 如果访问太慢,可以从csdn下载0.57.0版本:

下载后解压,目录结构:

其中 frpc.exe、frpc.toml是客服端,frps.exe、frps.toml是服务端。

这里注意的是,frp从0.52.0开始弃用ini配置文件,改为toml配置。

还有个点注意下,服务端和客户端可以是不同版本,比如服务端是linux系统,客户端是windows系统,这在一般的公司环境中很正常。 

我们接下来的场景假设就是这种情况,服务端是CentOS,客户端是Windows系统。

二、服务端配置

把frps、frps.toml拷贝到服务器10.0.0.123上。比如 /home/apps/frp/。

2.1 打开frps.toml编辑:

# 服务发布地址
bindAddr = 0.0.0.0
bindPort = 6666

# 认证密码
auth.token=admin888

# 仪表盘用户密码
webServer.addr = 0.0.0.0
webServer.port=8888
webServer.user=admin
webServer.password=admin999
enablePrometheus=true

# 日志
log.to=/home/apps/frp/log/frps.log
log.level=info
log.maxDays=3

  • bindPort,服务发布端口
  • auth.token,客户端连接时的认证密码
  • webServer.port,网页访问frp时的web服务端口
  • webServer.user,网页访问frp时的登陆账号
  • webServer.password,网页访问frp时的登陆密码

这里主要是区分一下两个密码,

auth.token 是客户端连接服务端的授权密码,也就是图1中第一步注册认证密码,

webServer.password 是通过网页查看frp网站时的登陆密码。

2.2 frps新老版本配置文件的区别

frp的ini版本和toml版本的配置基本出入不大:

2.3 配置自启动服务

添加服务:

> vi /etc/systemd/system/frp.service

编辑内容:

[Unit]
Description=frp service

After=network.target syslog.target

Wants=network.target

[Service]
User=root
WorkingDirectory=/home/apps/frp/
PrivateTmp=true
Restart=always
Type=simple
ExecStart=/home/apps/frp/frps -c /home/apps/frp/frps.toml
ExecStop=/usr/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

 2.4 保存退出,启动服务

# 启动服务
> systemctl start frp
# 查看服务状态
> systemctl status frp

三、客户端配置

把frpc.exe、frpc.toml拷贝到局域网服务器上。

3.1 打开frpc.toml编辑:

# 指定服务端
serverAddr = "10.0.0.123"
serverPort = 6666

# 服务端认证密码
auth.token=admin888

[[proxies]]
name = "svr1"
type = "tcp"
localIP = "192.168.1.101"
localPort = 80
remotePort = 8080

[[proxies]]
name = "svr2"
type = "tcp"
localIP = "192.168.1.102"
localPort = 3389
remotePort = 8081

  • serverAddr,服务端地址
  • serverPort,服务端服务发布端口
  • auth.token,服务端认证密码
  • [[proxies]],内网服务
  • localIP,内网服务器的地址
  • localPort,内网服务器提供服务的端口
  • remotePort,从公网访问此内网服务时提供的端口

多个内网服务的配置也是比较简单的,就是添加多个[[proxies]]。

3.2 frpc新老版本配置文件的区别

frp的ini版本和toml版本的配置基本出入不大:

3.3 配置自启动

如果客户端也是CentOS系统,类似frps服务端,添加服务:

> vi /etc/systemd/system/frpc.service

编辑内容:

[Unit]
Description=frp client

After=network.target syslog.target

Wants=network.target

[Service]
User=root
WorkingDirectory=/home/apps/frp/
PrivateTmp=true
Restart=always
Type=simple
ExecStart=/home/apps/frp/frpc -c /home/apps/frp/frpc.toml
ExecStop=/usr/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

3.4 启动客户端 

> frpc.exe -c frpc.toml

如果配置了自启动,通过服务启动:

> systemctl daemon-reload
> systemctl start frpc

四、远程用户访问

4.1 访问svr1

通过浏览器打开,输入网址 “http://10.0.0.123:8080”。

4.2 访问svr2

通过远程桌面,输入计算机 “10.0.0.123:8081”。

4.3 访问运维页面

打开浏览器,输入网址 “http://10.0.0.1:8888”。

首次访问时需要账号密码:

 

登陆后的界面: 

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值