在Linux服务器下搭建frp内网穿透服务

本文转自:frp内网穿透教程 略有改动

frp介绍

frp 是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议。

frp分为客户端与服务端

frp的工作原理:

  1. 服务端运行,监听一个主端口;
  2. 客户端通过主端口连接,并告知监听端口和转发类型;
  3. 服务端fork新的进程,监听客户端所指定的端口;
  4. 外网用户连接客户端指定的端口,服务端将数据发送给客户端;
  5. 客户端将数据转发到本地服务,从而实现内网主机对外暴露,即内网穿透。

frp内网穿透服务搭建

部署服务端

下载服务端 官网

本文使用frp_0.43.0_linux_amd64.tar.gz演示,请根据自己实际系统选择服务端。

使用wget命令下载

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

解压服务端

请确保自己在压缩文件所在目录

1
tar -zxvf frp_0.43.0_linux_amd64.tar.gz

进入解压后的文件夹

1
cd frp_0.43.0_linux_amd64

配置frps.ini

没有的项亩建议添加进去

主端口

1
2
[common]
bind_port = 7000 #用于客户端连接

启用监控

1
2
3
4
dashboard_port = 7001  #监控页面端口
dashboard_user = admin
dashboard_pwd = 123456
enable_prometheus = true

日志文件

1
2
3
log_file = /var/log/frps.log
log_level = info
log_max_days = 3

身份认证方式

1
2
3
authentication_method = token    
authenticate_new_work_conns = true
token = 123456

配置防火墙

将上一步中服务端所用的所有端口永久开放

1
2
3
firewall-cmd --permanent --add-port 7000/tcp
firewall-cmd --permanent --add-port 7001/tcp
firewall-cmd --reload

后续进行转发时,还要开放客户端指定的端口!

1
2
firewall-cmd --permanent --add-port 客户端指定端口/tcp
firewall-cmd --reload

启用frp

首先

1
cd frp_0.43.0_linux_amd64

确保在frp根目录中,执行

1
./frps -c ./frps.ini

到这里,frp服务端已经可以使用了,但只是临时运行,如果想长期运行,可以采用两种方法。

方法一(建议使用)

使用systemd

方法二 (请在frp目录下执行)

使用nohup

1
nohup ./frps -c ./frps.ini

在终端如果看到以下输出说明运行成功:

1
appending output to nohup.out

部署客户端

下载客户端 官网

本文使用windows系统,使用frp_0.43.0_windows_386.zip演示。

解压客户端

解压好客户端后,进入文件夹中。

配置frpc.ini

基础配置

1
2
3
4
5
6
7
[common]
server_addr = 服务器ip #请换成设置的服务器端口
server_port = 7000 #需要与服务端相同
tls_enable = true
authentication_method = token #需要与服务端相同
authenticate_new_work_conns = true
token = 123456 #需要与服务端相同

转发实例

以通过 SSH 访问内网机器为例

1
2
3
4
5
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 #此处为客户端所指定的监听端口

启用frp

方法一(正常启用)
  1. win键 + r”

  2. 输入cmd、回车

  3. 使用cd命令进入解压文件夹

  4. 输入下方启动命令后回车

    1
    ./frpc.exe -c frpc.ini;
方法二(bat批处理命令启用)

在目录下新建一个frpstart.txt文件,编辑内容

1
frpc.exe -c frpc.ini

保存退出

修改文件后缀为.bat,保存。

需要启用服务,只需要运行frpstart.bat文件即可。而且还可以创建一个快捷方式,然后放入“startup”目录下实现开机自启。右键快捷方式,点击“属性”,选择“快捷方式”,在“运行方式”处可以选择最小化。这样开机自启后文件会自动最小化,不会每次都弹出来。