如何使用frp穿透内网

家里有台centos,由于没有公网ip或者公网ip一直在变,在外面访问的时候比较麻烦。
这里介绍frp的使用方式。

一,概述

1.1 工作场景

我的场景主要是在外网ssh到我家里的电脑

1
ssh user@公网ip -p指定端口

这样就可以直接连到我家里的电脑。
其中公网ip是我在阿里云买的便宜服务器。

1.2 工作模式

基本结构为:
家里电脑->公网服务器(提供ip)->办公室电脑
在公网服务器安装server
在家里电脑安装client
办公电脑只需要访问公网服务器即可访问到client

二,部署

2.1 准备

官网链接:https://github.com/fatedier/frp
将压缩包copy到你的家里电脑和公网服务器,并解压到/opt/local/

2.2 客户端

编辑frpc.ini,将token赋值,这里我们假设为token123456,那么效果应该是:

1
2
3
4
5
6
7
8
9
[common]
server_addr = 你的服务器ip
server_port = 7000
token = token123456
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 10022

启动frp:

./frpc -c frpc.ini

2.3 服务器端

编辑frps.ini,将token赋值,这里我们假设为token123456,那么效果应该是:

1
2
3
[common]
bind_port = 7000
token = token123456

启动frps:

./frps -c frps.ini

2.4 验证

通过:

ssh user@公网ip -p10022

你应该就可以在外部直接ssh到你的家里的电脑了。

三,自动启动

3.1 客户端

frpc这个文件copy到/usr/local/bin/,再编写一个service,

vim /etc/systemd/system/frpc.service

输入内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frpc -c /opt/local/frp/frpc.ini

[Install]
WantedBy=multi-user.target

检查是否有异常:

sudo systemctl daemon-reload

如无异常,可以启动刚才的服务:

sudo systemctl start frpc

再看下服务是否正常

sudo systemctl status frpc

正常的话,将服务设置为自动启动:

sudo systemctl enable frpc

3.2 服务端

服务端同客户端,将frpc修改为frps即可

四,其他

这篇文章只是简单介绍了通过frp进行ssh的链接。实际上frp还有很多其他功能,大家可以自行研究。