分类: frp

  • frp内网穿透访问家里的Esxi8.0服务器 frpc如何配置http2https插件

    frp内网穿透访问家里的Esxi8.0服务器 frpc如何配置http2https插件

    ITGeeker技术奇客这次计划给家里的Esxi 8.0服务器搞个公网访问,查了一下看到网上有篇文章介绍说frpc用的type = tcp,然后还要用Haproxy 二次转发,因为Esxi服务器要求ssl访问,再配置nginx的一大堆,觉得甚是复杂。

    ITGeeker技术奇客按照自己对frpc插件http2https的理解,参考官方 https://github.com/fatedier/frp#example-usage 文档,实践后一次成功,分享一下给大家。关键是穿透后实现内网https访问!

    1. 添加frpc配置文件(关键)

    [esxi]
    type = http
    subdomain = esxi # 公网的二级域名
    plugin = http2https
    plugin_local_addr = 192.168.118.118:443 # Esxi8.0服务器内网ip + port
    plugin_host_header_rewrite = 192.168.118.118 # Esxi8.0服务器内网ip
    plugin_header_X-From-Where = frp # 默认为frp

    2. frps服务配置

    #####################################################
    # for esxi公网访问 by itgeeker.net
    #####################################################
    server
    {
        server_name esxi.itgeeker.net;
    
        client_max_body_size 2048M;
        location / {
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:1118; # 此处须和frps.ini的vhost_http_port端口一致
        }
        access_log /var/log/nginx/esxi.itgeeker.net-https-access.log;
        error_log /var/log/nginx/esxi.itgeeker.net-https-error.log;
    
        listen 443 ssl http2;
        ssl_certificate /etc/letsencrypt/live/esxi.itgeeker.net/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/esxi.itgeeker.net/privkey.pem; 
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; 
    }
    # http 80自动跳转443
    server
    {
        if ($host = esxi.itgeeker.net) {
            return 301 https://$host$request_uri;
        } 
    
        listen 80;
        server_name esxi.itgeeker.net;
        return 404; 
    }

    3. 域名DNS解析esxi.itgeeker.net到frps服务器IP

    4. 重启frpc和frps服务器的nginx服务

    # frpc重启命令
    ./frpc reload -c ./frpc.ini
    
    # nginx重启命令:
    nginx -s reload 

    然后就可以愉快的用https://esxi.itgeeker.net来访问家里的Esxi8.0服务器管理页面了

    注意:Esxi8.0服务器公网访问需要ssl 443端口,非ssl 80端口是不可以访问的。

    by itgeeker.net

    如果你家里的Synology群晖NAS也启用了SSL 443端口,
    然后同样也觉得群晖的quickconnect非常不好用,
    那么也可以通过frp的http2https插件实现内网穿透来访问家里的NAS啦!

    by itgeeker.net

    最新文章

  • CentOS 7 x64如何安装内网穿透工具frps服务器端

    首先:下载最新版frp文件

    官方地址:https://github.com/fatedier/frp/releases

    wget https://github.com/fatedier/frp/releases/download/v0.18.0/frp_0.19.1_linux_amd64.tar.gz
    tar -zxvf frp_0.19.1_linux_amd64.tar.gz
    cd frp_0.19.1_linux_amd64

    可以删除掉不必要的客户端文件,只是为了更加简洁而已。

    rm -f frpc frpc_full.ini frpc.ini

    frpc 为客户端文件
    frps 为服务器端文件

    然后配置服务器端文件

    vi frps.ini

    #注意这些port端口号要与客户端frpc的配置文件对应起来

    [common]
    bind_port = 7777
    vhost_http_port = 8888
    dashboard_port = 9999
    dashboard_user = itgeeker
    dashboard_pwd = itgeeker
    max_pool_count = 5
    authentication_timeout = 900
    
    subdomain_host = itgeeker.net
    
    # console or real logFile path like ./frpc.log
    log_file = ./frps.log
    # debug, info, warn, error
    log_level = info
    log_max_days = 3
    
    [ssh]
    listen_port = 8000
    auth_token = itgeekerfrps
    

    详细配置https://github.com/fatedier/frp/blob/master/README_zh.md

    # 保存上面配置文件吗,启动 frp 服务器

    ./frps -c ./frps.ini
    #带log输出
    ./frps -c ./frps.ini -L logs &

    服务端配置结束。若需要后台运行,请看下面“”

    添加开机启动frp服务端 for centos

    方法一:放rc.local里

    chmod +x /etc/rc.d/rc.local && vi /etc/rc.d/rc.local
    #把下面的内容粘贴到文件末尾
    /opt/frp/frps -c /opt/frp/frps.ini

    方法二:Centos 7 Systemd 管理

    $ sudo cp frps /usr/local/bin/frps
    $ sudo mkdir /etc/frp
    $ sudo cp frps.ini /etc/frp/frps.ini
    

    编写 FRP SERVICE 文件,以 CENTOS7 为例
    $ sudo vi /usr/lib/systemd/system/frps.service

    [Unit]
    Description=frps
    After=network.target
    
    [Service]
    TimeoutStartSec=30
    ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
    ExecStop=/bin/kill $MAINPID
    
    [Install]
    WantedBy=multi-user.target

    # 启动 FRP 并设置开机启动

    $ sudo systemctl start frps
    $ sudo systemctl enable frps
    $ sudo systemctl status frps

    frps升级

    1. 下载最新版frp文件,
    2. 停止frps服务

    systemctl stop frps

    3. 用新版本覆盖旧版本
    4. 如果使用systemd的,记得覆盖:

    cp frps /usr/local/bin/

    5. 启动新版本frps

    systemctl start frps
奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4