首页  编辑  

ubuntu22.04系统配置frp内网穿透记录

Tags: /计算机文档/Linux & Unix/   Date Created:

ubuntu22.04系统配置frp内网穿透记录

说明:配置完之后根据记忆写的,方便后续参考。

参考资料

frp应用场景

具体有多少应用场景我不太清楚,这里只介绍我自己用到的。(1)在办公室远程SSH控制自己在家里的另一台电脑; (2)自己电脑上运行了一个web服务,可以通过frp让别人(非局域网)访问到。

专业解释

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

需要准备的东西

一个云服务器(包含公网IP),同时本地电脑需要联网。

配置过程

主要分成两块,一个是自己的电脑(客户端),一个是云服务器(服务端)。

服务端配置

第一步:下载,链接:https://github.com/fatedier/frp/releases​ 我下载的版本是frp_0.45.0_linux_amd64.tar.gz

第二步:解压,tar -zxvf frp_0.45.0_linux_amd64.tar.gz​, cd frp_0.45.0_linux_amd64

第三步:修改配置文件 frps.ini​,我的配置文件内容如下:

[common]
bind_port = 7000
dashboard_port = 10011
vhost_http_port = 10012
token = 12345
dashboard_user = ab
dashboard_pwd = ab1234

下面对各个配置进行解释:

(1)bind_port​:frp监听的默认端口号,用来与客户端通信,这个端口号是可以自己改的。
(2)dashboard_port​:frp管理后台端口。
(3)vhost_http_port​:这个端口对应本地的web服务。
(4)token​:授权码,后面客户端也需要填这个。
(5)dashboard_user​:frp管理后台用户名。
(6)dashboard_pwd​:frp管理后台密码。

第四步:在云服务器控制台开启对应的端口。我这里是华为云,需要修改安全组,我这里不太清楚需要配置出方向还是入方向,就全部配置了。

第五步:配置frp服务开机自启。

创建对应的目录和文件:

sudo mkdir /etc/systemd/system
sudo vim /etc/systemd/system/frps.service

frpc.service文件配置如下:(其中ExecStart修改成自己对应的文件路径)

[Unit]
Description = frps_service
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
User = root
ExecStart = /root/frp/frp_0.45.0_linux_amd64/frps -c /root/frp/frp_0.45.0_linux_amd64/frps.ini

[Install]
WantedBy=multi-user.target

设置frp服务开机自启:sudo systemctl enable frps

其他frps常见指令:

sudo systemctl start frps      # 启动frp服务
sudo systemctl stop frps       # 停止frp服务
sudo systemctl restart frps    # 重启frp服务
sudo systemctl status frps     # 查看frp服务状态

第六步:启动frp服务。 sudo systemctl start frps

第七步:验证服务是否启动。在浏览器输入你的公网ip加上frps.ini文件里设置的dashboard_port端口号,访问管理端,需要输入你设置的账号密码(也是在frps.ini文件里设置的)。出现下面的页面就说明服务端设置成功了。

客户端配置

注意:如果是新装的ubuntu系统最好先开启一下ssh,不然后面远程ssh会出现问题。可参考这个教程

第一步:使用和服务端一样版本的frp安装包,解压然后进入对应文件夹内。(指令参考服务端配置过程)

第二步: 修改frpc.ini​文件。我的配置文件内容如下,‘#’后面的内容为注释,复制进文件后要删掉

[common]
server_addr = 123.3.456.789  # 云服务器的公网IP
server_port = 7000  # frp监听的端口,与服务端配置保持一致
token = 123456  # 授权码,与服务端配置保持一致

[ssh]    # 此处配置用于远程ssh控制内网电脑
type = tcp
local_ip = 127.0.0.1   # 对应本地ip
local_port = 22     # 本地ssh默认端口
remote_port = 56801  # 远程ssh访问时对应的端口,这里根据自己需要更改,上面的都是默认的

[web]   # 此处配置用于远程访问内网电脑上的web服务
type = http
local_ip = 127.0.0.1
local_port = 7860   # 内网web服务对应的端口
remote_port = 10012  # 远程访问内网电脑服务时对应的端口
custom_domains = 123.3.456.789  # 云服务器的公网IP

第三步:设置客户端frp自启

先创建目录和文件

sudo mkdir /etc/systemd/system
sudo vim /etc/systemd/system/frpc.service

frpc.service​中的内容可参考如下,其中ExecStart需要修改为自己的文件路径

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

[Service]
Restart=on-failure
RestartSec=5
ExecStart=/home/user/software/frp/frpc -c /home/user/software/frp/frpc.ini

[Install]
WantedBy=multi-user.target

开机自启frp服务:sudo systemctl enable frpc

常用指令:

sudo systemctl start frpc      # 启动frp服务
sudo systemctl stop frpc       # 停止frp服务
sudo systemctl restart frpc    # 重启frp服务
sudo systemctl status frpc     # 查看frp服务状态

第四步:启动frpc. sudo systemctl start frpc

第五步:登陆服务端dashboard,点击Proxies​里面的TCP​和HTTP​进行验证,示例图如下。

使用