FRP内网穿透搭建教程

FRP内网穿透搭建教程

官网

文档 | frp

Releases · fatedier/frp

下载文件

我们来到Releases · fatedier/frp下载对应系统的客户端和服务端

image

服务端配置安装

下载后将服务端上传到服务器并解压,解压后可以看到如下文件,其中frpc​是客户端​的,frps​才是服务端​,所以frpc​我们可以删除掉,只保留frps服务端​。

image

配置

我们先给frps​添加权限

chmod +x /opt/frp_0.61.1_linux_amd64/frps
chmod +x /opt/frp_0.61.1_linux_amd64/frps
chmod +x /opt/frp_0.61.1_linux_amd64/frps

我们编辑服务端的frps.toml​配置文件,根据你的配置填写好后写入到frps.toml​中:

# frps 服务器绑定的地址,0.0.0.0 表示监听所有网络接口
bindAddr = "0.0.0.0"
# frps 服务器的监听端口,客户端 (frpc) 需要连接到此端口
bindPort = 7000
# kcpBindPort 用于 KCP 传输协议的端口,加速传输
kcpBindPort = 7100
# Web 管理页面的监听地址,0.0.0.0 表示所有 IP 可访问
webServer.addr = "0.0.0.0"
# Web 管理页面的端口号
webServer.port = 7500
# Web 管理页面的用户名
webServer.user = "user"
# Web 管理页面的密码
webServer.password = "password"
# 日志文件路径
log.to = "/frpslog/frps.log"
# 日志级别(可选值:trace, debug, info, warn, error)
log.level = "info"
# 日志保存的天数,超过 3 天的日志会被删除
log.maxDays = 3
# 认证方式,使用 token 进行身份验证
auth.method = "token"
# 认证的 token,frpc 客户端需要使用相同的 token 进行连接
auth.token = "testtoken"
# 允许的端口范围,客户端只能映射该范围内的端口
allowPorts = [
{ start = 6000, end = 7000},
]
# frps 服务器绑定的地址,0.0.0.0 表示监听所有网络接口
bindAddr = "0.0.0.0" 

# frps 服务器的监听端口,客户端 (frpc) 需要连接到此端口
bindPort = 7000

# kcpBindPort 用于 KCP 传输协议的端口,加速传输
kcpBindPort = 7100

# Web 管理页面的监听地址,0.0.0.0 表示所有 IP 可访问
webServer.addr = "0.0.0.0"

# Web 管理页面的端口号
webServer.port = 7500

# Web 管理页面的用户名
webServer.user = "user"

# Web 管理页面的密码
webServer.password = "password"

# 日志文件路径
log.to = "/frpslog/frps.log"

# 日志级别(可选值:trace, debug, info, warn, error)
log.level = "info"

# 日志保存的天数,超过 3 天的日志会被删除
log.maxDays = 3

# 认证方式,使用 token 进行身份验证
auth.method = "token"

# 认证的 token,frpc 客户端需要使用相同的 token 进行连接
auth.token = "testtoken"

# 允许的端口范围,客户端只能映射该范围内的端口
allowPorts = [
    { start = 6000, end = 7000},
]
# frps 服务器绑定的地址,0.0.0.0 表示监听所有网络接口 bindAddr = "0.0.0.0" # frps 服务器的监听端口,客户端 (frpc) 需要连接到此端口 bindPort = 7000 # kcpBindPort 用于 KCP 传输协议的端口,加速传输 kcpBindPort = 7100 # Web 管理页面的监听地址,0.0.0.0 表示所有 IP 可访问 webServer.addr = "0.0.0.0" # Web 管理页面的端口号 webServer.port = 7500 # Web 管理页面的用户名 webServer.user = "user" # Web 管理页面的密码 webServer.password = "password" # 日志文件路径 log.to = "/frpslog/frps.log" # 日志级别(可选值:trace, debug, info, warn, error) log.level = "info" # 日志保存的天数,超过 3 天的日志会被删除 log.maxDays = 3 # 认证方式,使用 token 进行身份验证 auth.method = "token" # 认证的 token,frpc 客户端需要使用相同的 token 进行连接 auth.token = "testtoken" # 允许的端口范围,客户端只能映射该范围内的端口 allowPorts = [ { start = 6000, end = 7000}, ]

创建 systemd 服务文件

运行以下命令创建 frps​ 服务:

sudo nano /etc/systemd/system/frps.service
sudo nano /etc/systemd/system/frps.service
sudo nano /etc/systemd/system/frps.service

然后在文件中添加以下内容并保存:

[Unit]
Description=FRP Server Service
After=network.target
[Service]
Type=simple
ExecStart=/opt/frp_0.61.1_linux_amd64/frps -c /opt/frp_0.61.1_linux_amd64/frps.toml
Restart=on-failure
User=root
WorkingDirectory=/opt/frp_0.61.1_linux_amd64
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
[Unit]
Description=FRP Server Service
After=network.target

