Hero image home@2x

Systemd配置frp轻松实现内网穿透服务的最佳方式!

Systemd配置frp轻松实现内网穿透服务的最佳方式!

1. 什么是frp?

frp(Fast Reverse Proxy)是一个专门用于内网穿透的高性能反向代理应用,广泛应用于将内网服务暴露到公网上。它可以有效地支持 TCP、UDP 和 HTTP、HTTPS 等多种协议,允许外部网络访问内网的服务,而无需设置复杂的网络配置。

2. systemd 概述

systemd 是一种系统和服务管理器,用于许多 Linux 发行版。它提供了一种统一的方法来管理系统的启动过程、守护服务以及其他系统功能。使用 systemd 可以确保服务能够在系统启动时自动启动,并能够根据需要重启。

3. 安装 frp

要使用 frp,首先需要在你的服务器上安装它。可以通过以下步骤进行安装:

  

# 下载 frp 的最新版本

wget https://github.com/fatedier/frp/releases/download/vX.X.X/frp_X.X.X_linux_amd64.tar.gz

# 解压下载的包

tar -zxvf frp_X.X.X_linux_amd64.tar.gz

# 进入目录

cd frp_X.X.X_linux_amd64

4. 配置 frp

frp 通常由两个部分组成:frps(服务器端)和 frpc(客户端)。你需要分别在服务器和客户机上配置这两个部分。

首先,在服务器上创建 frps.ini 配置文件,内容示例:

  

[common]

bind_port = 7000

然后,在客户端上创建 frpc.ini 配置文件,内容示例:

  

[common]

server_addr = your_server_ip

server_port = 7000

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6000

5. 编写 systemd 服务文件

在系统中,将 frp 服务设置为开机自启动非常简单。首先,创建一个 service 文件,例如 /etc/systemd/system/frps.service,内容如下:

  

[Unit]

Description=frp server

After=network.target

[Service]

Type=simple

ExecStart=/path/to/frps -c /path/to/frps.ini

Restart=on-failure

[Install]

WantedBy=multi-user.target

然后,为客户端创建一个类似的 service 文件 /etc/systemd/system/frpc.service,内容如下:

  

[Unit]

Description=frp client

After=network.target

[Service]

Type=simple

ExecStart=/path/to/frpc -c /path/to/frpc.ini

Restart=on-failure

[Install]

WantedBy=multi-user.target

6. 启动 frp 服务

配置完成后,需要启动服务并设置为开机自启。使用以下命令:

  

# 启动 frp 服务器

sudo systemctl start frps

sudo systemctl enable frps

# 启动 frp 客户端

sudo systemctl start frpc

sudo systemctl enable frpc

7. 检查服务状态

确保 frp 服务正常运行可以通过以下命令检查状态:

  

sudo systemctl status frps

sudo systemctl status frpc

在检查过程中,注意输出信息,确认没有报错。

8. 常见问题解答

frp 提供什么类型的内网穿透服务?

frp 支持 TCP、UDP、HTTP 和 HTTPS 等多种协议,适用于各种不同的场景,例如远程 SSH 访问、Web 服务器访问等。

9. 如何查看日志文件?

我们可以通过什么方式查看 frp 的日志文件?

可以使用以下命令查看服务的日志信息:

  

journalctl -u frps

journalctl -u frpc

这些日志将帮助你排查任何可能出现的问题。

10. frp 有哪些常见的配置选项?

在配置 frp 时需要注意哪些常见的配置选项?

在 frp 的配置中,常见的选项包括 bind_port、server_addr 和 server_port 等。此外,你还可以为不同的服务配置不同的 remote_port,以管理不同的流量。对于客户端,有 local_ip 和 local_port 可以指定内网应用的访问地址,确保向外部暴露的正确性。