前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内网穿透

内网穿透

作者头像
郭顺发 软件开发
发布2023-07-17 16:59:54
2670
发布2023-07-17 16:59:54
举报
文章被收录于专栏:pandacode_cnpandacode_cn

外网 访问内网服务器。

1. frp(提供软件服务)

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

frp github | bilibili 视频教程 | frp中文文档 | frp下载地址 | 官方示例

1.1. 阅读frp中文文档

移步到官网 -> frp中文文档

frp需要配置两端,客户端和服务端,服务端是具有公网ip的服务器,客户端是内网中的服务器。

1.2. 下载

frp下载地址

根据操作系统选择对应的版本。

1.3. 配置 服务端和客户端

目录介绍:frpc前缀的文件是内网服务需要的;frps前缀的文件是公网IP需要的。

可以查看官网示例,这里也简单的做一些介绍。

1.3.1. 公网服务需要配置frps.ini文件
代码语言:javascript
复制
[common]
bind_port = 7000

参数描述:

  • bind_port:表示frp服务对应端口,后续需要在内网服务器对应frpc.ini文件也对应上。
1.3.2. 内网服务需要配置frpc.ini文件

按需求进行配置信息,除基础信息配置common外,其他的根据自己需求进行摘选(每一个标签都是一个独立的模块)。

例子:

代码语言:javascript
复制
[common]
server_addr = ********
server_port = 7000

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

基础配置参数描述:

  • server_addr表示公网服务器的IP/域名。
  • server_port表示对应公网frp服务的端口。
1.3.2.1. ssh

通过 SSH 访问内网机器

代码语言:javascript
复制
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

参数描述:

  • type表示对应类型。
  • local_iplocal_port 配置为本地需要暴露到公网的服务地址和端口。
  • remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。
1.3.2.2. web

配置web服务

代码语言:javascript
复制
[web]
type = tcp
local_ip = 127.0.0.1
local_port = 9002
remote_port = 9002

[web2]
type = tcp
local_ip = 127.0.0.1
local_port = 9101
remote_port = 9101

参数描述:

可支持多个web服务。

  • type表示对应类型。
  • local_iplocal_port 配置为本地需要暴露到公网的服务地址和端口。
  • remote_port 表示在 frp 服务端监听的端口,访问此端口的流量将会被转发到本地服务对应的端口。

1.4. frp服务启动

先通过 ./frps -c ./frps.ini 启动服务端,再通过 ./frpc -c ./frpc.ini 启动客户端。如果需要在后台长期运行,建议结合其他工具使用,例如 systemdsupervisor

1.5. frp服务设置 后台启动 / 开机启动

systemctl来控制启动

以服务端为例子:

sudo vim /lib/systemd/system/frps.service 在frps.service里写入以下内容

代码语言:javascript
复制
[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini

[Install]
WantedBy=multi-user.target

然后就启动frps sudo systemctl start frps 再打开自启动 sudo systemctl enable frps

  • 如果要重启应用,可以这样,sudo systemctl restart frps
  • 如果要停止应用,可以输入,sudo systemctl stop frps
  • 如果要查看应用的日志,可以输入,sudo systemctl status frps

2. Ngrok(提供线上隧道和线上管理平台)

2.1. 注册/登陆Ngork

点击进入Ngrok官网

2.2. 购买隧道(有免费的)

配置相关信息

2.3. 下载/使用Ngork客户端

不同系统,使用不同,详情需要查看官方文档。

Mac 版本

代码语言:javascript
复制
./sunny clientid 隧道id
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. frp(提供软件服务)
    • 1.1. 阅读frp中文文档
      • 1.2. 下载
        • 1.3. 配置 服务端和客户端
          • 1.3.1. 公网服务需要配置frps.ini文件
          • 1.3.2. 内网服务需要配置frpc.ini文件
        • 1.4. frp服务启动
          • 1.5. frp服务设置 后台启动 / 开机启动
          • 2. Ngrok(提供线上隧道和线上管理平台)
            • 2.1. 注册/登陆Ngork
              • 2.2. 购买隧道(有免费的)
                • 2.3. 下载/使用Ngork客户端
                相关产品与服务
                负载均衡
                负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档