FRP内网穿透

1. 下载Frp

wget https://gitpy.colzry.tk/github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz

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

2. 服务端安装

2.1 解压文件

tar -zxvf frp_0.48.0_linux_amd64.tar.gz
cd frp_0.48.0_linux_amd64/
cp frps /usr/local/bin/

2.2 编写配置文件

mkdir /etc/frps

vim /etc/frps/frps.ini
[common]
bind_port = 7000
token = czyadmin

2.3 启动

sudo vim /lib/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frps -c /etc/frps/frps.ini
ExecReload=/usr/local/bin/frps reload -c /etc/frps/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start frps.service
sudo systemctl enable --now frps.service

3. 客户端安装

3.1 解压文件

tar -zxvf frp_0.44.0_linux_amd64.tar.gz
cd frp_0.44.0_linux_amd64/
cp frpc /usr/local/bin/

frpc.ini 配置文件详解

[common]
#远程frp服务器地址,可ip可域名
server_addr = frp02.wefinger.club
#远程frp服务器通信端口
server_port = 7000
#特权密钥
token = 12345678

#http穿透
[demo-http]
#穿透类型
type = http
#本地监听ip
local_ip = 127.0.0.1
#本地监听端口,欲穿透转发端口。
local_port = 8080
#自定义穿透域名,该域名需要解析至frp服务器。
custom_domains = testhttp.frp02.wefinger.club

#https穿透
[demo-https]
type = https
local_ip = 127.0.0.1
local_port = 8088
custom_domains = testhttps.frp02.wefinger.club

#tcp穿透,例如ssh、ftp服务
[demo-tcp]
type = tcp
 #欲穿透地址,本地必须可访问。
local_ip = 127.0.0.1
#可批量绑定,使用`,`分隔,或者使用`-`定义端口段。
local_port = 22
#绑定远程端口,可批量绑定,使用`,`分隔,或者使用`-`定义端口段。
remote_port = 20022

#udp穿透,例如转发dns服务
[demo-udp]
type = udp
local_ip = 8.8.8.8
local_port = 53
remote_port = 20053

3.2 启动

配置文件根据各网站的粘贴过来就行

3.2.1 直接启动

启动

./frpc -c ./frpc.ini &

3.2.2 后台启动

配置后台自动启动

sudo vim /lib/systemd/system/frpc.service
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frpc -c /etc/frpc/frpc.ini
ExecReload=/usr/local/bin/frpc reload -c /etc/frpc/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl start frpc.service
sudo systemctl enable frpc.service

3.3 配置多个隧道

创建配置文件目录

mkdir -p /etc/frpc

打开配置文件的目录,编写对应的配置文件

cd /etc/frpc
vim 102SSH.ini

配置示例如下

[common]
server_addr = cn-gydx-bgp-1.openfrp.top
server_port = 8120
tls_enable = true
tcp_mux = true
protocol = tcp
user = 8022c3fe7ba2d9d8c953f899b86da17a
tls_enable = true
token = mnE3A8hIWapwShje
dns_server = 114.114.114.114
 
[102UH]
privilege_mode = true
type = tcp
local_ip = 192.168.5.102
local_port = 1022
remote_port = 60856
use_encryption = false
use_compression = false

配置System服务

vim /lib/systemd/system/frpc@.service
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frpc -c /etc/frpc/%i.ini
ExecReload=/usr/local/bin/frpc reload -c /etc/frpc/%i.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

根据配置文件名称来启动服务

systemctl daemon-reload
systemctl start frpc@102SSH
systemctl status frpc@102SSH
systemctl enable frpc@102SSH

如果您忘记了之前开启过哪些隧道,使用下面的命令可以列出当前运行中的隧道

systemctl list-units frpc@*

如果您忘记了之前设置过的自启隧道,可以使用下面的命令列出

systemctl list-units --all frpc@*