1. 环境准备

  • 一台 Windows (内网机器)
  • 一个 Linux 服务器(公网机器)

2. 配置

2.1 下载 frp

根据不同的部署设备需要下载不同的 frp 版本:

# git 地址
https://github.com/fatedier/frp.git
# relaease 地址
https://github.com/fatedier/frp/releases

这里使用的是 v0.37.1,需要下载 windows 版本和 Linux 版本,根据设备的不同,选择 X86 或者 X64。

2.1 Windows 配置

首先需要开启 Windows 的 OpenSSH,方便后续代理 SSH。

  1. 在 设置 - 可选功能 中搜索 OpenSSH,安装服务端和客户端(默认已安装)。
  2. 配置服务启动。
    在管理 - 服务 中找到 OpenSSH 相关的服务将其启动,被配置 SSH 可以为自动启动,方便日后使用。
  3. 检查服务状态
    在 命令行 中执行:
Get-service -Name *ssh*
# 正常结果如下
Status   Name               DisplayName
------   ----               -----------
Running  ssh-agent          OpenSSH Authentication Agent
Running  sshd               OpenSSH SSH Server
  1. 配置 Frp
    首先因为 Windows 是客户端,所以将其中的 s 结束的文件删除,仅保留 c 后缀的文件:

    之后打开 frpc.ini 文件(以文档形式打开即可)。
    简单配置如下:
[common]
server_addr = 服务器的地址
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[web]
type = http
local_port = 9001
custom_domains = 服务器的地址

2.2 Linux 服务器的配置

  1. 配置 Frp
    同样的,Linux 作为服务器,需要将 frp 下 c 后缀的文件删除,调整后目录结构如下:

    调整完成后就需要配置 frps.init,具体配置如下:
[common]
bind_port = 7000
# 用于启动 HTTP 协议穿透
vhost_http_prt = 8000

dashboard_addr = 0.0.0.0
dashboard_port = 7500

# dashboard user and passwd for basic auth protect
dashboard_user = admin
dashboard_pwd = 123456
  1. 将 frp 配置为 Linux 服务
    首先将 frp 目录下的 systemd/frps.service 文件复制到 /lib/systemd/system 目录下:
cp ~/frp_base_path/systemd/frps.service /lib/systemd/system

之后修改一下配置:

vim frps.service

修改后如下:

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

[Service]
Type=simple
# 启动的用户
User=root
Restart=on-failure
RestartSec=5s
# 这里的目录需要配置到本地的 frp 目录
ExecStart=/root/soft/frp_0.37.1_linux_amd64/frps -c /root/soft/frp_0.37.1_linux_amd64/frps.ini
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
  1. 加载 frp 服务
# 加载服务
systemctl daemon-reload
# 启用服务
systemctl enable frps

3. 启动、测试

3.1 启动

  1. windows 端:在命令行中执行:
frpc -c frpc.ini
  1. Linux 端
systemctl start frps
3.2 测试

首先访问 Linux 的 frp Dashboard,地址是服务器地址:dashboard_port:

java部署frp内网穿透 frp搭建内网穿透_linux


到 Proxies - TCP 中可以看到已经上线的服务。

使用任意其他客户端的 ssh,进行 ssh 连接:

ssh -p remote_port   用户名@服务器地址

输入密码后即可正常使用。
同样的还配置了 HTTP 端口映射,这里设置的是 9001 端口映射,如果在内网中搭建 HTTP 服务,可以访问服务器的 9001 端口就可以访问到内网。