内网穿透搭建之frp

frp   内网传透  

需求场景

需要在局域网外连接局域网内的机器;简单说就是你在公司搭建了一个服务器,但是又没有公网ip,还想在公司以外的网络环境下访问家里的服务器,那么实现这个需求的其中一个技术就叫内网穿透

必要的搭建环境

  • 服务端: 公网准备一台服务
  • 客户端: 内网准备一台服务器

搭建步骤

  • frps (frp-server)是frp 软件的服务端,部署在公网的云服务器上
  • frpc (frp-client)是frp 软件的客户端,部署在内网的服务器上

服务端搭建

  • 下载地址
https://github.com/fatedier/frp/releases  
# https://github.com/fatedier/frp/releases/download/v0.51.1/frp_0.51.1_linux_amd64.tar.gz
  • 配置服务端
tar zxf frp_0.51.1_linux_amd64.tar.gz && mv frp_0.51.1_linux_amd64 /data/app/frp_server  
cd /data/app/frp_server

# 编辑frps.ini
vim frps.ini

[common]
bind_port = 19198  
# 配置一个很长复杂的token
token = **********  
  • 配置frpserver端systemd,使用systemctl管理frpserver应用
[Unit]
Description=frps Server  
After=syslog.target  network.target  
Wants=network.target

[Service]
Type=simple  
ExecStart=/data/app/frp_server/frps -c /data/app/frp_server/frps.ini

[Install]
WantedBy=multi-user.target  
  • 启动和开机启机设置
systemctl start frps.service  
systemctl enable frps.service  
# 如果修改了配置注意执行reload
systemctl daemon-reload  
  • 检查是否在监听
ps uax|grep frp&& netstat -tpln|grep frp

root     31340  0.1  1.5 727336 16212 ?        Ssl  16:41   0:00 /usr/local/frp_server/frps -c /usr/local/frp_server/frps.ini  
tcp6       0      0 :::19198                :::*                    LISTEN      31340/frps  

客户端搭建

  • 下载同服务端
wget https://github.com/fatedier/frp/releases/download/v0.51.1/frp_0.51.1_linux_amd64.tar.gz  
  • 配置客户端
tar zxf frp_0.51.1_linux_amd64.tar.gz && mv frp_0.51.1_linux_amd64 /data/app/frp_client  
cd /data/app/frp_client  
# 修改客户端配置
vim frpc.ini  
[common]
server_addr = ***********  
server_port = 19198  
token = *********

[ssh]
type = tcp  
local_ip = 127.0.0.1  
# 本地要映射的端口
local_port = 58006  
# 服务端映射的端口  
remote_port = 58006  
  • 配置frpclient端systemd,使用systemctl管理frpclient应用
[Unit]
Description=frps Server  
After=syslog.target  network.target  
Wants=network.target

[Service]
Type=simple  
ExecStart=/data/app/frp_client/frpc -c /data/app/frp_client/frpc.ini

[Install]
WantedBy=multi-user.target  
  • 启动和开机启机设置
systemctl start frps.service  
systemctl enable frps.service  
# 如果修改了配置注意执行reload
systemctl daemon-reload