前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 frp 安全的暴露内网服务

使用 frp 安全的暴露内网服务

作者头像
beginor
发布2020-08-07 00:28:28
3K0
发布2020-08-07 00:28:28
举报

使用 frp 安全的暴露内网服务

frp frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,并且为 http 和 https 应用协议提供了额外的能力。

最近需要将内网的一些服务转发出来, 在自己的电脑上随时可用, 于是就研究了 frp 的文档, 操作记录如下。

frp 服务器配置

要使用 frp 进行内网穿透, 必须有一台有互联网 IP 的服务器, 否则没办法架设 frp 服务器。 服务器上根据操作系统安装 frp 的服务端, frps , 配置如下:

代码语言:javascript
复制
[common]
bind_addr = 0.0.0.0
bind_port = 7000
bind_udp_port = 7001
log_file = /usr/frp/frps.log
# trace, debug, info, warn, error
log_level = info
log_max_days = 3

# set dashboard_addr and dashboard_port to view dashboard of frps
# dashboard_addr's default value is same with bind_addr
# dashboard is available only if dashboard_port is set
dashboard_addr = 0.0.0.0
dashboard_port = 7500

# dashboard user and pwd for basic auth protect, if not set, both default value is admin
dashboard_user = admin
dashboard_pwd = dashbord_password

# auth
authentication_method = token
token = frp_server_token

配置完成之后, 在服务端用下面的命令可以启动 frp 服务端:

代码语言:javascript
复制
/usr/frp/frps -c /usr/frp/frps.ini

内网服务配置

内网服务器上根据操作系统, 下载对应的 frp 客户端 frps , 以 ssh 服务为例, 配置文件如下:

代码语言:javascript
复制
[common]
server_addr = server_ip_or_name
server_port = 7000
# for authentication
token = frp_server_token
# decide if exit program when first login failed, otherwise continuous relogin to frps
# default is true
login_fail_exit = false

[internal_ssh]
type = stcp
sk = internal_ssh_sk
use_encryption = true
use_compression = true
local_ip = 127.0.0.1
local_port = 22

注意, 这里使用的是 stcp 模式, 没有使用 tcp 模式, 更加安全。 因为 tcp 模式会将内网服务端口直接暴露在互联网, 风险比较大。

配置文件编写好之后, 在内网服务器上运行下面的命令, 启动 frp 客户端:

代码语言:javascript
复制
/usr/frp/frpc -c /usr/frp/frpc.ini

客户端配置

通过 stcp 模式进行穿透的服务, 需要在客户端计算机上也运行一个 frp 的客户端 frpc, 配置如下所示:

代码语言:javascript
复制
[common]
server_addr = server_ip_or_name
server_port = 7000
# for authentication
token = frp_server_token

[internal_ssh_visitor]
type = stcp
role = visitor
sk = internal_ssh_sk
server_name = internal_ssh
use_encryption = true
use_compression = true
bind_ip = 127.0.0.1
bind_port = 1022

注意: visitor 中配置的 skserver_name 必须与内网服务器上的 frpc 的配置一致, 而且 bind_ip 只能是 127.0.0.1

配置文件保存之后, 在客户端计算机上也运行下面的命令, 启动 frp 客户端:

代码语言:javascript
复制
/usr/frp/frpc -c /usr/frp/frpc.ini

现在, 在命令行窗口输入下面的命令, 就可以连接到内网服务器的 ssh 服务了:

代码语言:javascript
复制
ssh -p 1022 user@127.0.0.1
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 frp 安全的暴露内网服务
    • frp 服务器配置
      • 内网服务配置
        • 客户端配置
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档