Linux安装frp Ubuntu Centos

一、安装

# 下载
wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz

# 解压缩
tar -zxvf frp_0.51.3_linux_amd64.tar.gz

二、开机自启

之前写过一篇关于搭建frp服务的文章,里面采用的后台启动方式有一个很大的弊端,就是系统重启之后,frp的服务就要手动开启一次才能正常运行,这实在是不能忍的,现在都什么年代了,现在都流行自动化了,所以必须要让frp开机启动。本文只讲ubuntu系统和centos系统,这两个系统使用率较高,windows系统的还没实践过就先不讲。

(一) ubuntu系统下:

第一步:下载安装Ubuntu下常用的进程管理器supervisor:

sudo apt install supervisor-y

第二步:在/etc/supervisor/conf.d下新建一个配置文件frp.conf。输入以下内容。command 是放置frp的位置。

vim/etc/supervisor/conf.d/frp.conf
客户端:
[program:frp]
command=/etc/frp/frpc-c/etc/frp/frpc.ini
autostart=true
服务端:
[program:frp]
command=/etc/frp/frps-c/etc/frp/frps.ini
autostart=true

重启supervisor

sudo systemctl restart supervisor

查看运行状态:

sudo systemctl status supervisor

查看frp服务是否已经启动

ps-ef|grep frp

最后设置supervisor开机启动

sudo systemctl enable supervisor

(二) centos7系统下

例如:frp的文件路径是/home/frp/下

客户端:

第一步:

cp /home/frpc  /usr/bin/frpc
mkdir /etc/frp
cp /home/frpc.ini  /etc/frp/frpc.ini

第二步:

vim /lib/systemd/system/frpc.service

填入一下内容:

[Unit]
Description=Frp Client Service
After=network.target

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

[Install]
WantedBy=multi-user.target

保存退出

systemctl daemon-reload
systemctl start frpc#启动frpc
systemctl status frpc#查看状态
systemctl enable frpc#设置开机启动
服务端:

第一步:

cp/etc/frp/frps/usr/local/bin/frps

第二步:

vim/lib/systemd/system/frps.service

填入一下内容:

1. [Unit]
2. Description=frps service
3. After=network.target syslog.target
4. Wants=network.target
5. [Service]
6. Type=simple
7. ExecStart=/etc/frp/frps-c/etc/frp/frps.ini
8. [Install]
9. WantedBy=multi-user.target

保存退出

1. systemctl start frps#启动frps
2. systemctl status frps#查看状态
3. systemctl enable frps#设置开机启动

三、服务端配置

frp 服务端详细配置说明。

(一) 基础配置

参数

类型

说明

默认值

可选值

备注

bind_addr

string

服务端监听地址

0.0.0.0

bind_port

int

服务端监听端口

7000

接收 frpc 的连接

kcp_bind_port

int

服务端监听 KCP 协议端口

0

用于接收采用 KCP 连接的 frpc

quic_bind_port

int

服务端监听 QUIC 协议端口

0

用于接收采用 QUIC 连接的 frpc

quic_keepalive_period

int

quic 协议 keepalive 间隔,单位: 秒

10

quic_max_idle_timeout

int

quic 协议的最大空闲超时时间,单位: 秒

30

quic_max_incoming_streams

int

quic 协议最大并发 stream 数

100000

proxy_bind_addr

string

代理监听地址

同 bind_addr

可以使代理监听在不同的网卡地址

log_file

string

日志文件地址

./frps.log

如果设置为 console,会将日志打印在标准输出中

log_level

string

日志等级

info

trace, debug, info, warn, error

log_max_days

int

日志文件保留天数

3

disable_log_color

bool

禁用标准输出中的日志颜色

false

detailed_errors_to_client

bool

服务端返回详细错误信息给客户端

true

tcp_mux_keepalive_interval

int

tcp_mux 的心跳检查间隔时间

60

单位:秒

tcp_keepalive

int

和客户端底层 TCP 连接的 keepalive 间隔时间,单位秒

7200

负数不启用

heartbeat_timeout

int

服务端和客户端心跳连接的超时时间

90

单位:秒

user_conn_timeout

int

用户建立连接后等待客户端响应的超时时间

10

单位:秒

udp_packet_size

int

代理 UDP 服务时支持的最大包长度

1500

服务端和客户端的值需要一致

tls_cert_file

string

TLS 服务端证书文件路径

tls_key_file

string

TLS 服务端密钥文件路径

tls_trusted_ca_file

string

TLS CA 证书路径

nat_hole_analysis_data_reserve_hours

int

打洞策略数据的保留时间

168

(二) 权限验证

参数

类型

说明

默认值

可选值

备注

authentication_method

string

鉴权方式

token

token, oidc

authenticate_heartbeats

bool

开启心跳消息鉴权

false

authenticate_new_work_conns

bool

开启建立工作连接的鉴权

false

token

string

鉴权使用的 token 值

客户端需要设置一样的值才能鉴权通过

oidc_issuer

string

oidc_issuer

oidc_audience

string

oidc_audience

oidc_skip_expiry_check

bool

oidc_skip_expiry_check

oidc_skip_issuer_check

bool

oidc_skip_issuer_check

(三) 管理配置

参数

类型

说明

默认值

可选值

备注

allow_ports

string

允许代理绑定的服务端端口

格式为 1000-2000,2001,3000-4000

max_pool_count

int

最大连接池大小

5

max_ports_per_client

int

限制单个客户端最大同时存在的代理数

0

0 表示没有限制

tls_only

bool

