FRP内网穿透的简单配置(仅针对SSH链接)

  • 1.简单介绍
  • 2.前期准备
  • 3.FRP配置
  • 4.自动重启


1.简单介绍

这次使用frp的原因是:实习要结束了,但是论文还没有做完。租服务器的价格太贵了,于是就想着继续白嫖实习单位的GPU。这时候又遇到一个问题:单位的服务器无法在外网访问,为了能够有一个快一点的网速以及便宜的价格;于是买了腾讯一年的云服务器来进行内网穿透,自己研究了一上午将自己的结果做一个总结。
针对腾讯云补一个坑,在腾讯云租用的轻应用服务器默认不开启root登录,需要以root登录的方式配置frp环境,要不然会报port unavailable的错误

2.前期准备

首先我们需要三台设备:

  1. 一台要我们进行连接但在内网的设备
  2. 一台服务器(带有公网IP的,比如租的阿里云、腾讯云)
  3. 一台我们自己的电脑,用来连接内网设备

在GitHub上下载对应设备版本的frp并进行解压
frp分为服务器端和客户端

  1. 服务器端用来装在服务器上
  2. 客户端用来配置在内网设备上

3.FRP配置

  1. 服务器端配置
    对应的frp文件解压后进入文件夹,会看到以下文件
frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  frps.log  LICENSE  systemd

frpc*是客户端的配置文件
frps*是服务器端的配置文件

然后对配置文件进行编辑

vim frps.ini

[common]
# frp监听的端口,默认是7000,可以改成其他的(**无论改成哪个都要在阿里云或腾讯云的安全组里将该端口打开**)
bind_port = 8888
**网络访问端口,只用SSH连接可以不打开
vhost_http_port = 8050

将服务器端口打开

sudo ufw allow 8888#或者是sudo ufw allow 8888/tcp

更新防火墙

sudo ufw reload

然后开启frp服务

./frps -c frps.ini

会显示以下信息,表示服务成功开启
2022/01/05 11:11:36 [I] [root.go:200] frps uses config file: frps.ini
2022/01/05 11:11:36 [I] [service.go:192] frps tcp listen on 0.0.0.0:8888
2022/01/05 11:11:36 [I] [service.go:235] http service listen on 0.0.0.0:8050
2022/01/05 11:11:36 [I] [root.go:209] frps started successfully
  1. 客户端配置

将下载好的frp文件解压并进入文件夹

vim frpc.ini

[common]
server_addr = 1xx.200.172.183  #这里设置为自己租的服务器的公网IP
server_port = 8888  #这里与服务端设置的bind_port一致

[ssh]
type = tcp
local_ip = 1xx.16.30.2xx  #这里设置为内网机的ip地址
local_port = 22
remote_port = 233  #自己设置的端口号,一定要在自己租的云服务器中打开该端口号

保存后就可以在客户端开启frp服务了

./frpc -c frpc.ini

然后就可以在自己的电脑上愉快的用SSH连接在内网的机器了

ssh 内网机用户名@服务器公网ip

4.自动重启

有了frp自然少不了自动重启,为了避免以后的麻烦,这里使用supervisor来自动重启
安装supervisor

sudo apt install supervisor

创建 supervisor frps配置文件,在 /etc/supervisor/conf.d 创建 frp.conf

[program:frp]
command = /your/path/frps -c /your/path/frps.ini
autostart = true

然后重启一下supervisor

# 重启supervisor
sudo systemctl restart supervisor
# 查看supervisor运行状态
sudo supervisorctl status