frp内网穿透配置教程

本次整理主要为了记录。系统:服务端Ubuntu-Server-20.04,客户端Ubuntu-Desktop-20.04。

frps(服务端)

服务端的配置即使不完善也可以立刻看到效果,给人一种“成功了”的错觉。

  1. 首先下载安装包,安装包可以从github下载,也可以使用命令下载到当前路径。或者从百度网盘下载链接:https://pan.baidu.com/s/1dx4Gkc7DN3Nd9-5Clxw86w 提取码:1234
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
  1. 下载好后解压即用,使用tar解压
tar -zxvf frp_0.33.0_linux_amd64.tar.gz

3.cd到frp_0.33.0_linux_amd64路径下使用vi/vim编辑frps.ini文件,这里遇到了第一个坑——Ubuntu Desktop 版本不自带vim,如果不安装vim,vi编辑器就不太好用。 4.直接用下面的内容替换frps.ini文件内容将所有的注释和空格删掉

[common]
#frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
#授权码,请改成更复杂的
token = 52010  # 这个token之后在客户端会用到
#http监听端口
vhost_http_port = 6001
#frp管理后台端口,请按自己需求更改
dashboard_port = 7500
#frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

#frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

5.依次在linux终端要运行如下指令

sudo mkdir -p /etc/frp
sudo cp frps.ini /etc/frp
sudo cp frps /usr/bin
sudo cp systemd/frps.service /usr/lib/systemd/system/
sudo systemctl enable frps
sudo systemctl start frps

6.开放端口,ufw是标准Ubuntu 20.04安装的一部分,若因为某些原因没有安装可以安装一下

sudo ufw allow 7000
sudo ufw allow 7500

7.验证,使用http://服务端所处IP:7500” ,输入用户名和密码可以查看连接状态用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd,本文未admin、admin 登录之后界面如下:

frpc参数配置说明 frpc配置文件_vim

frpc(客户端)

客户端配置就比较麻烦了,涉及到端口对应,开放ssh权限,如果是虚拟机还涉及到开机自启。
1.和服务端一样,下载后解压

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
 tar -zxvf frp_0.33.0_linux_amd64.tar.gz

也使用scp命令直接从服务端复制

scp 用户名@IP:压缩包路径 本地存放路径

2.进入到解压后的目录下使用vi/vim配置frpc.ini文件,直接把下面的复制到原有文件里就可以,注意:要把注释和空格全部删除,这里有一个坑,如果frpc配置了http服务和subdomain,frps必须有相应的配置vhost_http_port、和subdomain_host。

# 客户端配置
[common]
server_addr = 服务器ip
server_port = 7000 # 与frps.ini的bind_port一致
token = 52010  # 与frps.ini的token一致

#配置ssh服务
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000  # 这个自定义,之后再ssh连接的时候要用

#配置多http服务,可用于小程序开发、远程调试等,不同的客户端连接同一服务端的话也得区分http配置的名字(web、web1),如果没有可以不写下面的
[web]
type = http
local_ip = 127.0.0.1
local_port = 8080
custom_domains = 自定义域名例如my.test.com
[web2]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = 自定义域名例如my.test.com

3.设置开机自启,包含将客户端注册成服务,可以通过命令快速重启

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

将以下内容,复制到frpc.service中

Description=frpc
After=network.target
Wants=network.target

[Service]
#需要设置重试,不然当开机自启时网络未及时建立连接就会报错。
Restart=on-failure
RestartSec=5
ExecStart=frp的路径 -c frpc.ini的路径

[Install]
WantedBy=multi-user.target

刷新服务列表,使用systemctl命令操作frpc

#设置开机自启
systemctl enable frpc.service
#启动服务
systemctl start frpc.service
#关闭开机自启
systemctl disable frpc.service
#停止服务
systemctl stop frpc.service
#重启服务
systemctl restart frpc.service
#查看状态
systemctl status frpc.service
#查看是否设置开机自启
systemctl is-enabled frpc.service

4.开放ssh权限,若已开放则不需要经历本步骤,验证:

ssh 用户名@localhost -p 端口号
或者是
sudo systemctl status ssh

下载、安装,一般会自动打开

sudo apt install -y openssh-server

5.开放端口

sudo ufw allow 6000
sudo ufw allow 6001

6.验证是否配置成功,验证时需要找一台可以连接服务器但是和客户端不在同一网段

ssh 用户名@服务器IP -p 客户端端口
http://自定义域名:vhost_http_port