只接受启用了 TLS 的客户端连接

false

(四) Dashboard, 监控

参数

类型

说明

默认值

可选值

备注

dashboard_addr

string

启用 Dashboard 监听的本地地址

0.0.0.0

dashboard_port

int

启用 Dashboard 监听的本地端口

0

dashboard_user

string

HTTP BasicAuth 用户名

dashboard_pwd

string

HTTP BasicAuth 密码

dashboard_tls_mode

bool

是否启用 TLS 模式

false

dashboard_tls_cert_file

string

TLS 证书文件路径

dashboard_tls_key_file

string

TLS 密钥文件路径

enable_prometheus

bool

是否提供 Prometheus 监控接口

false

需要同时启用了 Dashboard 才会生效

asserts_dir

string

静态资源目录

Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源

pprof_enable

bool

启动 Go HTTP pprof

false

用于应用调试

(五) HTTP & HTTPS

参数

类型

说明

默认值

可选值

备注

vhost_http_port

int

为 HTTP 类型代理监听的端口

0

启用后才支持 HTTP 类型的代理,默认不启用

vhost_https_port

int

为 HTTPS 类型代理监听的端口

0

启用后才支持 HTTPS 类型的代理,默认不启用

vhost_http_timeout

int

HTTP 类型代理在服务端的 ResponseHeader 超时时间

60

subdomain_host

string

二级域名后缀

custom_404_page

string

自定义 404 错误页面地址

(六) TCPMUX

参数

类型

说明

默认值

可选值

备注

tcpmux_httpconnect_port

int

为 TCPMUX 类型代理监听的端口

0

启用后才支持 TCPMUX 类型的代理,默认不启用

tcpmux_passthrough

bool

是否透传 CONNECT 请求

false

通常在本地服务是 HTTP Proxy 时使用

四、客户端配置

frp 客户端的详细配置说明。

(一) 基础配置

参数

类型

说明

默认值

可选值

备注

server_addr

string

连接服务端的地址

0.0.0.0

server_port

int

连接服务端的端口

7000

nat_hole_stun_server

string

xtcp 打洞所需的 stun 服务器地址

stun.easyvoip.com:3478

connect_server_local_ip

string

连接服务端时所绑定的本地 IP

dial_server_timeout

int

连接服务端的超时时间

10

dial_server_keepalive

int

和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒

7200

负数不启用

http_proxy

string

连接服务端使用的代理地址

格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm

log_file

string

日志文件地址

./frpc.log

如果设置为 console,会将日志打印在标准输出中

log_level

string

日志等级

info

trace, debug, info, warn, error

log_max_days

int

日志文件保留天数

3

disable_log_color

bool

禁用标准输出中的日志颜色

false

pool_count

int

连接池大小

0

user

string

用户名

设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突

dns_server

string

使用 DNS 服务器地址

默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址

login_fail_exit

bool

第一次登陆失败后是否退出

true

protocol

string

连接服务端的通信协议

tcp

tcp, kcp, quic, websocket, wss

quic_keepalive_period

int

quic 协议 keepalive 间隔,单位: 秒

10

quic_max_idle_timeout

int

quic 协议的最大空闲超时时间,单位: 秒

30

quic_max_incoming_streams

int

quic 协议最大并发 stream 数

100000

tls_enable

bool

启用 TLS 协议加密连接

true

tls_cert_file

string

TLS 客户端证书文件路径

tls_key_file

string

TLS 客户端密钥文件路径

tls_trusted_ca_file

string

TLS CA 证书路径

tls_server_name

string

TLS Server 名称

为空则使用 server_addr

disable_custom_tls_first_byte

bool

TLS 不发送 0x17

true

当为 true 时,不能端口复用

tcp_mux_keepalive_interval

int

tcp_mux 的心跳检查间隔时间

60

单位:秒

heartbeat_interval

int

向服务端发送心跳包的间隔时间

30

建议启用 tcp_mux_keepalive_interval,将此值设置为 -1

heartbeat_timeout

int

和服务端心跳的超时时间

90

udp_packet_size

int

代理 UDP 服务时支持的最大包长度

1500

服务端和客户端的值需要一致

start

string

指定启用部分代理

当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用

meta_xxx

map

附加元数据

会传递给服务端插件,提供附加能力

(二) 权限验证

参数

类型

说明

默认值

可选值

备注

authentication_method

string

鉴权方式

token

token, oidc

需要和服务端一致

authenticate_heartbeats

bool

开启心跳消息鉴权

false

需要和服务端一致

authenticate_new_work_conns

bool

开启建立工作连接的鉴权

false

需要和服务端一致

token

string

鉴权使用的 token 值

需要和服务端设置一样的值才能鉴权通过

oidc_client_id

string

oidc_client_id

oidc_client_secret

string

oidc_client_secret

oidc_audience

string

oidc_audience

oidc_scope

string

oidc_scope

oidc_token_endpoint_url

string

oidc_token_endpoint_url

oidc_additional_xxx

map

OIDC 附加参数

map 结构,key 需要以 oidc_additional_ 开头

(三) UI

参数

类型

说明

默认值

可选值

备注

admin_addr

string

启用 AdminUI 监听的本地地址

0.0.0.0

admin_port

int

启用 AdminUI 监听的本地端口

0

admin_user

string

HTTP BasicAuth 用户名

admin_pwd

string

HTTP BasicAuth 密码

asserts_dir

string

静态资源目录

AdminUI 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源

pprof_enable

bool

启动 Go HTTP pprof

false

用于应用调试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值