Frp内网穿透

需求场景: 为了进行深度学习模型训练,使得内网环境下的服务器能在公网环境下被访问。将内网端口通过映射到公网机器上实现正常访问。

环境准备

公网

  • 需要租赁一台公网服务器(云服务器),例如腾讯云、百度云等。
  • 公网服务器 IP:xx.xx.xx.xx

内网

  • 一台本地服务器,可以是windows、linux、macOS。本人是Linux。
  • 内网服务器 IP:xx.xx.xx.xx

公网服务器与本地服务器要打开相应的端口,才能使服务生效。

环境部署

frp资源包下载:https://github.com/fatedier/frp/releases
在这里插入图片描述

公网部署

1. 将资源包放在/home/local/目录下,并进行解压

[root@Server:/home/local]$ tar -zxvf frp_0.51.3_linux_amd64.tar.gz -C /usr/local/bin/frp

2. 进入frp软件目录下,并修改frps文件权限,编辑frps.ini文件

# 进入frp软件目录
[root@Server:/home/local]$ cd /home/liu/frp_0.45.0_linux_amd64
# 修改frpc文件权限
[root@Server:/home/local/frp_0.45.0_linux_amd64]$ sudo chmod 777 frps
# 编辑frpc.ini文件
[root@Server:/home/local/frp_0.45.0_linux_amd64]$ vim frcs.ini

3. 进入frps.ini文件修改内容,i进入编辑,:wq!保存并退出

[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 10080
vhost_https_port = 10443

# 如果没有必要,端口均可使用默认值,token、user和password项请自行设置。
# “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
# “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
# “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
# “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
# “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。

4. 可以运行frps的服务端

[root@Server:/home/local/frp_0.45.0_linux_amd64]$ ./frps -c frps.ini

# 如果看到屏幕输出这样一段内容,即表示运行正常,如果出现错误提示,请检查上面的步骤。

2024/08/12 15:22:39 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
2024/08/12 15:22:39 [I] [service.go:172] http service listen on 0.0.0.0:10080
2024/08/12 15:22:39 [I] [service.go:193] https service listen on 0.0.0.0:10443
2024/08/12 15:22:39 [I] [service.go:216] Dashboard listen on 0.0.0.0:7500
2024/08/12 15:22:39 [I] [root.go:210] Start frps success

内网部署

1. 将资源包放在/home/local/目录下,并进行解压

[root@Client:/home/local]$ tar -zxvf frp_0.51.3_linux_amd64.tar.gz -C /usr/local/frp

2. 进入frp软件目录下,并修改frpc文件权限,编辑frpc.ini文件

# 进入frp软件目录
[root@Client:/home/local]$ cd /home/liu/frp_0.45.0_linux_amd64
# 修改frpc文件权限
[root@Client:/home/local/frp_0.45.0_linux_amd64]$ sudo chmod 777 frpc
# 编辑frpc.ini文件
[root@Client:/home/local/frp_0.45.0_linux_amd64]$ vim frpc.ini

3. 进入frpc.ini文件修改内容,i进入编辑,:wq!保存并退出,设置好remote_port

[common]
sever_adder = xx.xx.xx.xx   # 公网的ip
sever_port = 7000
tls_enable = true

[108]  # 对应的机器名
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6066 # 哪个能连通就设置哪一个

进行测试

[root@Client:/home/local/frp_0.45.0_linux_amd64]$ ./frpc -c ./frpc.ini

这样即为成功

在这里插入图片描述

报错处理:

  • 报错1

[W] [control.go:167] [202b253ac165cba3] [108] start error: proxy name [108] is already in use
解决办法: 修改frpc.ini里的内容,[108]被占用,改为其他名称

  • 报错2

[W] [control.go:167] [f4a989b8fb0ae012] [ssh2070] start error: port already used
解决办法: 修改frpc.ini里的内容,即更改remote_port

4. 在/etc/systemd/system/目录下创建frpc.service服务文件

[root@Client:/home/local/frp_0.45.0_linux_amd64]$ cd /etc/systemd/system/
[root@Client:/etc/systemd/system]$ sudo vim frpc.service

frpc.service内容为:

[Unit]
Description=frpc
After=network.target
Wants=network.target

[Service]
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/frp/frps -c /usr/local/bin/frp/frps.ini  # 自己的frp启动命令

[Install]
WantedBy=multi-user.target

进行测试

# 刷新服务列表
[root@Client:/etc/systemd/system]$ systemctl daemon-reload
# 设置开机自启
[root@Client:/etc/systemd/system]$ systemctl enable frp.service
# 启动frp服务
[root@Client:/etc/systemd/system]$ systemctl start frp.service
# 查看状态 
[root@Client:/etc/systemd/system]$ systemctl status frpc.service 
# 查看是否设置开机自启 
[root@Client:/etc/systemd/system]$ systemctl is-enabled frpc.service

5. 重启机器

# 重启命令 
[root@Client:/etc/systemd/system]$ sudo shutdown -r
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sherry Wangs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值