Debian 上搭建 frp 实现内网穿透

Contents
  1. 1. 服务端安装
  2. 2. 服务端设置
  3. 3. 客户端安装
  4. 4. 客户端设置
  5. 5. References

本文最后更新于 2020 年 9 月 28 日


本文以 Debian 10 为例,介绍如何搭建 frp 服务端,用以实现内网穿透,并以 VNC 的使用为例,介绍如何配置客户端。本文同样完全适用于 Ubuntu 20.04 系统。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行 frp 的部署,并默认已按初始化配置文章对服务器进行了配置。


服务端安装

GitHub 上找到对应架构的最新压缩包并下载,例如:

1
2
3
4
5
6
export VERSION_FRP="0.34.0"
cd /usr/local/bin
sudo wget https://github.com/fatedier/frp/releases/download/v"$VERSION_FRP"/frp_"$VERSION_FRP"_linux_amd64.tar.gz
sudo tar -xf frp_"$VERSION_FRP"_linux_amd64.tar.gz -C /usr/local/bin
sudo mv frp_"$VERSION_FRP"_linux_amd64 frp
sudo rm frp_"$VERSION_FRP"_linux_amd64.tar.gz

服务端设置

创建配置文件:

1
sudo vim /usr/local/etc/frp/frps.ini

添加如下内容:

/usr/local/etc/frp/frps.ini
1
2
3
[common]
bind_port = 自定义端口之一
token = 强密码

自启动:

1
sudo vim /etc/systemd/system/frps.service
/etc/systemd/system/frps.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/frp/frps -c /usr/local/etc/frp/frps.ini

[Install]
WantedBy=multi-user.target
1
2
sudo systemctl enable frps
sudo systemctl start frps

防火墙放行:

1
2
sudo ufw allow 自定义端口之一
sudo ufw allow 自定义端口之二

客户端安装

客户端的安装和服务端的安装过程大同小异,此处不再赘述,只是客户端将可执行文件解压至了 ~/frp 目录下。

客户端设置

此处以监听在 5900 端口上的 VNC 服务为例,创建配置文件:

1
vim ~/frp/config.ini

添加如下内容:

~/frp/config.ini
1
2
3
4
5
6
7
8
9
[common]
server_addr = 服务端 IP 地址
server_port = 服务端所设置的自定义端口
token = 服务端所设置的密码

[vnc]
type = tcp
local_port = 5900
remote_port = 自定义端口之二

启动服务:

1
2
cd ~/frp
./frpc -c config.ini

Ctrl + C 即可停止运行。


References

fatedier / frp

frp 内网穿透神器搭建

Ubuntu 配置 VNC + frp 内网穿透实现桌面远程访问

Mastodon