跳到主要内容

使用frp内网穿透

准备条件

服务端配置

下载最新版本

wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_386.tar.gz

解压下载文件

tar -zxvf frp_0.44.0_linux_386.tar.gz

frps和frps.ini是客户端相关文件与配置,进入解压目录配置frps.ini文件:

[common]
# 绑定端口配置
bind_port = 7000
vhost_https_port = 7022
vhost_http_port = 7080
token = 1520

# 控制面板配置
dashboard_port = 7001
dashboard_user = <登录账号>
dashboard_pwd = <登录密码>
enable_prometheus = true

log_file = /var/log/frps.log
log_level = info
log_max_days = 3
  • 在etc目录创建目录:sudo mkdir -p /etc/frp
  • 将frps.ini复制至/etc/frp目录:sudo cp frps.ini /etc/frp
  • 将解压文件中的frps目录复制至/usr/bin目录:sudo cp frps /usr/bin
  • 创建并编辑frps.service文件vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy = multi-user.target
  • 启动frp:systemctl start frps
  • 停止frp:systemctl stop frps
  • 重启frp:systemctl restart frps
  • 查看frp状态:systemctl status frps
  • 配置frps开机自启:systemctl enable frps

客户端配置

客户端指内网中需要暴露服务的设备

  • 从下载页面下载压缩包并解压
  • frpc和frpc.ini是客户端相关文件与配置
  • 配置frpc.ini文件
[common]
# 服务器的ip地址
server_addr = <服务器IP>
server_port = 7000
token = 1520

# 配置http服务
[web]
type = http
local_port = 8000
custom_domains = <自定义域名>

# 配置https服务
[test_htts2http]
type = https
custom_domains = <自定义域名>

plugin = https2http
plugin_local_addr = 127.0.0.1:8000

# HTTPS 证书相关的配置
plugin_crt_path = <服务器证书路径>.crt
plugin_key_path = <服务器证书路径>.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

SSL域名证书说明

HTTPS证书文件需放在服务器端对应的文件目录 pem转crt格式:openssl x509 -in fullchain.pem -out fullchain.crt pem转key格式:openssl rsa -in privkey.pem -out privkey.key

  • 客户端启动:./frpc -c frpc.ini
  • 更改客户端host文件:<服务器IP> <域名>
  • http访问内网8000端口服务:<http域名>:7080
  • https访问内网8000端口服务:<https域名>:7022