SkylarLeo 2022-06-09 20:05 采纳率: 50%
浏览 33
已结题

FRP是否可以实现访问服务器80端口,访问内网web服务器

环境:
公网服务器:公网IP,Centos7.9
内网web服务器:内网IP,Centos7.9,Ngnix
Openwrt软路由:公网IP(家庭用户,被请求80,443端口无法访问)


流程:
blog.xx.cn解析至公网服务器>公网服务器>部署FRPS>FRPS监听80端口>转发至路由器的12800端口
路由器>部署FRPC>FRPC监听12800端口>转发至内网服务器80端口


结果:
直接访问blog.xx.cn 不带端口,是否可以访问内网web服务器


疑问:
如果可以,那么应该如何配置?是直接将域名解析至公网服务器?内网配置host文件?问题还有很多,如果能实现的话可以发一下配置信息嘛

  • 写回答

1条回答 默认 最新

  • 偷拨网线的william 2022-06-09 20:42
    关注

    和你说一下我的思路吧,停掉公网测试服务器的80和443端口,将测试网站及数据库全部迁移至内网服务器,然后通过frp将内网的80与443端口映射至公网测试服。接下来我试一下实现方法吧
    1.frp服务端配置

    # wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
    # tar -xvf frp_0.36.2_linux_amd64.tar.gz
    # mv frp_0.36.2_linux_amd64 /usr/local/frp
    # vi /usr/local/frp/frps.ini
    [common]
    bind_port = 7000
    dashboard_port = 7500
    dashboard_user = admin
    dashboard_pwd = ******
    log_file = /var/log/frps.log
    log_level = info
    log_max_days = 7
    vhost_http_port = 80
    vhost_https_port = 443
    token = jeRgfgf
    
    
    

    2.使用systemd管理frp服务

    # cp /usr/local/frp/systemd/frps.service /etc/systemd/system/
    # vi /etc/systemd/system/frps.ini
    [Unit]
    Description=Frp Server Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    Restart=on-failure
    RestartSec=5s
    ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
    
    [Install]
    WantedBy=multi-user.target
    
    # systemctl daemon-reload
    # systemctl start frps && systemctl enable frps
    

    3.客服端配置

    # wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
    # tar -xvf frp_0.36.2_linux_amd64.tar.gz
    # mv frp_0.36.2_linux_amd64 /usr/local/frp
    # vi /usr/local/frp/frpc.ini
    [common]
    server_addr = **********
    server_port = 7000
    token = jeRgfgf
    
    [mysql]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 3306
    remote_port = 3306
    
    [apiygj01]
    type = http
    local_ip = 127.0.0.1
    local_port = 80
    custom_domains = apidev.test.com
    [apiygj02]
    type = https
    local_ip = 127.0.0.1
    local_port = 443
    custom_domains = apidev.test.com
    
    [demo01]
    type = http
    local_ip = 127.0.0.1
    local_port = 80
    custom_domains = demo.test.com       
    [demo02]
    type = https
    local_ip = 127.0.0.1
    local_port = 443
    custom_domains = demo.test.com
    
    
    

    使用systemd管理frp服务

    # cp /usr/local/frp/systemd/frpc.service /etc/systemd/system/
    # vi /etc/systemd/system/frpc.ini
    [Unit]
    Description=Frp Client Service
    After=network.target
    
    [Service]
    Type=simple
    User=root
    Restart=on-failure
    RestartSec=5s
    ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
    ExecReload=/usr/local/frp/frpc reload -c /usr/local/frp/frpc.ini
    
    [Install]
    WantedBy=multi-user.target
    
    
    

    systemctl daemon-reload

    systemctl start frpc && systemctl enable frpc

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月17日
  • 已采纳回答 6月9日
  • 创建了问题 6月9日

悬赏问题

  • ¥15 求组态王串口自定义通信配置方法或代码?
  • ¥15 实验 :UML2.0 结构建模
  • ¥20 用vivado写数字逻辑实验报告撰写,FPGA实验
  • ¥15 为什么shp文件会有这种小方块?
  • ¥15 ecplise在连接数据库时显示加载驱动成功但是数据库连接失败
  • ¥15 visionmaster启动失败,提示为“机器不满足授权而被禁用”
  • ¥15 IDEA中圈复杂度如何具体设置
  • ¥50 labview采集不了数据
  • ¥15 Multisim红外倒车雷达仿真中距离问题
  • ¥15 请上面代码做什么处理或什么混淆