frp内网穿透

一.frp的作用和原理图

frp内网穿透-LMLPHP

 1.首先frp分客户端和服务端,frp客户端和服务端在同一个局域网。

 2.frp服务端拥有公网ip与互联网连通。

frp的作用:

     通过一台公司拥有外网ip的服务器做为frp服务端,通过请求转发的形式,转发到公司局域网内的服务器(frp客户端),达到实现通过互联网访问局域网。

二.frp安装及配置

1.下载地址

首先登陆github

打开github下载地址:https://github.com/fatedier/frp/releases

frp内网穿透-LMLPHP

  通过uname命令查看系统版本来选择安装包

uname -a

aarch64:选择:frp_0.49.0_linux_arm64.tar.gz

frp内网穿透-LMLPHP

 x86_64:    选择:frp_0.49.0_linux_amd64.tar.gz

frp内网穿透-LMLPHP

2.安装

准备:

  1. 一台具有公网ip的服务器,安装frp服务端。命名为服务器02
  2. 一台本地服务器跑程序的服务器,安装frp客户端。命名为服务器01

我的公网服务器02

   内网ip为:10.xx.16.50

   内网端口5024映射的外网端口为1684 (用来访问web服务)

   内网端口6000映射的外网端口为1502 (用来ssh连接)

本地服务器01:

   内网ip为:10.xx.16.44

(1)一台具有公网IP的机器(云服务器等),服务器02,安装服务端frps

#解压缩
tar -vxzf frp_0.49.0_linux_arm64.tar.gz
cd frp_0.49.0_linux_arm64
vim frps.ini

并修改为以下内容

[common]
bind_port = 8000
vhost_http_port = 5024 # 访问5024端口,映射到内网web服务

(2)安装客户端frpc,服务器01

一台本地服务器安装客户端frpc(如,部署了web服务的服务器)

#解压缩
tar -vxzf frp_0.49.0_linux_arm64.tar.gz
cd frp_0.49.0_linux_arm64
vim frpc.ini

并修改为以下内容

[common]
server_addr = 10.xx.16.50  #frps服务端服务器ip
server_port = 8000   #和frp服务端bind_port保持一致

#ssh连接配置
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000  #用来ssh远程连接客户端的端口

#web服务配置
[web]
type = tcp
local_port = 8080       #web服务内网端口号
local_ip = 10.xx.16.44  #web服务内网ip
remote_port = 5024  #用来远程连接web服务的端口

(3)添加一下frps的自启动服务

  frp客户端:

cd /usr/lib/systemd/system
vi frpc.service

  修改为以下内容

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp_0.49.0_linux_arm64/frpc -c /opt/frp_0.49.0_linux_arm64/frpc.ini
ExecReload=/opt/frp_0.49.0_linux_arm64/frpc reload -c /opt/frp_0.49.0_linux_arm64/frpc.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target

  /opt/frp_0.49.0_linux_arm64为自己的安装路径

  frp服务端:

cd /usr/lib/systemd/system
vi frps.service

 修改为以下内容

[Unit]
Description=frpc server daemon
Documentation=https://github.com/fatedier/frp
After=network-online.target

[Service]
ExecStart=/opt/frp_0.49.0_linux_arm64/frpc -c /opt/frp_0.49.0_linux_arm64/frpc.ini
ExecReload=/opt/frp_0.49.0_linux_arm64/frpc reload -c /opt/frp_0.49.0_linux_arm64/frps.ini
Type=simple
User=nobody
Group=nogroup
WorkingDirectory=/tmp
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

/opt/frp_0.49.0_linux_arm64为自己的安装路径

(4)启动服务

启动frp服务端:

sudo systemctl restart  frps

启动frp客户端:

sudo systemctl restart frpc

其它命令

# 启动客户端frpc
sudo systemctl start frpc
# 自启动客端端frpc
sudo systemctl enable frpc
# 重启客户端应用
sudo systemctl restart frpc
# 停止客户端应用
sudo systemctl stop frpc
# 停止自启动
sudo systemctl disable frps
# 查看客端端应用的日志
sudo systemctl status frpc



# 启动服务端端frps
sudo systemctl start frps

# 重启服务端应用
sudo systemctl restart frps

# 停止服务端应用
sudo systemctl stop frps

3.验证

用ssh验证:

用02服务器的公网ip和端口号登陆01服务器

frp内网穿透-LMLPHP

 web服务验证:

用02服务器的公网ip和端口号登陆安装在01服务器上的web服务器

http://02服务器公网ip:1684

06-22 00:20