腾讯云和windows11安装frp,实现内网穿透

一、内网穿透目的

实现公网上,访问到windows上启动的web服务

二、内网穿透的环境准备

公网服务器、windows11的电脑、frp软件(需要准备两个软件,一个是安装到公网服务器上的,一个是安装到windows上的)

  1. frp下载地址
  2. 下载版本
    1.此版本(老版本)供参考,比较新的版本,配置文件是与老版本不一样的
    2.公网服务器上的版本,与windows上的版本是需要对应起来的

三、公网服务器的配置安装

  1. 将Linux版本放到 公网服务器/usr/local/frpInstall目录下

    frpInstall的文件夹需自己创建的

  2. 更改文件的读写权限、用户和用户组

    #添加文件的用户、用户组为 root(超级管理员)

    c 复制代码
    sudo chown -R root:root frp_0.33.0_linux_amd64.tar.gz

    #更改文件的读写权限为可读可写

    c 复制代码
    chmod 777 frp_0.33.0_linux_amd64.tar.gz
  3. 文件解压缩

    c 复制代码
    tar -zxvf frp_0.33.0_linux_amd64.tar.gz
  4. 更改配置文件

    进入解压缩文件,服务端的配置文件为frps.ini,将其打开,替换为

    c 复制代码
    [common]
    # frp监听的端口,默认是7000,可以改成其他的
    bind_port = 7000
    # 授权码,请改成更复杂的 # 这个token之后在客户端会用到
    token = 123456  
    
    # frp管理后台端口,请按自己需求更改
    dashboard_port = 7500
    # frp管理后台用户名和密码,请改成自己的
    dashboard_user = admin
    dashboard_pwd = admin
    enable_prometheus = true
    
    # 访问公网的web端口,按自己需求更改
    vhost_http_port = 8080
  5. 安装服务端并执行启动

    c 复制代码
    #放到指定文件夹,以能够用systemctl去启动frp
    sudo mkdir -p /etc/frp
    sudo cp frps.ini /etc/frp
    sudo cp frps /usr/bin
    sudo cp systemd/frps.service /usr/lib/systemd/system/
    
    # 检测是否能使用systemctl启动frps
    sudo systemctl enable frps
    
    #启动frps状态
    sudo systemctl start frps
    
    #查看frps状态
    systemctl status frps.service
  6. 防火墙开放端口

  7. 检测服务端frp安装是否成功

    访问http://公网ip:7500/,出现下图时,代表服务端搭建成功

四、windows客户端的配置安装

  1. 解压客户端软件包,并更改配置文件

    c 复制代码
    [common]
    server_addr = 公网ip
    server_port = 7000
    token = 123456
    
    [web_8800]
    type = http
    local_ip = 127.0.0.1
    local_port = 80
    custom_domains = 公网ip
    remote_port = 8080
  2. 启动客户端

    在软件包所在页面,文件夹路径上,输入cmd,在弹出的黑窗口中执行frpc.exe

五、代理

访问 公网ip:8080映射到windows上127.0.0.1:80

六、frp实现多端口穿透

上面步骤实现的是单个端口,那如何实现多端口同时穿透,例实现 公网ip:9001映射到windows上的127.0.0.1:80,同时实现 公网ip:9002映射到windows上的127.0.0.1:8092

1.只需更改客户端配置文件frpc.ini,其他如上

c 复制代码
[common]
server_addr = 公网ip
server_port = 7000
token = 52010

[web_80]
# 类型是tcp,而不是http,
# 原理(参考):frp会直接将其当作tcp数据包处理,只处理到了传输层(tcp)
type = tcp
# 本地ip
local_ip = 127.0.0.1
# 本地端口
local_port = 80
# 远程访问的端口
remote_port = 9001

[web_8080]
type = tcp
local_ip = 127.0.0.1
local_port = 8092
remote_port = 9002

2.注意点

frps.ini配置文件中vhost_http_port = 8080,对应的端口号8080,在多端口穿透中是没用的可以去掉,如果没去掉,多端口映射的客户端配置文件frpc.ini中,remote_port配置的端口号不要与8080相同。

②此使用tcp的映射方式,不能监听1024以下的端口(服务端非root是不允许监听1024以下的端口),也即remote_port不能配置1024以下端口

③此使用tcp的映射方式,对romote_port有要求,如果将其设置为8999,此穿透会失败,设置的只有大于等于 9001才可以,具体规则大家自己尝试获取。

七、frp实现监听web的80端口

  1. 服务端frps.ini配置

    c 复制代码
    [common]
    server_addr = 公网ip
    server_port = 7000
    token = 123456
    
    [web_8800]
    type = http
    local_ip = 127.0.0.1
    local_port = 80
    custom_domains = 公网ip
    remote_port = 80
  2. 服务端frps.service更改

    原因:根据frp的systemd配置默认使用nobody用户运行,而非root是不允许监听1024以下的端口。所以,把frp的systemd配置里面的"User=nobody"注释掉,此解决方式针对通过http方式进行的监听,tcp还是存在此问题

  3. 客户端frpc.ini配置

    c 复制代码
    [common]
    server_addr = ip公网
    server_port = 7000
    token = 52010
    
    [web_80]
    type = http
    local_ip = 127.0.0.1
    local_port = 80
    custom_domains = ip公网
    remote_port = 80
相关推荐
韩曙亮12 小时前
【AI 大模型】国内各平台 AI 大模型 价格、性能 对比分析 ② ( 智谱 BigModel | 腾讯云 TokenHub | 千问 AI 平台 )
人工智能·ai·大模型·腾讯云·ai大模型·千问·智谱
云老大-阿里云国际站代理商15 小时前
腾讯云国际站渠道代理商:新加坡CVM怎么搭配TencentDB?企业部署、内网连接和高可用怎么规划
云计算·腾讯云
2501_9304724417 小时前
云安全自查清单:用腾讯云助手 30 分钟完成一次权限与密钥体检
java·腾讯云
2501_930472442 天前
上云迁移验收-CVM健康校验用例与数据库比对报告
数据库·人工智能·阿里云·云计算·腾讯云
2501_930472442 天前
从物理机到 CVM 全流程落地:部署脚本的 8 个云化改造点(附代码对比)
开发语言·人工智能·架构·腾讯云·perl
2501_930472442 天前
深度复盘|数据库迁移实战(下):从自建 MySQL 5.7 到腾讯云 MySQL 8.0 的 SQL 兼容改造
数据库·mysql·腾讯云
2501_930472442 天前
深度复盘|数据库迁移实战(上):腾讯云助手解析慢查询日志,定位索引缺失与语法不兼容
数据库·阿里云·ffmpeg·云计算·腾讯云·aws
yunlaodacom3 天前
腾讯云国际版代理商:COS标准、低频、归档和深度归档怎么选?存储成本与数据取回区别
数据库·云计算·腾讯云
CubeSandbox3 天前
Cube Sandbox 受邀亮相 Arm Create:腾讯云工程师将在“云 + AI”专场带来开场演讲
arm开发·腾讯云·cube sandbox
行业研究员5 天前
腾讯云数据库 PostgreSQL 让相关子查询跑上多核
数据库·postgresql·腾讯云