[Service]
Type=simple
ExecStart=/opt/frp_0.61.1_linux_amd64/frps -c /opt/frp_0.61.1_linux_amd64/frps.toml
Restart=on-failure
User=root
WorkingDirectory=/opt/frp_0.61.1_linux_amd64
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
[Unit] Description=FRP Server Service After=network.target [Service] Type=simple ExecStart=/opt/frp_0.61.1_linux_amd64/frps -c /opt/frp_0.61.1_linux_amd64/frps.toml Restart=on-failure User=root WorkingDirectory=/opt/frp_0.61.1_linux_amd64 LimitNOFILE=1048576 [Install] WantedBy=multi-user.target

重新加载 systemd 并启用 frps

sudo systemctl daemon-reload
sudo systemctl enable frps --now
sudo systemctl daemon-reload
sudo systemctl enable frps --now
sudo systemctl daemon-reload sudo systemctl enable frps --now

检查状态

sudo systemctl status frps
sudo systemctl status frps
sudo systemctl status frps

然后我们可以通过http://ip:7500​进行访问Web页面,用户名密码就是前边配置里设置的。

image

客户端配置安装

配置

解压我们下载的windows客户端文件,里边的文件和服务端一样都是有frps(服务端)​和frpc(客户端)​,我们现在是客户端,那么可以把frps(服务端)​文件删掉。

image

我们现在编辑frpc.toml​配置文件,你可以根据注释进行自定义配置:

# 远程 FRP 服务器的地址(frps 服务器地址)
serverAddr = "127.0.0.1"
# 远程 FRP 服务器的端口(frps 监听的 bindPort)
serverPort = 7000
# 日志文件路径
log.to = "./frpc.log"
# 日志级别(可选值:trace, debug, info, warn, error)
log.level = "info"
# 日志保留天数(超过 3 天的日志会被删除)
log.maxDays = 3
# 认证方式,必须与 frps 保持一致
auth.method = "token"
# 认证的 token,必须与 frps 的 token 一致
auth.token = "testtoken"
# 配置代理(支持多个代理,使用 [[proxies]] 进行定义)
[[proxies]]
# 代理名称(可自定义,但要唯一)
name = "ad-tcp"
# 代理类型(tcp/udp/http/https/stcp/xtcp)
type = "tcp"
# 本地服务的 IP(frpc 连接的本地服务)
localIP = "127.0.0.1"
# 本地服务的端口(frpc 连接的本地服务端口)
localPort = 3000
# 远程映射端口(外部访问时使用的端口)
remotePort = 6100
# 远程 FRP 服务器的地址(frps 服务器地址)
serverAddr = "127.0.0.1"
# 远程 FRP 服务器的端口(frps 监听的 bindPort)
serverPort = 7000

# 日志文件路径
log.to = "./frpc.log"
# 日志级别(可选值:trace, debug, info, warn, error)
log.level = "info"
# 日志保留天数(超过 3 天的日志会被删除)
log.maxDays = 3

# 认证方式,必须与 frps 保持一致
auth.method = "token"
# 认证的 token,必须与 frps 的 token 一致
auth.token = "testtoken"

# 配置代理(支持多个代理,使用 [[proxies]] 进行定义)
[[proxies]]
# 代理名称(可自定义,但要唯一)
name = "ad-tcp"
# 代理类型(tcp/udp/http/https/stcp/xtcp)
type = "tcp"
# 本地服务的 IP(frpc 连接的本地服务)
localIP = "127.0.0.1"
# 本地服务的端口(frpc 连接的本地服务端口)
localPort = 3000 
# 远程映射端口(外部访问时使用的端口)
remotePort = 6100 
# 远程 FRP 服务器的地址(frps 服务器地址) serverAddr = "127.0.0.1" # 远程 FRP 服务器的端口(frps 监听的 bindPort) serverPort = 7000 # 日志文件路径 log.to = "./frpc.log" # 日志级别(可选值:trace, debug, info, warn, error) log.level = "info" # 日志保留天数(超过 3 天的日志会被删除) log.maxDays = 3 # 认证方式,必须与 frps 保持一致 auth.method = "token" # 认证的 token,必须与 frps 的 token 一致 auth.token = "testtoken" # 配置代理(支持多个代理,使用 [[proxies]] 进行定义) [[proxies]] # 代理名称(可自定义,但要唯一) name = "ad-tcp" # 代理类型(tcp/udp/http/https/stcp/xtcp) type = "tcp" # 本地服务的 IP(frpc 连接的本地服务) localIP = "127.0.0.1" # 本地服务的端口(frpc 连接的本地服务端口) localPort = 3000 # 远程映射端口(外部访问时使用的端口) remotePort = 6100

启动

我们在文件夹里的空白处右键,选择【在终端中打开

image

在终端中输入.\frpc.exe -c .\frpc.toml​启动服务。

然后就可以通过http://ip:6100​访问本地的3000​端口的服务了。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容